diff --git a/src/CppAst/CMakeLists.txt b/src/CppAst/CMakeLists.txt index 4403333..82044f0 100644 --- a/src/CppAst/CMakeLists.txt +++ b/src/CppAst/CMakeLists.txt @@ -1,11 +1,11 @@ file(GLOB_RECURSE SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.cs) -set(CMAKE_CSharp_FLAGS "${CMAKE_CSharp_FLAGS} /langversion:7.3") +set(CMAKE_CSharp_FLAGS "${CMAKE_CSharp_FLAGS} /langversion:10") add_library(CppAst SHARED ${SOURCE_FILES}) set_target_properties(CppAst PROPERTIES - VS_PACKAGE_REFERENCES "ClangSharp_17.0.1;Irony_1.2.0" + VS_PACKAGE_REFERENCES "ClangSharp_20.1.2;Irony_1.2.0" ) target_compile_options(CppAst PUBLIC "/unsafe") \ No newline at end of file diff --git a/src/CppAst/CppContainerList.cs b/src/CppAst/CppContainerList.cs index aa3bb3a..e8456ba 100644 --- a/src/CppAst/CppContainerList.cs +++ b/src/CppAst/CppContainerList.cs @@ -58,7 +58,17 @@ public void AddRange(IEnumerable collection) { foreach (var element in collection) { - Add(element); + // Check if given element is already resolved + if (element.Parent == null) + { + // If not, create one + Add(element); + } + else + { + // Otherwise, just reference it + _elements.Add(element); + } } } }