File tree Expand file tree Collapse file tree
modules/mono/editor/Godot.NET.Sdk/Godot.SourceGenerators Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -155,6 +155,32 @@ public static string GetDeclarationKeyword(this INamedTypeSymbol namedTypeSymbol
155155 } ;
156156 }
157157
158+ public static string GetAccessibilityKeyword ( this INamedTypeSymbol namedTypeSymbol )
159+ {
160+ if ( namedTypeSymbol . DeclaredAccessibility == Accessibility . NotApplicable )
161+ {
162+ // Accessibility not specified. Get the default accessibility.
163+ return namedTypeSymbol . ContainingSymbol switch
164+ {
165+ null or INamespaceSymbol => "internal" ,
166+ ITypeSymbol { TypeKind : TypeKind . Class or TypeKind . Struct } => "private" ,
167+ ITypeSymbol { TypeKind : TypeKind . Interface } => "public" ,
168+ _ => "" ,
169+ } ;
170+ }
171+
172+ return namedTypeSymbol . DeclaredAccessibility switch
173+ {
174+ Accessibility . Private => "private" ,
175+ Accessibility . Protected => "protected" ,
176+ Accessibility . Internal => "internal" ,
177+ Accessibility . ProtectedAndInternal => "private" ,
178+ Accessibility . ProtectedOrInternal => "private" ,
179+ Accessibility . Public => "public" ,
180+ _ => "" ,
181+ } ;
182+ }
183+
158184 public static string NameWithTypeParameters ( this INamedTypeSymbol symbol )
159185 {
160186 return symbol . IsGenericType ?
Original file line number Diff line number Diff line change @@ -276,7 +276,7 @@ void AppendPartialContainingTypeDeclarations(INamedTypeSymbol? containingType)
276276 source . Append (
277277 $ " /// <inheritdoc cref=\" { signalDelegate . DelegateSymbol . FullQualifiedNameIncludeGlobal ( ) } \" />\n ") ;
278278
279- source . Append ( " public event " )
279+ source . Append ( $ " { signalDelegate . DelegateSymbol . GetAccessibilityKeyword ( ) } event ")
280280 . Append ( signalDelegate . DelegateSymbol . FullQualifiedNameIncludeGlobal ( ) )
281281 . Append ( " @" )
282282 . Append ( signalName )
You can’t perform that action at this time.
0 commit comments