Skip to content

Commit b16181e

Browse files
committed
C# -> VB: partial classes' omitted accessibility modifier is not internal as by default
1 parent 7e3d1eb commit b16181e

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

ICSharpCode.CodeConverter/VB/CommonConversions.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,8 @@ public void ConvertBaseList(CSS.BaseTypeDeclarationSyntax type, List<InheritsSta
406406

407407

408408
private static IEnumerable<SyntaxToken> ConvertModifiersCore(IReadOnlyCollection<SyntaxToken> modifiers, TokenContext context, bool isConstructor) {
409-
var needsExplicitVisibility = context != TokenContext.Local
409+
var needsExplicitVisibility = !(modifiers.Any(x => x.IsKind(CS.SyntaxKind.PartialKeyword)) && context == TokenContext.Global)
410+
&& context != TokenContext.Local
410411
&& context != TokenContext.MemberInInterface
411412
&& context != TokenContext.MemberInProperty
412413
&& !modifiers.Any(x => x.IsCsVisibility(true, isConstructor)); //TODO Don't always treat as variable or const, pass in more context to detect this

Tests/VB/NamespaceLevelTests.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -536,5 +536,18 @@ Implements System.ComponentModel.INotifyPropertyChanged
536536
Public Event PropertyChanged As System.ComponentModel.PropertyChangedEventHandler Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
537537
End Class", conversion: EmptyNamespaceOptionStrictOff);
538538
}
539+
[Fact]
540+
public async Task PartialClass_OmitedModifier() {
541+
await TestConversionCSharpToVisualBasic(
542+
@"public partial class Entities {
543+
}
544+
partial class Entities {
545+
}",
546+
@"Public Partial Class Entities
547+
End Class
548+
549+
Partial Class Entities
550+
End Class");
551+
}
539552
}
540553
}

0 commit comments

Comments
 (0)