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)
252if ((mods & DeclarationModifiers.Abstract) != 0)
254mods |= DeclarationModifiers.Sealed;
257else if ((mods & DeclarationModifiers.Static) != 0)
259mods &= ~DeclarationModifiers.Sealed;
261else if ((mods & (DeclarationModifiers.Private | DeclarationModifiers.Partial | DeclarationModifiers.Virtual | DeclarationModifiers.Abstract)) == 0)
265if (hasBody || (mods & (DeclarationModifiers.Extern | DeclarationModifiers.Sealed)) != 0)
267if ((mods & DeclarationModifiers.Sealed) == 0)
269mods |= DeclarationModifiers.Virtual;
273mods &= ~DeclarationModifiers.Sealed;
278mods |= DeclarationModifiers.Abstract;
282if ((mods & DeclarationModifiers.AccessibilityMask) == 0)
284if ((mods & DeclarationModifiers.Partial) == 0 && !isExplicitInterfaceImplementation)
286mods |= DeclarationModifiers.Public;
290mods |= DeclarationModifiers.Private;
297internal static string ConvertSingleModifierToSyntaxText(DeclarationModifiers modifier)
301case DeclarationModifiers.Abstract:
303case DeclarationModifiers.Sealed:
305case DeclarationModifiers.Static:
307case DeclarationModifiers.New:
309case DeclarationModifiers.Public:
311case DeclarationModifiers.Protected:
313case DeclarationModifiers.Internal:
315case DeclarationModifiers.ProtectedInternal:
317case DeclarationModifiers.Private:
319case DeclarationModifiers.PrivateProtected:
321case DeclarationModifiers.ReadOnly:
323case DeclarationModifiers.Const:
325case DeclarationModifiers.Volatile:
327case DeclarationModifiers.Extern:
329case DeclarationModifiers.Partial:
331case DeclarationModifiers.Unsafe:
333case DeclarationModifiers.Fixed:
335case DeclarationModifiers.Virtual:
337case DeclarationModifiers.Override:
339case DeclarationModifiers.Async:
341case DeclarationModifiers.Ref:
343case DeclarationModifiers.Required:
345case DeclarationModifiers.Scoped:
347case DeclarationModifiers.File:
354private static DeclarationModifiers ToDeclarationModifier(SyntaxKind kind)
359return DeclarationModifiers.Abstract;
361return DeclarationModifiers.Async;
363return DeclarationModifiers.Sealed;
365return DeclarationModifiers.Static;
367return DeclarationModifiers.New;
369return DeclarationModifiers.Public;
371return DeclarationModifiers.Protected;
373return DeclarationModifiers.Internal;
375return DeclarationModifiers.Private;
377return DeclarationModifiers.Extern;
379return DeclarationModifiers.ReadOnly;
381return DeclarationModifiers.Partial;
383return DeclarationModifiers.Unsafe;
385return DeclarationModifiers.Virtual;
387return DeclarationModifiers.Override;
389return DeclarationModifiers.Const;
391return DeclarationModifiers.Fixed;
393return DeclarationModifiers.Volatile;
395return DeclarationModifiers.Ref;
397return DeclarationModifiers.Required;
399return DeclarationModifiers.Scoped;
401return DeclarationModifiers.File;
407public static DeclarationModifiers ToDeclarationModifiers(
410var result = DeclarationModifiers.None;
416DeclarationModifiers one = ToDeclarationModifier(modifier.ContextualKind());
423if (one == DeclarationModifiers.Partial)
444switch (result & DeclarationModifiers.AccessibilityMask)
446case DeclarationModifiers.Protected | DeclarationModifiers.Internal:
448result &= ~DeclarationModifiers.AccessibilityMask;
449result |= DeclarationModifiers.ProtectedInternal;
452case DeclarationModifiers.Private | DeclarationModifiers.Protected:
454result &= ~DeclarationModifiers.AccessibilityMask;
455result |= DeclarationModifiers.PrivateProtected;
464DeclarationModifiers modifierKind,
465DeclarationModifiers allModifiers,
482internal static bool CheckAccessibility(DeclarationModifiers modifiers, Symbol symbol, bool isExplicitInterfaceImplementation, BindingDiagnosticBag diagnostics, Location errorLocation)
492(symbol.Kind != SymbolKind.Method || (modifiers & DeclarationModifiers.Partial) == 0) &&
493(modifiers & DeclarationModifiers.Static) == 0)
495switch (modifiers & DeclarationModifiers.AccessibilityMask)
497case DeclarationModifiers.Protected:
498case DeclarationModifiers.ProtectedInternal:
499case DeclarationModifiers.PrivateProtected:
510if ((modifiers & DeclarationModifiers.Required) != 0)
524case FieldSymbol when (modifiers & DeclarationModifiers.ReadOnly) != 0:
540internal static Accessibility EffectiveAccessibility(DeclarationModifiers modifiers)
542switch (modifiers & DeclarationModifiers.AccessibilityMask)
544case DeclarationModifiers.None:
546case DeclarationModifiers.Private:
548case DeclarationModifiers.Protected:
550case DeclarationModifiers.Internal:
552case DeclarationModifiers.Public:
554case DeclarationModifiers.ProtectedInternal:
556case DeclarationModifiers.PrivateProtected:
566internal static bool IsValidAccessibility(DeclarationModifiers modifiers)
568switch (modifiers & DeclarationModifiers.AccessibilityMask)
570case DeclarationModifiers.None:
571case DeclarationModifiers.Private:
572case DeclarationModifiers.Protected:
573case DeclarationModifiers.Internal:
574case DeclarationModifiers.Public:
575case DeclarationModifiers.ProtectedInternal:
576case 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)
804mods = (mods & ~DeclarationModifiers.AccessibilityMask) | DeclarationModifiers.Private;
809private const DeclarationModifiers PartialMethodExtendedModifierMask =
810DeclarationModifiers.Virtual |
811DeclarationModifiers.Override |
812DeclarationModifiers.New |
813DeclarationModifiers.Sealed |
814DeclarationModifiers.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 (33)
31DeclarationModifiers declarationModifiers,
125protected static DeclarationModifiers MakeDeclarationModifiers(MethodKind methodKind, bool inInterface, BaseMethodDeclarationSyntax syntax, Location location, BindingDiagnosticBag diagnostics)
128var defaultAccess = inInterface && !isExplicitInterfaceImplementation ? DeclarationModifiers.Public : DeclarationModifiers.Private;
129var allowedModifiers =
130DeclarationModifiers.Static |
131DeclarationModifiers.Extern |
132DeclarationModifiers.Unsafe;
136allowedModifiers |= DeclarationModifiers.AccessibilityMask;
140allowedModifiers |= DeclarationModifiers.Abstract | DeclarationModifiers.Virtual;
144allowedModifiers |= DeclarationModifiers.Sealed;
151allowedModifiers |= DeclarationModifiers.Abstract;
154var result = ModifierUtils.MakeAndCheckNonTypeMemberModifiers(
160if ((result & (DeclarationModifiers.Abstract | DeclarationModifiers.Virtual | DeclarationModifiers.Sealed)) != 0)
162if ((result & DeclarationModifiers.Sealed) != 0 &&
163(result & (DeclarationModifiers.Abstract | DeclarationModifiers.Virtual)) != 0)
165diagnostics.Add(ErrorCode.ERR_BadMemberFlag, location, ModifierUtils.ConvertSingleModifierToSyntaxText(DeclarationModifiers.Sealed));
166result &= ~DeclarationModifiers.Sealed;
177if ((result & DeclarationModifiers.Abstract) != 0)
179reportModifierIfPresent(result, DeclarationModifiers.Abstract, location, diagnostics, requiredVersionArgument, availableVersionArgument);
183reportModifierIfPresent(result, DeclarationModifiers.Virtual, location, diagnostics, requiredVersionArgument, availableVersionArgument);
186reportModifierIfPresent(result, DeclarationModifiers.Sealed, location, diagnostics, requiredVersionArgument, availableVersionArgument);
189result &= ~DeclarationModifiers.Sealed;
191else if ((result & DeclarationModifiers.Static) != 0 && syntax is OperatorDeclarationSyntax { OperatorToken: var opToken } && opToken.Kind() is not (SyntaxKind.EqualsEqualsToken or SyntaxKind.ExclamationEqualsToken))
199if ((result & DeclarationModifiers.Abstract) != 0)
201result |= DeclarationModifiers.Sealed;
207static void reportModifierIfPresent(DeclarationModifiers result, DeclarationModifiers errorModifier, Location location, BindingDiagnosticBag diagnostics, CSharpRequiredLanguageVersion requiredVersionArgument, string availableVersionArgument)