diff --git a/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs b/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs index 362584ef752795039797daa2899b794d0517032b..16d09bc8e2e124674be8e858973a22590819d77c 100644 --- a/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs +++ b/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs @@ -1487,7 +1487,11 @@ public override SyntaxNode WithAccessibility(SyntaxNode declaration, Accessibili private static readonly DeclarationModifiers s_interfaceModifiers = DeclarationModifiers.New | DeclarationModifiers.Partial | DeclarationModifiers.Unsafe; private static readonly DeclarationModifiers s_accessorModifiers = DeclarationModifiers.Abstract | DeclarationModifiers.New | DeclarationModifiers.Override | DeclarationModifiers.Virtual; - private static readonly DeclarationModifiers s_localFunctionModifiers = DeclarationModifiers.Async | DeclarationModifiers.Static; + + private static readonly DeclarationModifiers s_localFunctionModifiers = + DeclarationModifiers.Async | + DeclarationModifiers.Static | + DeclarationModifiers.Extern; private static DeclarationModifiers GetAllowedModifiers(SyntaxKind kind) { diff --git a/src/Workspaces/Core/Portable/Editing/DeclarationModifiers.cs b/src/Workspaces/Core/Portable/Editing/DeclarationModifiers.cs index 486c08dda0dd3f36ac8bd350d0ed1e9d3efefd84..2461e992e5604465d3e6fa4b822c53f8327cf4e4 100644 --- a/src/Workspaces/Core/Portable/Editing/DeclarationModifiers.cs +++ b/src/Workspaces/Core/Portable/Editing/DeclarationModifiers.cs @@ -65,14 +65,14 @@ public static DeclarationModifiers From(ISymbol symbol) return new DeclarationModifiers( isStatic: symbol.IsStatic, isAbstract: symbol.IsAbstract, - ////isNew: (property != null && property.OverriddenProperty == null) || (method != null && method.OverriddenMethod == null), - isReadOnly: (field != null && field.IsReadOnly) || (property != null && property.IsReadOnly), + isReadOnly: field?.IsReadOnly == true || property?.IsReadOnly == true, isVirtual: symbol.IsVirtual, isOverride: symbol.IsOverride, isSealed: symbol.IsSealed, isConst: field != null && field.IsConst, isUnsafe: symbol.IsUnsafe(), - isVolatile: field != null && field.IsVolatile); + isVolatile: field != null && field.IsVolatile, + isExtern: symbol.IsExtern); } public bool IsStatic => (_modifiers & Modifiers.Static) != 0;