Symbols\Source\ModifierUtils.cs (169)
15internal static DeclarationModifiers MakeAndCheckNonTypeMemberModifiers(
19DeclarationModifiers defaultAccess,
20DeclarationModifiers allowedModifiers,
26var result = modifiers.ToDeclarationModifiers(isForTypeDeclaration: false, diagnostics.DiagnosticBag ?? new DiagnosticBag(), isOrdinaryMethod: isOrdinaryMethod);
33hasExplicitAccessModifier = (result & DeclarationModifiers.AccessibilityMask) != 0;
40internal static DeclarationModifiers CheckModifiers(
43DeclarationModifiers modifiers,
44DeclarationModifiers allowedModifiers,
53DeclarationModifiers reportStaticNotVirtualForModifiers = DeclarationModifiers.None;
57Debug.Assert((allowedModifiers & (DeclarationModifiers.Override | DeclarationModifiers.Virtual)) == 0);
59else if ((modifiers & allowedModifiers & DeclarationModifiers.Static) != 0)
63reportStaticNotVirtualForModifiers = allowedModifiers & DeclarationModifiers.Override;
67reportStaticNotVirtualForModifiers = allowedModifiers & (DeclarationModifiers.Abstract | DeclarationModifiers.Override | DeclarationModifiers.Virtual);
73DeclarationModifiers errorModifiers = modifiers & ~allowedModifiers;
74DeclarationModifiers result = modifiers & allowedModifiers;
76while (errorModifiers != DeclarationModifiers.None)
78DeclarationModifiers oneError = errorModifiers & ~(errorModifiers - 1);
79Debug.Assert(oneError != DeclarationModifiers.None);
84case DeclarationModifiers.Partial:
89case DeclarationModifiers.Abstract:
90case DeclarationModifiers.Override:
91case DeclarationModifiers.Virtual:
109checkFeature(DeclarationModifiers.PrivateProtected, MessageID.IDS_FeaturePrivateProtected) |
110checkFeature(DeclarationModifiers.Required, MessageID.IDS_FeatureRequiredMembers) |
111checkFeature(DeclarationModifiers.File, MessageID.IDS_FeatureFileTypes) |
112checkFeature(DeclarationModifiers.Async, MessageID.IDS_FeatureAsync);
116bool checkFeature(DeclarationModifiers modifier, MessageID featureID)
148DeclarationModifiers modifiers,
149DeclarationModifiers defaultInterfaceImplementationModifiers,
158if ((modifiers & defaultInterfaceImplementationModifiers & DeclarationModifiers.Static) != 0 &&
159(modifiers & defaultInterfaceImplementationModifiers & (DeclarationModifiers.Sealed | DeclarationModifiers.Abstract | DeclarationModifiers.Virtual)) != 0)
161var reportModifiers = DeclarationModifiers.Sealed | DeclarationModifiers.Abstract | DeclarationModifiers.Virtual;
162if ((modifiers & defaultInterfaceImplementationModifiers & DeclarationModifiers.Sealed) != 0 &&
163(modifiers & defaultInterfaceImplementationModifiers & (DeclarationModifiers.Abstract | DeclarationModifiers.Virtual)) != 0)
165diagnostics.Add(ErrorCode.ERR_BadMemberFlag, errorLocation, ConvertSingleModifierToSyntaxText(DeclarationModifiers.Sealed));
166reportModifiers &= ~DeclarationModifiers.Sealed;
180if ((modifiers & defaultInterfaceImplementationModifiers & DeclarationModifiers.Static) != 0)
196internal static void ReportUnsupportedModifiersForLanguageVersion(DeclarationModifiers modifiers, DeclarationModifiers unsupportedModifiers, Location errorLocation, BindingDiagnosticBag diagnostics, LanguageVersion availableVersion, LanguageVersion requiredVersion)
198DeclarationModifiers errorModifiers = modifiers & unsupportedModifiers;
201while (errorModifiers != DeclarationModifiers.None)
203DeclarationModifiers oneError = errorModifiers & ~(errorModifiers - 1);
204Debug.Assert(oneError != DeclarationModifiers.None);
213internal static void CheckFeatureAvailabilityForStaticAbstractMembersInInterfacesIfNeeded(DeclarationModifiers mods, bool isExplicitInterfaceImplementation, Location location, BindingDiagnosticBag diagnostics)
215if (isExplicitInterfaceImplementation && (mods & DeclarationModifiers.Static) != 0)
223ModifierUtils.ReportUnsupportedModifiersForLanguageVersion(mods, DeclarationModifiers.Static, location, diagnostics, availableVersion, requiredVersion);
238DeclarationModifiers.Partial,
239DeclarationModifiers.Partial,
248internal static DeclarationModifiers AdjustModifiersForAnInterfaceMember(DeclarationModifiers mods, bool hasBody, bool isExplicitInterfaceImplementation, bool forMethod)
252bool notPartialOrNewPartialBehavior = (mods & DeclarationModifiers.Partial) == 0 || !forMethod;
254if ((mods & DeclarationModifiers.AccessibilityMask) == 0)
258mods |= DeclarationModifiers.Public;
262mods |= DeclarationModifiers.Private;
268if ((mods & DeclarationModifiers.Abstract) != 0)
270mods |= DeclarationModifiers.Sealed;
273else if ((mods & DeclarationModifiers.Static) != 0)
275mods &= ~DeclarationModifiers.Sealed;
277else if ((mods & (DeclarationModifiers.Private | DeclarationModifiers.Virtual | DeclarationModifiers.Abstract)) == 0 && notPartialOrNewPartialBehavior)
281if (hasBody || (mods & (DeclarationModifiers.Extern | DeclarationModifiers.Partial | DeclarationModifiers.Sealed)) != 0)
283if ((mods & DeclarationModifiers.Sealed) == 0)
285mods |= DeclarationModifiers.Virtual;
289mods &= ~DeclarationModifiers.Sealed;
294mods |= DeclarationModifiers.Abstract;
301internal static string ConvertSingleModifierToSyntaxText(DeclarationModifiers modifier)
305case DeclarationModifiers.Abstract:
307case DeclarationModifiers.Sealed:
309case DeclarationModifiers.Static:
311case DeclarationModifiers.New:
313case DeclarationModifiers.Public:
315case DeclarationModifiers.Protected:
317case DeclarationModifiers.Internal:
319case DeclarationModifiers.ProtectedInternal:
321case DeclarationModifiers.Private:
323case DeclarationModifiers.PrivateProtected:
325case DeclarationModifiers.ReadOnly:
327case DeclarationModifiers.Const:
329case DeclarationModifiers.Volatile:
331case DeclarationModifiers.Extern:
333case DeclarationModifiers.Partial:
335case DeclarationModifiers.Unsafe:
337case DeclarationModifiers.Fixed:
339case DeclarationModifiers.Virtual:
341case DeclarationModifiers.Override:
343case DeclarationModifiers.Async:
345case DeclarationModifiers.Ref:
347case DeclarationModifiers.Required:
349case DeclarationModifiers.Scoped:
351case DeclarationModifiers.File:
358private static DeclarationModifiers ToDeclarationModifier(SyntaxKind kind)
363return DeclarationModifiers.Abstract;
365return DeclarationModifiers.Async;
367return DeclarationModifiers.Sealed;
369return DeclarationModifiers.Static;
371return DeclarationModifiers.New;
373return DeclarationModifiers.Public;
375return DeclarationModifiers.Protected;
377return DeclarationModifiers.Internal;
379return DeclarationModifiers.Private;
381return DeclarationModifiers.Extern;
383return DeclarationModifiers.ReadOnly;
385return DeclarationModifiers.Partial;
387return DeclarationModifiers.Unsafe;
389return DeclarationModifiers.Virtual;
391return DeclarationModifiers.Override;
393return DeclarationModifiers.Const;
395return DeclarationModifiers.Fixed;
397return DeclarationModifiers.Volatile;
399return DeclarationModifiers.Ref;
401return DeclarationModifiers.Required;
403return DeclarationModifiers.Scoped;
405return DeclarationModifiers.File;
411public static DeclarationModifiers ToDeclarationModifiers(
414var result = DeclarationModifiers.None;
420DeclarationModifiers one = ToDeclarationModifier(modifier.ContextualKind());
427if (one == DeclarationModifiers.Partial)
448switch (result & DeclarationModifiers.AccessibilityMask)
450case DeclarationModifiers.Protected | DeclarationModifiers.Internal:
452result &= ~DeclarationModifiers.AccessibilityMask;
453result |= DeclarationModifiers.ProtectedInternal;
456case DeclarationModifiers.Private | DeclarationModifiers.Protected:
458result &= ~DeclarationModifiers.AccessibilityMask;
459result |= DeclarationModifiers.PrivateProtected;
468DeclarationModifiers modifierKind,
469DeclarationModifiers allModifiers,
486internal static bool CheckAccessibility(DeclarationModifiers modifiers, Symbol symbol, bool isExplicitInterfaceImplementation, BindingDiagnosticBag diagnostics, Location errorLocation)
496(symbol.Kind != SymbolKind.Method || (modifiers & DeclarationModifiers.Partial) == 0) &&
497(modifiers & DeclarationModifiers.Static) == 0)
499switch (modifiers & DeclarationModifiers.AccessibilityMask)
501case DeclarationModifiers.Protected:
502case DeclarationModifiers.ProtectedInternal:
503case DeclarationModifiers.PrivateProtected:
514if ((modifiers & DeclarationModifiers.Required) != 0)
528case FieldSymbol when (modifiers & DeclarationModifiers.ReadOnly) != 0:
544internal static Accessibility EffectiveAccessibility(DeclarationModifiers modifiers)
546switch (modifiers & DeclarationModifiers.AccessibilityMask)
548case DeclarationModifiers.None:
550case DeclarationModifiers.Private:
552case DeclarationModifiers.Protected:
554case DeclarationModifiers.Internal:
556case DeclarationModifiers.Public:
558case DeclarationModifiers.ProtectedInternal:
560case DeclarationModifiers.PrivateProtected:
570internal static bool IsValidAccessibility(DeclarationModifiers modifiers)
572switch (modifiers & DeclarationModifiers.AccessibilityMask)
574case DeclarationModifiers.None:
575case DeclarationModifiers.Private:
576case DeclarationModifiers.Protected:
577case DeclarationModifiers.Internal:
578case DeclarationModifiers.Public:
579case DeclarationModifiers.ProtectedInternal:
580case DeclarationModifiers.PrivateProtected:
Symbols\Source\SourceConstructorSymbol.cs (17)
89private static (DeclarationModifiers, Flags) MakeModifiersAndFlags(
101DeclarationModifiers declarationModifiers = MakeModifiers(containingType, syntax, methodKind, hasAnyBody, location, diagnostics, out modifierErrors, out bool hasExplicitAccessModifier, out report_ERR_StaticConstructorWithAccessModifiers);
132private static DeclarationModifiers MakeModifiers(
136var defaultAccess = (methodKind == MethodKind.StaticConstructor) ? DeclarationModifiers.None : DeclarationModifiers.Private;
139DeclarationModifiers allowedModifiers =
140DeclarationModifiers.AccessibilityMask |
141DeclarationModifiers.Static |
142DeclarationModifiers.Extern |
143DeclarationModifiers.Unsafe;
147allowedModifiers |= DeclarationModifiers.Partial;
151var mods = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(isOrdinaryMethod: false, isForInterfaceMember: isInterface, syntax.Modifiers, defaultAccess, allowedModifiers, location, diagnostics, out modifierErrors, out hasExplicitAccessModifier);
159if ((mods & DeclarationModifiers.AccessibilityMask) != 0 &&
162mods = mods & ~DeclarationModifiers.AccessibilityMask;
167mods |= DeclarationModifiers.Private; // we mark static constructors private in the symbol table
172DeclarationModifiers.Extern,
Symbols\Source\SourceDelegateMethodSymbol.cs (8)
28DeclarationModifiers declarationModifiers)
217: base(delegateType, voidType, syntax, MethodKind.Constructor, RefKind.None, DeclarationModifiers.Public)
262: base(delegateType, returnType, syntax, MethodKind.DelegateInvoke, refKind, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
355: base((SourceNamedTypeSymbol)invoke.ContainingType, iAsyncResultType, syntax, MethodKind.Ordinary, RefKind.None, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
393: base((SourceNamedTypeSymbol)invoke.ContainingType, invoke.ReturnTypeWithAnnotations, syntax, MethodKind.Ordinary, invoke.RefKind, DeclarationModifiers.Virtual | DeclarationModifiers.Public)
Symbols\Source\SourceDestructorSymbol.cs (10)
64private static (DeclarationModifiers, Flags) MakeModifiersAndFlags(NamedTypeSymbol containingType, DestructorDeclarationSyntax syntax, bool isNullableAnalysisEnabled, Location location, BindingDiagnosticBag diagnostics, out bool modifierErrors)
66DeclarationModifiers declarationModifiers = MakeModifiers(containingType, syntax.Modifiers, location, diagnostics, out modifierErrors);
129private static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxTokenList modifiers, Location location, BindingDiagnosticBag diagnostics, out bool modifierErrors)
132const DeclarationModifiers allowedModifiers = DeclarationModifiers.Extern | DeclarationModifiers.Unsafe;
133var mods = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(isOrdinaryMethod: false, isForInterfaceMember: containingType.IsInterface, modifiers, DeclarationModifiers.None, allowedModifiers, location, diagnostics, out modifierErrors, out _);
135mods = (mods & ~DeclarationModifiers.AccessibilityMask) | DeclarationModifiers.Protected; // we mark destructors protected in the symbol table
Symbols\Source\SourceMemberFieldSymbol.cs (53)
22private readonly DeclarationModifiers _modifiers;
26DeclarationModifiers modifiers,
35protected sealed override DeclarationModifiers Modifiers
175internal static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxToken firstIdentifier, SyntaxTokenList modifiers, bool isRefField, BindingDiagnosticBag diagnostics, out bool modifierErrors)
178DeclarationModifiers defaultAccess =
179isInterface ? DeclarationModifiers.Public : DeclarationModifiers.Private;
181DeclarationModifiers allowedModifiers =
182DeclarationModifiers.AccessibilityMask |
183DeclarationModifiers.Const |
184DeclarationModifiers.New |
185DeclarationModifiers.ReadOnly |
186DeclarationModifiers.Static |
187DeclarationModifiers.Volatile |
188DeclarationModifiers.Fixed |
189DeclarationModifiers.Unsafe |
190DeclarationModifiers.Abstract |
191DeclarationModifiers.Required; // Some of these are filtered out later, when illegal, for better error messages.
194DeclarationModifiers result = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(
198if ((result & DeclarationModifiers.Abstract) != 0)
201result &= ~DeclarationModifiers.Abstract;
204if ((result & DeclarationModifiers.Fixed) != 0)
212reportBadMemberFlagIfAny(result, DeclarationModifiers.Static, diagnostics, errorLocation);
213reportBadMemberFlagIfAny(result, DeclarationModifiers.ReadOnly, diagnostics, errorLocation);
214reportBadMemberFlagIfAny(result, DeclarationModifiers.Const, diagnostics, errorLocation);
215reportBadMemberFlagIfAny(result, DeclarationModifiers.Volatile, diagnostics, errorLocation);
216reportBadMemberFlagIfAny(result, DeclarationModifiers.Required, diagnostics, errorLocation);
218result &= ~(DeclarationModifiers.Static | DeclarationModifiers.ReadOnly | DeclarationModifiers.Const | DeclarationModifiers.Volatile | DeclarationModifiers.Required);
219Debug.Assert((result & ~(DeclarationModifiers.AccessibilityMask | DeclarationModifiers.Fixed | DeclarationModifiers.Unsafe | DeclarationModifiers.New)) == 0);
222if ((result & DeclarationModifiers.Const) != 0)
224if ((result & DeclarationModifiers.Static) != 0)
230reportBadMemberFlagIfAny(result, DeclarationModifiers.ReadOnly, diagnostics, errorLocation);
231reportBadMemberFlagIfAny(result, DeclarationModifiers.Volatile, diagnostics, errorLocation);
232reportBadMemberFlagIfAny(result, DeclarationModifiers.Unsafe, diagnostics, errorLocation);
234if (reportBadMemberFlagIfAny(result, DeclarationModifiers.Required, diagnostics, errorLocation))
236result &= ~DeclarationModifiers.Required;
239result |= DeclarationModifiers.Static; // "constants are considered static members"
243if ((result & DeclarationModifiers.Static) != 0 && (result & DeclarationModifiers.Required) != 0)
247result &= ~DeclarationModifiers.Required;
260reportBadMemberFlagIfAny(result, DeclarationModifiers.Static, diagnostics, errorLocation);
261reportBadMemberFlagIfAny(result, DeclarationModifiers.Const, diagnostics, errorLocation);
262reportBadMemberFlagIfAny(result, DeclarationModifiers.Volatile, diagnostics, errorLocation);
267static bool reportBadMemberFlagIfAny(DeclarationModifiers result, DeclarationModifiers modifier, BindingDiagnosticBag diagnostics, SourceLocation errorLocation)
355DeclarationModifiers modifiers,
Symbols\Source\SourceOrdinaryMethodSymbol.cs (46)
88private static (DeclarationModifiers, Flags) MakeModifiersAndFlags(
92(DeclarationModifiers declarationModifiers, bool hasExplicitAccessMod) = MakeModifiers(syntax, containingType, methodKind, hasBody: syntax.HasAnyBody(), location, diagnostics);
429private static DeclarationModifiers MakeDeclarationModifiers(MethodDeclarationSyntax syntax, NamedTypeSymbol containingType, Location location, DeclarationModifiers allowedModifiers, BindingDiagnosticBag diagnostics)
432syntax.Modifiers, defaultAccess: DeclarationModifiers.None, allowedModifiers, location, diagnostics, out _, out _);
702private static (DeclarationModifiers mods, bool hasExplicitAccessMod) MakeModifiers(MethodDeclarationSyntax syntax, NamedTypeSymbol containingType, MethodKind methodKind, bool hasBody, Location location, BindingDiagnosticBag diagnostics)
710var defaultAccess = isInterface && !isExplicitInterfaceImplementation ? DeclarationModifiers.None : DeclarationModifiers.Private;
713var allowedModifiers = DeclarationModifiers.Partial | DeclarationModifiers.Unsafe;
714var defaultInterfaceImplementationModifiers = DeclarationModifiers.None;
718allowedModifiers |= DeclarationModifiers.Static |
719DeclarationModifiers.AccessibilityMask;
723allowedModifiers |= DeclarationModifiers.New |
724DeclarationModifiers.Sealed |
725DeclarationModifiers.Abstract |
726DeclarationModifiers.Virtual;
730allowedModifiers |= DeclarationModifiers.Override;
734defaultInterfaceImplementationModifiers |= DeclarationModifiers.Sealed |
735DeclarationModifiers.Abstract |
736DeclarationModifiers.Static |
737DeclarationModifiers.Virtual |
738DeclarationModifiers.Extern |
739DeclarationModifiers.Async |
740DeclarationModifiers.Partial |
741DeclarationModifiers.AccessibilityMask;
751allowedModifiers |= DeclarationModifiers.Abstract;
754allowedModifiers |= DeclarationModifiers.Static;
757allowedModifiers |= DeclarationModifiers.Async;
761allowedModifiers |= DeclarationModifiers.Extern;
766allowedModifiers |= DeclarationModifiers.ReadOnly;
772DeclarationModifiers mods = MakeDeclarationModifiers(syntax, containingType, location, allowedModifiers, diagnostics);
773if ((mods & DeclarationModifiers.AccessibilityMask) == 0)
793private static DeclarationModifiers AddImpliedModifiers(DeclarationModifiers mods, bool containingTypeIsInterface, MethodKind methodKind, bool hasBody)
805mods = (mods & ~DeclarationModifiers.AccessibilityMask) | DeclarationModifiers.Private;
810private const DeclarationModifiers PartialMethodExtendedModifierMask =
811DeclarationModifiers.Virtual |
812DeclarationModifiers.Override |
813DeclarationModifiers.New |
814DeclarationModifiers.Sealed |
815DeclarationModifiers.Extern;
Symbols\Source\SourcePropertyAccessorSymbol.cs (28)
31DeclarationModifiers propertyModifiers,
68DeclarationModifiers propertyModifiers,
89DeclarationModifiers propertyModifiers,
115DeclarationModifiers propertyModifiers,
142DeclarationModifiers propertyModifiers,
176DeclarationModifiers propertyModifiers,
222private static (DeclarationModifiers, Flags) MakeModifiersAndFlags(
223NamedTypeSymbol containingType, SourcePropertySymbolBase property, DeclarationModifiers propertyModifiers, Location location,
231var declarationModifiers = MakeModifiers(containingType, modifiers, isExplicitInterfaceImplementation, hasAnyBody, location, diagnostics, out modifierErrors);
234declarationModifiers |= GetAccessorModifiers(propertyModifiers) & ~DeclarationModifiers.AccessibilityMask;
235if ((declarationModifiers & DeclarationModifiers.Private) != 0)
238declarationModifiers &= ~DeclarationModifiers.Virtual;
251private static DeclarationModifiers GetAccessorModifiers(DeclarationModifiers propertyModifiers) =>
252propertyModifiers & ~(DeclarationModifiers.Indexer | DeclarationModifiers.ReadOnly);
432internal bool LocalDeclaredReadOnly => (DeclarationModifiers & DeclarationModifiers.ReadOnly) != 0;
492private static DeclarationModifiers MakeModifiers(NamedTypeSymbol containingType, SyntaxTokenList modifiers, bool isExplicitInterfaceImplementation,
497const DeclarationModifiers defaultAccess = DeclarationModifiers.None;
500var allowedModifiers = isExplicitInterfaceImplementation ? DeclarationModifiers.None : DeclarationModifiers.AccessibilityMask;
503allowedModifiers |= DeclarationModifiers.ReadOnly;
506var defaultInterfaceImplementationModifiers = DeclarationModifiers.None;
511defaultInterfaceImplementationModifiers = DeclarationModifiers.AccessibilityMask;
514var mods = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(isOrdinaryMethod: false, isForInterfaceMember: isInterface,
Symbols\Source\SourceUserDefinedOperatorSymbolBase.cs (42)
32DeclarationModifiers declarationModifiers,
168protected static DeclarationModifiers MakeDeclarationModifiers(bool isCompoundAssignmentOrIncrementAssignment, MethodKind methodKind, SourceMemberContainerTypeSymbol containingType, BaseMethodDeclarationSyntax syntax, Location location, BindingDiagnosticBag diagnostics)
172var defaultAccess = inInterface && !isExplicitInterfaceImplementation ? DeclarationModifiers.Public : DeclarationModifiers.Private;
173var allowedModifiers =
174DeclarationModifiers.Extern |
175DeclarationModifiers.Unsafe;
179allowedModifiers |= DeclarationModifiers.Static;
184allowedModifiers |= DeclarationModifiers.AccessibilityMask;
188allowedModifiers |= DeclarationModifiers.Abstract | DeclarationModifiers.Virtual;
192allowedModifiers |= DeclarationModifiers.Sealed;
200allowedModifiers |= DeclarationModifiers.New;
206allowedModifiers |= DeclarationModifiers.Abstract | DeclarationModifiers.Virtual | DeclarationModifiers.Sealed;
209allowedModifiers |= DeclarationModifiers.Override | DeclarationModifiers.New;
216allowedModifiers |= DeclarationModifiers.Abstract;
221allowedModifiers |= DeclarationModifiers.ReadOnly;
224var result = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(
230if ((result & (DeclarationModifiers.Abstract | DeclarationModifiers.Virtual | DeclarationModifiers.Sealed)) != 0)
232if ((result & DeclarationModifiers.Sealed) != 0 &&
233(result & (DeclarationModifiers.Abstract | DeclarationModifiers.Virtual)) != 0)
235diagnostics.Add(ErrorCode.ERR_BadMemberFlag, location, ModifierUtils.ConvertSingleModifierToSyntaxText(DeclarationModifiers.Sealed));
236result &= ~DeclarationModifiers.Sealed;
247if ((result & DeclarationModifiers.Abstract) != 0)
249reportModifierIfPresent(result, DeclarationModifiers.Abstract, location, diagnostics, requiredVersionArgument, availableVersionArgument);
253reportModifierIfPresent(result, DeclarationModifiers.Virtual, location, diagnostics, requiredVersionArgument, availableVersionArgument);
256reportModifierIfPresent(result, DeclarationModifiers.Sealed, location, diagnostics, requiredVersionArgument, availableVersionArgument);
259result &= ~DeclarationModifiers.Sealed;
261else if ((result & DeclarationModifiers.Static) != 0)
272result |= DeclarationModifiers.Virtual;
276result |= DeclarationModifiers.Abstract;
283if ((result & DeclarationModifiers.Abstract) != 0)
285result |= DeclarationModifiers.Sealed;
291static void reportModifierIfPresent(DeclarationModifiers result, DeclarationModifiers errorModifier, Location location, BindingDiagnosticBag diagnostics, CSharpRequiredLanguageVersion requiredVersionArgument, string availableVersionArgument)