diff --git a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs index 5841e88d..8a1a0664 100644 --- a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs +++ b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.VisitDecl.cs @@ -273,7 +273,7 @@ private void VisitEnumConstantDecl(EnumConstantDecl enumConstantDecl) { parentName = ""; isAnonymousEnum = true; - accessSpecifier = GetAccessSpecifier(enumDecl); + accessSpecifier = GetAccessSpecifier(enumDecl, matchStar: true); } } @@ -331,7 +331,7 @@ private void VisitEnumConstantDecl(EnumConstantDecl enumConstantDecl) private void VisitEnumDecl(EnumDecl enumDecl) { - var accessSpecifier = GetAccessSpecifier(enumDecl); + var accessSpecifier = GetAccessSpecifier(enumDecl, matchStar: true); var name = GetRemappedCursorName(enumDecl); var escapedName = EscapeName(name); var isAnonymousEnum = false; @@ -397,7 +397,7 @@ private void VisitFieldDecl(FieldDecl fieldDecl) return; } - var accessSpecifier = GetAccessSpecifier(fieldDecl); + var accessSpecifier = GetAccessSpecifier(fieldDecl, matchStar: false); var name = GetRemappedCursorName(fieldDecl); var escapedName = EscapeName(name); @@ -505,7 +505,7 @@ private void VisitFunctionDecl(FunctionDecl functionDecl) return; } - var accessSpecifier = GetAccessSpecifier(functionDecl); + var accessSpecifier = GetAccessSpecifier(functionDecl, matchStar: false); var body = functionDecl.Body; var hasBody = body is not null; @@ -828,7 +828,7 @@ private void VisitIndirectFieldDecl(IndirectFieldDecl indirectFieldDecl) var type = fieldDecl.Type; - var accessSpecifier = GetAccessSpecifier(anonymousRecordDecl); + var accessSpecifier = GetAccessSpecifier(anonymousRecordDecl, matchStar: true); var typeName = GetRemappedTypeName(fieldDecl, context: null, type, out _); var name = GetRemappedCursorName(fieldDecl); @@ -1381,7 +1381,7 @@ private void VisitRecordDecl(RecordDecl recordDecl) } var desc = new StructDesc { - AccessSpecifier = GetAccessSpecifier(recordDecl), + AccessSpecifier = GetAccessSpecifier(recordDecl, matchStar: true), EscapedName = escapedName, IsUnsafe = IsUnsafe(recordDecl) || hasGuidMember, HasVtbl = hasVtbl || hasBaseVtbl, @@ -1547,7 +1547,7 @@ private void VisitRecordDecl(RecordDecl recordDecl) } var fieldDesc = new FieldDesc { - AccessSpecifier = GetAccessSpecifier(baseCxxRecordDecl), + AccessSpecifier = GetAccessSpecifier(baseCxxRecordDecl, matchStar: true), NativeTypeName = null, EscapedName = baseFieldName, Offset = null, @@ -2454,7 +2454,7 @@ void VisitBitfieldDecl(FieldDecl fieldDecl, Type[] types, RecordDecl recordDecl, canonicalType = type.CanonicalType; - var accessSpecifier = GetAccessSpecifier(fieldDecl); + var accessSpecifier = GetAccessSpecifier(fieldDecl, matchStar: false); var name = GetRemappedCursorName(fieldDecl); var escapedName = EscapeName(name); @@ -2673,7 +2673,7 @@ void VisitConstantArrayFieldDecl(RecordDecl recordDecl, FieldDecl constantArray) var alignment = Math.Max(recordDecl.TypeForDecl.Handle.AlignOf, 1); var maxAlignm = recordDecl.Fields.Any() ? recordDecl.Fields.Max((fieldDecl) => Math.Max(fieldDecl.Type.Handle.AlignOf, 1)) : alignment; - var accessSpecifier = GetAccessSpecifier(constantArray); + var accessSpecifier = GetAccessSpecifier(constantArray, matchStar: false); var canonicalElementType = type.ElementType.CanonicalType; var isUnsafeElementType = ((canonicalElementType is PointerType) || (canonicalElementType is ReferenceType)) && @@ -2940,7 +2940,7 @@ void ForFunctionProtoType(TypedefDecl typedefDecl, FunctionProtoType functionPro StartUsingOutputBuilder(name); { var desc = new FunctionOrDelegateDesc { - AccessSpecifier = GetAccessSpecifier(typedefDecl), + AccessSpecifier = GetAccessSpecifier(typedefDecl, matchStar: true), CallingConvention = callingConventionName, EscapedName = escapedName, IsVirtual = true, // such that it outputs as a delegate @@ -3128,7 +3128,7 @@ private void VisitVarDecl(VarDecl varDecl) isMacroDefinitionRecord = true; } - var accessSpecifier = GetAccessSpecifier(varDecl); + var accessSpecifier = GetAccessSpecifier(varDecl, matchStar: false); var name = GetRemappedName(nativeName, varDecl, tryRemapOperatorName: false, out var wasRemapped, skipUsing: true); var escapedName = EscapeName(name); diff --git a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs index 61d26ab6..729c3cf6 100644 --- a/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs +++ b/sources/ClangSharp.PInvokeGenerator/PInvokeGenerator.cs @@ -1819,9 +1819,9 @@ internal static string EscapeString(string value) => value.Replace("\\", "\\\\") .Replace("\t", "\\t") .Replace("\"", "\\\""); - private AccessSpecifier GetAccessSpecifier(NamedDecl namedDecl) + private AccessSpecifier GetAccessSpecifier(NamedDecl namedDecl, bool matchStar) { - if (!TryGetRemappedValue(namedDecl, _config.WithAccessSpecifiers, out var accessSpecifier) || (accessSpecifier == AccessSpecifier.None)) + if (!TryGetRemappedValue(namedDecl, _config.WithAccessSpecifiers, out var accessSpecifier, matchStar) || (accessSpecifier == AccessSpecifier.None)) { switch (namedDecl.Access) {