From bf8c0b42939c5f1fff0e7f656b85d819b7935a03 Mon Sep 17 00:00:00 2001 From: Cyrus Najmabadi Date: Mon, 9 Mar 2020 14:04:34 -0700 Subject: [PATCH] Pass along extern --- .../CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs | 6 +++++- .../Core/Portable/Editing/DeclarationModifiers.cs | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs b/src/Workspaces/CSharp/Portable/CodeGeneration/CSharpSyntaxGenerator.cs index 362584ef752..16d09bc8e2e 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 486c08dda0d..2461e992e56 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; -- GitLab