Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
update
  • Loading branch information
josefpihrt committed Sep 1, 2024
commit 7178c93ad5bdc34fed91a9ebebdf11dbb5436215
10 changes: 10 additions & 0 deletions src/CSharp/CSharp/SyntaxAccessibility`1.cs
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,11 @@ public static Accessibility GetDefaultExplicitAccessibility(BaseTypeDeclarationS
if (declaration is null)
throw new ArgumentNullException(nameof(declaration));

#if ROSLYN_4_4
if (declaration.Modifiers.Contains(SyntaxKind.FileKeyword))
return Accessibility.NotApplicable;
#endif

#if ROSLYN_4_0
return (declaration.IsParentKind(SyntaxKind.ClassDeclaration, SyntaxKind.StructDeclaration, SyntaxKind.RecordDeclaration, SyntaxKind.RecordStructDeclaration))
#else
Expand Down Expand Up @@ -354,6 +359,11 @@ public override Accessibility GetDefaultExplicitAccessibility(DelegateDeclaratio
if (declaration is null)
throw new ArgumentNullException(nameof(declaration));

#if ROSLYN_4_4
if (declaration.Modifiers.Contains(SyntaxKind.FileKeyword))
return Accessibility.NotApplicable;
#endif

if (declaration.IsParentKind(
SyntaxKind.ClassDeclaration,
SyntaxKind.StructDeclaration,
Expand Down
16 changes: 16 additions & 0 deletions src/Tests/Analyzers.Tests/RCS1018AddAccessibilityModifiersTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -472,6 +472,22 @@ object I.this[int index]
}
}
}
", options: Options.AddConfigOption(ConfigOptionKeys.AccessibilityModifiers, ConfigOptionValues.AccessibilityModifiers_Explicit));
}

[Fact, Trait(Traits.Analyzer, DiagnosticIdentifiers.AddOrRemoveAccessibilityModifiers)]
public async Task TestNoDiagnostic_FileAccessModifier()
{
await VerifyNoDiagnosticAsync(@"
using System;

file class C;
file struct S;
file interface I;
file record R;
file record struct RS;
file delegate void D();
file enum E;
", options: Options.AddConfigOption(ConfigOptionKeys.AccessibilityModifiers, ConfigOptionValues.AccessibilityModifiers_Explicit));
}
}