@@ -578,10 +578,18 @@ CSharpAmbience CreateAmbience()
578578 CSharpAmbience ambience = new CSharpAmbience ( ) ;
579579 // Do not forget to update CSharpAmbienceTests.ILSpyMainTreeViewTypeFlags, if this ever changes.
580580 ambience . ConversionFlags = ConversionFlags . ShowTypeParameterList | ConversionFlags . PlaceReturnTypeAfterParameterList ;
581- if ( SettingsService . DecompilerSettings . LiftNullables )
581+ var decompilerSettings = SettingsService . DecompilerSettings . Clone ( ) ;
582+ if ( ! Enum . TryParse ( AssemblyTreeModel . CurrentLanguageVersion ? . Version , out Decompiler . CSharp . LanguageVersion languageVersion ) )
583+ languageVersion = Decompiler . CSharp . LanguageVersion . Latest ;
584+ decompilerSettings . SetLanguageVersion ( languageVersion ) ;
585+ if ( decompilerSettings . LiftNullables )
582586 {
583587 ambience . ConversionFlags |= ConversionFlags . UseNullableSpecifierForValueTypes ;
584588 }
589+ if ( decompilerSettings . IntroducePrivateProtectedAccessibility )
590+ {
591+ ambience . ConversionFlags |= ConversionFlags . UsePrivateProtectedAccessibility ;
592+ }
585593 return ambience ;
586594 }
587595
@@ -781,7 +789,11 @@ public override string GetEntityName(MetadataFile module, EntityHandle handle, b
781789 public override bool ShowMember ( IEntity member )
782790 {
783791 MetadataFile assembly = member . ParentModule . MetadataFile ;
784- return showAllMembers || ! CSharpDecompiler . MemberIsHidden ( assembly , member . MetadataToken , SettingsService . DecompilerSettings ) ;
792+ var decompilerSettings = SettingsService . DecompilerSettings . Clone ( ) ;
793+ if ( ! Enum . TryParse ( AssemblyTreeModel . CurrentLanguageVersion ? . Version , out Decompiler . CSharp . LanguageVersion languageVersion ) )
794+ languageVersion = Decompiler . CSharp . LanguageVersion . Latest ;
795+ decompilerSettings . SetLanguageVersion ( languageVersion ) ;
796+ return showAllMembers || ! CSharpDecompiler . MemberIsHidden ( assembly , member . MetadataToken , decompilerSettings ) ;
785797 }
786798
787799 public override RichText GetRichTextTooltip ( IEntity entity )
@@ -790,7 +802,10 @@ public override RichText GetRichTextTooltip(IEntity entity)
790802 var output = new StringWriter ( ) ;
791803 var decoratedWriter = new TextWriterTokenWriter ( output ) ;
792804 var writer = new CSharpHighlightingTokenWriter ( TokenWriter . InsertRequiredSpaces ( decoratedWriter ) , locatable : decoratedWriter ) ;
793- var settings = SettingsService . DecompilerSettings ;
805+ var settings = SettingsService . DecompilerSettings . Clone ( ) ;
806+ if ( ! Enum . TryParse ( AssemblyTreeModel . CurrentLanguageVersion ? . Version , out Decompiler . CSharp . LanguageVersion languageVersion ) )
807+ languageVersion = Decompiler . CSharp . LanguageVersion . Latest ;
808+ settings . SetLanguageVersion ( languageVersion ) ;
794809 if ( ! settings . LiftNullables )
795810 {
796811 flags &= ~ ConversionFlags . UseNullableSpecifierForValueTypes ;
@@ -815,6 +830,10 @@ public override RichText GetRichTextTooltip(IEntity entity)
815830 {
816831 flags |= ConversionFlags . SupportInitAccessors ;
817832 }
833+ if ( settings . IntroducePrivateProtectedAccessibility )
834+ {
835+ flags |= ConversionFlags . UsePrivateProtectedAccessibility ;
836+ }
818837 if ( entity is IMethod m && m . IsLocalFunction )
819838 {
820839 writer . WriteIdentifier ( Identifier . Create ( "(local)" ) ) ;
0 commit comments