Binder\Binder.ValueChecks.cs (15)
975Error(diagnostics, ErrorCode.ERR_BadSKknown, node, ns.NamespaceSymbol, MessageID.IDS_SK_NAMESPACE.Localize(), MessageID.IDS_SK_VARIABLE.Localize());
980Error(diagnostics, ErrorCode.ERR_BadSKknown, node, type.Type, MessageID.IDS_SK_TYPE.Localize(), MessageID.IDS_SK_VARIABLE.Localize());
991Error(diagnostics, GetMethodGroupOrFunctionPointerLvalueError(valueKind), node, unconvertedAddressOf.Operand.Name, MessageID.IDS_AddressOfMethodGroup.Localize());
1002Error(diagnostics, GetMethodGroupOrFunctionPointerLvalueError(valueKind), node, methodGroup.Name, MessageID.IDS_MethodGroup.Localize());
1260Error(diagnostics, ErrorCode.ERR_BadSKknown, expr.Syntax, ((BoundNamespaceExpression)expr).NamespaceSymbol, MessageID.IDS_SK_NAMESPACE.Localize(), MessageID.IDS_SK_VARIABLE.Localize());
1268Error(diagnostics, ErrorCode.ERR_BadSKunknown, expr.Syntax, expr.Type, MessageID.IDS_SK_TYPE.Localize());
1305else if (this.IsDirectlyInIterator && Compilation.IsFeatureEnabled(MessageID.IDS_FeatureRefUnsafeInIteratorAsync))
2059CheckFeatureAvailability(node, MessageID.IDS_FeatureInitOnlySetters, diagnostics);
3439MessageID cause;
3442cause = MessageID.IDS_FOREACHLOCAL;
3446cause = MessageID.IDS_USINGLOCAL;
3450cause = MessageID.IDS_FIXEDLOCAL;
Binder\Binder_Conversions.cs (11)
486CheckFeatureAvailability(syntax, MessageID.IDS_FeatureStaticAbstractMembersInInterfaces, diagnostics);
498CheckFeatureAvailability(syntax, MessageID.IDS_FeatureCheckedUserDefinedOperators, diagnostics);
504CheckFeatureAvailability(syntax, MessageID.IDS_FeatureUnions, diagnostics);
521CheckFeatureAvailability(syntax, MessageID.IDS_FeatureInlineArrays, diagnostics);
565CheckFeatureAvailability(syntax, MessageID.IDS_FeatureFirstClassSpan, diagnostics);
2473if (targetTyped && !destination.IsErrorType() && !Compilation.IsFeatureEnabled(MessageID.IDS_FeatureTargetTypedConditional))
2481new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureTargetTypedConditional.RequiredVersion()));
2843Debug.Assert(syntax.IsFeatureEnabled(MessageID.IDS_FeatureInferredDelegateType));
3063Error(diagnostics, ErrorCode.WRN_OptionalParamValueMismatch, lambdaParameter.GetFirstLocation(), p + 1, lambdaParamDefault, delegateParamDefault ?? ((object)MessageID.IDS_Missing.Localize()));
3109CheckFeatureAvailability(syntax, MessageID.IDS_FeatureRefStructs, diagnostics);
3422else if (WasImplicitReceiver(receiverOpt) && !(IsInsideNameof && Compilation.IsFeatureEnabled(MessageID.IDS_FeatureInstanceMemberInNameof)))
Binder\Binder_Crefs.cs (5)
233CheckFeatureAvailability(syntax, MessageID.IDS_FeatureExtensions, diagnostics);
241CheckFeatureAvailability(syntax, MessageID.IDS_FeatureExtensions, diagnostics);
247CheckFeatureAvailability(syntax, MessageID.IDS_FeatureExtensionIndexers, diagnostics);
576CheckFeatureAvailability(syntax, MessageID.IDS_FeatureNativeInt, diagnostics);
1145CheckFeatureAvailability(parameter.ReadOnlyKeyword, MessageID.IDS_FeatureRefReadonlyParameters, diagnostics, forceWarning: true);
Binder\Binder_Expressions.cs (53)
38if (!isExplicit && IsInsideNameof && Compilation.IsFeatureEnabled(MessageID.IDS_FeatureInstanceMemberInNameof))
457if (CheckFeatureAvailability(syntax, MessageID.IDS_FeatureInferredDelegateType, diagnostics))
753MessageID.IDS_FeatureDefaultLiteral.CheckFeatureAvailability(diagnostics, node);
916MessageID.IDS_FeatureThrowExpression.CheckFeatureAvailability(diagnostics, node.ThrowKeyword);
1039MessageID.IDS_FeatureTuples.CheckFeatureAvailability(diagnostics, node);
1572var requiredVersion = MessageID.IDS_FeatureFieldKeyword.RequiredVersion();
1614case ManagedKind.UnmanagedWithGenerics when MessageID.IDS_FeatureUnmanagedConstructedTypes.GetFeatureAvailabilityDiagnosticInfo(compilation) is CSDiagnosticInfo diagnosticInfo:
1632MessageID.IDS_FeatureDefault.CheckFeatureAvailability(diagnostics, node.Keyword);
1933CheckFeatureAvailability(node, MessageID.IDS_FeatureDiscards, diagnostics);
2389if (!IsInsideNameof || (EnclosingNameofArgument != node && !node.IsFeatureEnabled(MessageID.IDS_FeatureInstanceMemberInNameof)))
2423CheckFeatureAvailability(node, MessageID.IDS_FeatureInstanceMemberInNameof, diagnostics);
2683CheckFeatureAvailability(node, MessageID.IDS_FeatureIndexOperator, diagnostics);
2724CheckFeatureAvailability(node, MessageID.IDS_FeatureRangeOperator, diagnostics);
2905diagnostics.Add(ErrorCode.ERR_NoExplicitConv, syntax.Location, MessageID.IDS_SK_METHOD.Localize(), targetType);
3079nameString = MessageID.IDS_Lambda.Localize().ToString();
3214MessageID.IDS_FeatureReadOnlyReferences.CheckFeatureAvailability(diagnostics, argumentSyntax.RefKindKeyword);
3219MessageID.IDS_FeatureOutVar.CheckFeatureAvailability(diagnostics, argumentSyntax.RefKindKeyword);
3299CheckFeatureAvailability(declarationExpression, MessageID.IDS_FeatureExpressionVariablesInQueriesAndInitializers, diagnostics);
3377CheckFeatureAvailability(syntax, MessageID.IDS_FeatureRefUnsafeInIteratorAsync, diagnostics);
3417CheckFeatureAvailability(nameColonSyntax, MessageID.IDS_FeatureNamedArgument, diagnostics);
3464new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureNonTrailingNamedArguments.RequiredVersion()));
3988if (!Compilation.IsFeatureEnabled(MessageID.IDS_FeatureRefReadonlyParameters))
3994var available = CheckFeatureAvailability(argument.Syntax, MessageID.IDS_FeatureRefReadonlyParameters, diagnostics);
4206MessageID.IDS_FeatureImplicitArray.CheckFeatureAvailability(diagnostics, node.NewKeyword);
4671LanguageVersion requiredVersion = MessageID.IDS_FeatureNestedStackalloc.RequiredVersion();
4677MessageID.IDS_FeatureNestedStackalloc.CheckFeatureAvailability(diagnostics, node.GetFirstToken());
4708CheckFeatureAvailability(node, MessageID.IDS_FeatureRefStructs, diagnostics);
4771MessageID.IDS_FeatureStackAllocInitializer.CheckFeatureAvailability(diagnostics, stackAllocKeyword);
5274MessageID.IDS_FeatureImplicitObjectCreation.CheckFeatureAvailability(diagnostics, node.NewKeyword);
5359MessageID.IDS_FeatureCollectionExpressions.CheckFeatureAvailability(diagnostics, syntax, syntax.OpenBracketToken.GetLocation());
5368MessageID.IDS_FeatureCollectionExpressionArguments.CheckFeatureAvailability(diagnostics, syntax, withElementSyntax.WithKeyword.GetLocation());
5865MessageID.IDS_FeatureObjectInitializer.CheckFeatureAvailability(diagnostics, initializerSyntax.OpenBraceToken);
6049MessageID.IDS_FeatureDictionaryInitializer.CheckFeatureAvailability(diagnostics, implicitIndexing.ArgumentList.OpenBracketToken);
6146MessageID.IDS_FeatureImplicitIndexerInitializer.CheckFeatureAvailability(diagnostics, implicitIndexer.Syntax);
6419MessageID.IDS_FeatureCollectionInitializer.CheckFeatureAvailability(diagnostics, initializerSyntax.OpenBraceToken);
6479CheckFeatureAvailability(node, MessageID.IDS_FeatureRefStructInterfaces, diagnostics);
7589MessageID.IDS_FeatureRawStringLiterals.CheckFeatureAvailability(diagnostics, node);
7602CheckFeatureAvailability(node, MessageID.IDS_FeatureRawStringLiterals, diagnostics);
7605CheckFeatureAvailability(node, MessageID.IDS_FeatureUtf8StringLiterals, diagnostics);
7628CheckFeatureAvailability(node.Keyword, MessageID.IDS_FeatureUnsafeEvolution, diagnostics);
7950var msgId = ((UnboundLambda)boundLeft).MessageID;
8151CheckFeatureAvailability(boundLeft.Syntax, MessageID.IDS_FeatureStaticAbstractMembersInInterfaces, diagnostics);
8198Compilation.LanguageVersion < MessageID.IDS_FeatureNullableReferenceTypes.RequiredVersion())
8228Error(diagnostics, ErrorCode.ERR_BadSKunknown, methodGroup.NameSyntax, method, MessageID.IDS_SK_METHOD.Localize());
8288MessageID.IDS_FeatureExtensions.CheckFeatureAvailability(diagnostics, syntax);
9852CheckFeatureAvailability(node, MessageID.IDS_FeatureIndexingMovableFixedBuffers, diagnostics);
9898CheckFeatureAvailability(node, MessageID.IDS_FeatureRefFields, diagnostics);
10142else if (CheckFeatureAvailability(node, MessageID.IDS_FeatureInstanceMemberInNameof, diagnostics))
10520CheckFeatureAvailability(node, MessageID.IDS_FeatureInlineArrays, diagnostics);
11321_ = MessageID.IDS_FeatureIndexOperator.CheckFeatureAvailability(diagnostics, syntax);
12339MessageID.IDS_FeatureNullPropagatingOperator.CheckFeatureAvailability(diagnostics, node.OperatorToken);
12347MessageID.IDS_FeatureNullConditionalAssignment.CheckFeatureAvailability(diagnostics, assignment.OperatorToken);
12528var msgId = ((UnboundLambda)receiver).MessageID;
Binder\Binder_InterpolatedString.cs (10)
21if (CheckFeatureAvailability(node, MessageID.IDS_FeatureInterpolatedStrings, diagnostics))
27CheckFeatureAvailability(node, MessageID.IDS_FeatureRawStringLiterals, diagnostics);
32if (startText.StartsWith("@$\"") && !Compilation.IsFeatureEnabled(MessageID.IDS_FeatureAltInterpolatedVerbatimStrings))
37new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureAltInterpolatedVerbatimStrings.RequiredVersion()));
53var newLinesInInterpolationsAllowed = this.Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNewLinesInInterpolations);
86new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureNewLinesInInterpolations.RequiredVersion()));
662CheckFeatureAvailability(syntax, MessageID.IDS_FeatureImprovedInterpolatedStrings, diagnostics);
664else if (!Compilation.IsFeatureEnabled(MessageID.IDS_FeatureImprovedInterpolatedStrings) && diagnostics.AccumulatesDiagnostics)
689CheckFeatureAvailability(value.Syntax, MessageID.IDS_FeatureImprovedInterpolatedStrings, diagnostics);
699CheckFeatureAvailability(value.Syntax, MessageID.IDS_FeatureImprovedInterpolatedStrings, diagnostics);
Binder\Binder_Lookup.cs (4)
1886diagInfo = diagnose ? new CSDiagnosticInfo(ErrorCode.ERR_HasNoTypeVars, namedType, MessageID.IDS_SK_TYPE.Localize()) : null;
1891diagInfo = diagnose ? new CSDiagnosticInfo(ErrorCode.ERR_BadArity, namedType, MessageID.IDS_SK_TYPE.Localize(), namedType.Arity) : null;
1907diagInfo = diagnose ? new CSDiagnosticInfo(ErrorCode.ERR_HasNoTypeVars, method, MessageID.IDS_SK_METHOD.Localize()) : null;
1912diagInfo = diagnose ? new CSDiagnosticInfo(ErrorCode.ERR_BadArity, method, MessageID.IDS_SK_METHOD.Localize(), method.Arity) : null;
Binder\Binder_Operators.cs (20)
348!node.IsFeatureEnabled(MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators))
495CheckFeatureAvailability(node, MessageID.IDS_FeatureExtensions, diagnostics);
979CheckFeatureAvailability(node, MessageID.IDS_FeatureTupleEquality, diagnostics);
2226Binder.CheckFeatureAvailability(node, MessageID.IDS_DefaultInterfaceImplementation, diagnostics);
3461!node.IsFeatureEnabled(MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators))
3601CheckFeatureAvailability(node, MessageID.IDS_FeatureExtensions, diagnostics);
4008result = CheckFeatureAvailability(node, MessageID.IDS_FeatureStaticAbstractMembersInInterfaces, diagnostics);
4019result = CheckFeatureAvailability(node, MessageID.IDS_FeatureStaticAbstractMembersInInterfaces, diagnostics);
4027result &= CheckFeatureAvailability(node, MessageID.IDS_FeatureUnsignedRightShift, diagnostics);
4038result &= CheckFeatureAvailability(node, MessageID.IDS_FeatureExtensions, diagnostics);
4042result &= CheckFeatureAvailability(node, MessageID.IDS_FeatureCheckedUserDefinedOperators, diagnostics);
4046result &= CheckFeatureAvailability(node, MessageID.IDS_FeatureUnsignedRightShift, diagnostics);
4057MessageID.IDS_FeatureNullableReferenceTypes.CheckFeatureAvailability(diagnostics, node.OperatorToken);
4835((CSharpParseOptions)node.SyntaxTree.Options).IsFeatureEnabled(MessageID.IDS_FeaturePatternMatching))
4930if (wasUnderscore && ((CSharpParseOptions)node.SyntaxTree.Options).IsFeatureEnabled(MessageID.IDS_FeatureRecursivePatterns))
5687CheckFeatureAvailability(node, MessageID.IDS_FeatureUnconstrainedTypeParameterInNullCoalescingOperator, diagnostics);
5825MessageID.IDS_FeatureCoalesceAssignmentExpression.CheckFeatureAvailability(diagnostics, node.OperatorToken);
5944CheckFeatureAvailability(node, MessageID.IDS_FeatureRefConditional, diagnostics);
6097CheckFeatureAvailability(syntax, MessageID.IDS_FeatureNativeInt, diagnostics);
6113CheckFeatureAvailability(syntax, MessageID.IDS_FeatureNativeInt, diagnostics);
Binder\Binder_Patterns.cs (24)
25MessageID.IDS_FeatureUnions.CheckFeatureAvailability(diagnostics, node);
536MessageID.IDS_FeaturePatternMatching.CheckFeatureAvailability(diagnostics, node.IsKeyword);
677MessageID.IDS_FeatureRecursivePatterns.CheckFeatureAvailability(diagnostics, node.SwitchKeyword);
732MessageID.IDS_FeatureParenthesizedPattern.CheckFeatureAvailability(diagnostics, node.OpenParenToken);
846CheckFeatureAvailability(node, MessageID.IDS_FeatureListPattern, diagnostics);
954MessageID.IDS_FeatureRecursivePatterns.CheckFeatureAvailability(diagnostics, node);
1028CheckFeatureAvailability(innerExpression, MessageID.IDS_FeatureTypePattern, diagnostics);
1171CheckFeatureAvailability(patternExpression, MessageID.IDS_FeatureNullPointerConstantPattern, diagnostics);
1228var requiredVersion = MessageID.IDS_FeatureRecursivePatterns.RequiredVersion();
1252if (MessageID.IDS_FeatureSpanCharConstantPattern.CheckFeatureAvailability(diagnostics, Compilation, node.Location))
1448LanguageVersion requiredVersion = MessageID.IDS_FeatureGenericPatternMatching.RequiredVersion();
1598CheckFeatureAvailability(designation, MessageID.IDS_FeatureExpressionVariablesInQueriesAndInitializers, diagnostics);
1680MessageID.IDS_FeatureRecursivePatterns.CheckFeatureAvailability(diagnostics, node);
1827MessageID.IDS_FeatureExtendedPropertyPatterns.CheckFeatureAvailability(diagnostics, subPattern.ExpressionColon.ColonToken);
1974if (Compilation.LanguageVersion < MessageID.IDS_FeatureRecursivePatterns.RequiredVersion())
2058|| (inputType.IsPointerType() && Compilation.LanguageVersion < MessageID.IDS_FeatureRecursivePatterns.RequiredVersion()))
2125MessageID.IDS_FeatureRecursivePatterns.CheckFeatureAvailability(diagnostics, node);
2249MessageID.IDS_FeatureExtendedPropertyPatterns.CheckFeatureAvailability(diagnostics, p.ExpressionColon.ColonToken);
2289MessageID.IDS_FeatureUnions.CheckFeatureAvailability(diagnostics, expr is MemberAccessExpressionSyntax memberAccess ? memberAccess.Name : expr); // Since new exhaustiveness rules will be used by DecisionDagBuilder.
2434MessageID.IDS_FeatureTypePattern.CheckFeatureAvailability(diagnostics, node);
2456MessageID.IDS_FeatureRelationalPattern.CheckFeatureAvailability(diagnostics, node.OperatorToken);
2557MessageID.IDS_FeatureNotPattern.CheckFeatureAvailability(diagnostics, node.OperatorToken);
2633MessageID.IDS_FeatureOrPattern.CheckFeatureAvailability(diagnostics, node.OperatorToken);
2653MessageID.IDS_FeatureAndPattern.CheckFeatureAvailability(diagnostics, node.OperatorToken);
Binder\Binder_Query.cs (5)
26MessageID.IDS_FeatureQueryExpression.CheckFeatureAvailability(diagnostics, node.FromClause.FromKeyword);
778CheckFeatureAvailability(expression, MessageID.IDS_FeatureExpressionVariablesInQueriesAndInitializers, diagnostics, locals[0].GetFirstLocation());
956diagnostics.Add(ErrorCode.ERR_BadSKunknown, ultimateReceiver.Syntax.Location, ((BoundNamespaceExpression)ultimateReceiver).NamespaceSymbol, MessageID.IDS_SK_NAMESPACE.Localize());
961diagnostics.Add(ErrorCode.ERR_QueryNoProvider, node.Location, MessageID.IDS_AnonMethod.Localize(), methodName);
971Error(diagnostics, ErrorCode.ERR_BadSKunknown, ultimateReceiver.Syntax, ultimateReceiver.Type, MessageID.IDS_SK_TYVAR.Localize());
Binder\Binder_Statements.cs (25)
49CheckFeatureAvailability(attributeList, MessageID.IDS_FeatureLocalFunctionAttributes, diagnostics);
180CheckFeatureAvailability(node.UnsafeKeyword, MessageID.IDS_FeatureRefUnsafeInIteratorAsync, diagnostics);
217MessageID.IDS_FeatureIterators.CheckFeatureAvailability(diagnostics, statement.YieldKeyword);
222MessageID.IDS_FeatureAsyncStreams.CheckFeatureAvailability(
270else if (InUnsafeRegion && Compilation.IsFeatureEnabled(MessageID.IDS_FeatureRefUnsafeInIteratorAsync))
396if (Compilation.LanguageVersion < MessageID.IDS_FeatureSwitchExpression.RequiredVersion())
556MessageID.IDS_FeatureLocalFunctions.CheckFeatureAvailability(diagnostics, node.Identifier);
603MessageID.IDS_FeatureStaticLocalFunctions.CheckFeatureAvailability(diagnostics, modifier);
605MessageID.IDS_FeatureExternLocalFunctions.CheckFeatureAvailability(diagnostics, modifier);
1173return !CheckFeatureAvailability(identifierToken, MessageID.IDS_FeatureRefUnsafeInIteratorAsync, diagnostics);
1294bool extensibleFixedEnabled = ((CSharpParseOptions)initializerOpt.SyntaxTree.Options)?.IsFeatureEnabled(MessageID.IDS_FeatureExtensibleFixedStatement) != false;
1305CheckFeatureAvailability(initializerOpt.Syntax, MessageID.IDS_FeatureExtensibleFixedStatement, diagnostics);
1426MessageID.IDS_FeatureRefReassignment.CheckFeatureAvailability(diagnostics, node.Right.GetFirstToken());
1642return MessageID.IDS_ArrayAccess.Localize();
1646return MessageID.IDS_PointerElementAccess.Localize();
2535syntax.IsFeatureEnabled(MessageID.IDS_FeatureInferredDelegateType))
2966MessageID.IDS_FeatureLabeledBreakContinue.CheckFeatureAvailability(diagnostics, node, name.GetLocation());
3443MessageID.IDS_FeatureExceptionFilter.CheckFeatureAvailability(diagnostics, filter.WhenKeyword);
3641ConstructorDeclarationSyntax or DestructorDeclarationSyntax => MessageID.IDS_FeatureExpressionBodiedDeOrConstructor,
3642AccessorDeclarationSyntax => MessageID.IDS_FeatureExpressionBodiedAccessor,
3643BaseMethodDeclarationSyntax => MessageID.IDS_FeatureExpressionBodiedMethod,
3644IndexerDeclarationSyntax => MessageID.IDS_FeatureExpressionBodiedIndexer,
3645PropertyDeclarationSyntax => MessageID.IDS_FeatureExpressionBodiedProperty,
3649LocalFunctionStatementSyntax => (MessageID?)null,
3756MessageID.IDS_TopLevelStatements.CheckFeatureAvailability(diagnostics, topLevelStatement);
Binder\Binder_Symbols.cs (24)
117CheckFeatureAvailability(syntax, MessageID.IDS_FeatureImplicitLocal, diagnostics);
161CheckFeatureAvailability(syntax, MessageID.IDS_FeatureUnmanagedGenericTypeConstraint, diagnostics);
164CheckFeatureAvailability(identifierSyntax, MessageID.IDS_FeatureNotNullGenericTypeConstraint, diagnostics);
344var diagnosticInfo = diagnostics.Add(ErrorCode.ERR_BadSKknown, syntax.Location, syntax, symbol.Symbol.GetKindText(), MessageID.IDS_SK_TYPE.Localize());
461MessageID.IDS_FeatureFunctionPointers.CheckFeatureAvailability(diagnostics, functionPointerTypeSyntax.DelegateKeyword);
552MessageID.IDS_FeatureNullable.CheckFeatureAvailability(diagnostics, nullableSyntax.QuestionToken);
589MessageID.IDS_FeatureGlobalNamespace.CheckFeatureAvailability(diagnostics, node.Alias);
629var requiredVersion = MessageID.IDS_FeatureDefaultTypeParameterConstraint.RequiredVersion();
690MessageID.IDS_FeatureTuples.CheckFeatureAvailability(diagnostics, syntax);
745bool includeNullability = Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNullableReferenceTypes);
943if (Compilation.LanguageVersion < MessageID.IDS_FeatureDynamic.RequiredVersion())
1034CheckFeatureAvailability(node, MessageID.IDS_FeatureNativeInt, diagnostics);
1381var binder = !Compilation.IsFeatureEnabled(MessageID.IDS_FeatureUsingTypeAlias)
1402CheckFeatureAvailability(typeSyntax, MessageID.IDS_FeatureUnboundGenericTypesInNameof, diagnostics);
1422Error(diagnostics, ErrorCode.ERR_BadArity, typeSyntax, type, MessageID.IDS_SK_TYPE.Localize(), typeArgumentsSyntax.Count);
1454Error(diagnostics, ErrorCode.ERR_BadArity, syntax, plainName, MessageID.IDS_MethodGroup.Localize(), typeArgumentsSyntax.Count);
1644bool includeNullability = Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNullableReferenceTypes);
2823internal static bool CheckFeatureAvailability(SyntaxNode syntax, MessageID feature, BindingDiagnosticBag diagnostics, Location? location = null)
2826internal static bool CheckFeatureAvailability(SyntaxToken syntax, MessageID feature, BindingDiagnosticBag diagnostics, bool forceWarning = false)
2829internal static bool CheckFeatureAvailability(SyntaxTree tree, MessageID feature, BindingDiagnosticBag diagnostics, Location location)
2832private static bool CheckFeatureAvailability(SyntaxNode syntax, MessageID feature, DiagnosticBag? diagnostics, Location? location = null)
2835private static bool CheckFeatureAvailability(SyntaxToken syntax, MessageID feature, DiagnosticBag? diagnostics, bool forceWarning = false)
2838private static bool CheckFeatureAvailability(SyntaxTree tree, MessageID feature, DiagnosticBag? diagnostics, Location location)
2844private static bool CheckFeatureAvailability<TData>(SyntaxTree tree, MessageID feature, DiagnosticBag? diagnostics, TData data, Func<TData, Location> getLocation, bool forceWarning = false)
Binder\ForEachLoopBinder.cs (16)
220CheckFeatureAvailability(_syntax.AwaitKeyword, MessageID.IDS_FeatureAsyncStreams, diagnostics);
243var messageId = IsAsync ? MessageID.IDS_FeatureExtensionGetAsyncEnumerator : MessageID.IDS_FeatureExtensionGetEnumerator;
301MessageID.IDS_FeatureRefForEach.CheckFeatureAvailability(diagnostics, typeSyntax);
545CheckFeatureAvailability(foreachKeyword, MessageID.IDS_FeatureRefUnsafeInIteratorAsync, diagnostics);
898CheckFeatureAvailability(collectionExpr.Syntax, MessageID.IDS_FeatureInlineArrays, diagnostics);
1243CheckFeatureAvailability(expr.Syntax, MessageID.IDS_FeatureDisposalPattern, diagnostics);
1291CheckFeatureAvailability(syntax, MessageID.IDS_FeatureRefStructInterfaces, diagnostics);
1470MessageID patternName = isAsync ? MessageID.IDS_FeatureAsyncStreams : MessageID.IDS_Collection;
1507diagnostics.Add(ErrorCode.WRN_PatternIsAmbiguous, collectionSyntax.Location, patternType, MessageID.IDS_Collection.Localize(),
1605diagnostics.Add(ErrorCode.WRN_PatternIsAmbiguous, collectionSyntax.Location, collectionExpr.Type, MessageID.IDS_Collection.Localize(),
1764diagnostics.Add(ErrorCode.WRN_PatternBadSignature, collectionSyntax.Location, enumeratorType, MessageID.IDS_Collection.Localize(), patternMemberCandidate);
1828CheckFeatureAvailability(collectionSyntax, MessageID.IDS_FeatureRefStructInterfaces, diagnostics);
CommandLine\CSharpCommandLineParser.cs (23)
211AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "/langversion:");
283ParseAndResolveReferencePaths(name, valueMemory, baseDirectory, libPaths, MessageID.IDS_LIB_OPTION, diagnostics);
346ParseAndResolveReferencePaths(name, valueMemory, baseDirectory, sourcePaths, MessageID.IDS_REFERENCEPATH_OPTION, diagnostics);
434AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), name);
648AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "modulename");
696AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), arg);
709AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), arg);
717AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "/doc:"); // Different argument.
729AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "/addmodule:");
819AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), name);
1076AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "keycontainer");
1138AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "subsystemversion");
1159AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), "touchedfiles");
1454ParseAndResolveReferencePaths(null, additionalReferenceDirectories.AsMemory(), baseDirectory, libPaths, MessageID.IDS_LIB_ENV, diagnostics);
1569if (nullableContextOptions != NullableContextOptions.Disable && parseOptions.LanguageVersion < MessageID.IDS_FeatureNullableReferenceTypes.RequiredVersion())
1573new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureNullableReferenceTypes.RequiredVersion())), Location.None));
1632private static void ParseAndResolveReferencePaths(string? switchName, ReadOnlyMemory<char>? switchValue, string? baseDirectory, List<string> builder, MessageID origin, List<Diagnostic> diagnostics)
1637AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_PathList.Localize(), switchName);
1646AddDiagnostic(diagnostics, ErrorCode.WRN_InvalidSearchPathDir, path, origin.Localize(), MessageID.IDS_DirectoryHasInvalidPath.Localize());
1650AddDiagnostic(diagnostics, ErrorCode.WRN_InvalidSearchPathDir, path, origin.Localize(), MessageID.IDS_DirectoryDoesNotExist.Localize());
1891AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Namespace1.Localize(), arg);
1905AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), arg);
1932AddDiagnostic(diagnostics, ErrorCode.ERR_SwitchNeedsString, MessageID.IDS_Text.Localize(), arg);
Compiler\DocumentationCommentCompiler.IncludeElementExpander.cs (12)
283_diagnostics.Add(ErrorCode.WRN_FailedInclude, location, filePathValue, xpathValue, new LocalizableErrorArgument(MessageID.IDS_OperationCausedStackOverflow));
286commentMessage = ErrorFacts.GetMessage(MessageID.IDS_XMLNOINCLUDE, CultureInfo.CurrentUICulture);
303var subMessage = hasFileAttribute ? MessageID.IDS_XMLMISSINGINCLUDEPATH.Localize() : MessageID.IDS_XMLMISSINGINCLUDEFILE.Localize();
305commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLBADINCLUDE);
316commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLFAILEDINCLUDE);
326commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLFAILEDINCLUDE);
347commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLFAILEDINCLUDE);
360commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLFAILEDINCLUDE);
396commentMessage = MakeCommentMessage(location, MessageID.IDS_XMLNOINCLUDE);
409commentMessage = string.Format(ErrorFacts.GetMessage(MessageID.IDS_XMLIGNORED2, CultureInfo.CurrentUICulture), resolvedFilePath);
434private static string MakeCommentMessage(Location location, MessageID messageId)
Declarations\DeclarationTreeBuilder.cs (12)
482MessageID.IDS_FeatureUsingStatic.CheckFeatureAvailability(diagnostics, usingDirective, usingDirective.StaticKeyword.GetLocation());
485MessageID.IDS_FeatureGlobalUsing.CheckFeatureAvailability(diagnostics, usingDirective, usingDirective.GlobalKeyword.GetLocation());
492MessageID.IDS_FeatureExternAlias.CheckFeatureAvailability(diagnostics, externAlias, externAlias.ExternKeyword.GetLocation());
530MessageID.IDS_FeatureFileScopedNamespace.CheckFeatureAvailability(diagnostics, node, node.NamespaceKeyword.GetLocation());
761MessageID.IDS_FeatureRecordStructs.CheckFeatureAvailability(diagnostics, record, record.ClassOrStructKeyword.GetLocation());
774MessageID.IDS_FeaturePrimaryConstructors.CheckFeatureAvailability(diagnostics, node.ParameterList);
779MessageID.IDS_FeaturePrimaryConstructors.CheckFeatureAvailability(diagnostics, node, node.SemicolonToken.GetLocation());
784MessageID.IDS_FeatureUnions.CheckFeatureAvailability(diagnostics, node, node.Keyword.GetLocation());
794MessageID.IDS_FeatureStaticClasses.CheckFeatureAvailability(diagnostics, node, modifier.GetLocation());
798MessageID.IDS_FeatureReadOnlyStructs.CheckFeatureAvailability(diagnostics, node, modifier.GetLocation());
802MessageID.IDS_FeatureRefStructs.CheckFeatureAvailability(diagnostics, node, modifier.GetLocation());
890MessageID.IDS_FeaturePrimaryConstructors.CheckFeatureAvailability(diagnostics, node, node.SemicolonToken.GetLocation());
Errors\MessageID.cs (205)
323private readonly MessageID _id;
325internal LocalizableErrorArgument(MessageID id)
345public static LocalizableErrorArgument Localize(this MessageID id)
356internal static string? RequiredFeature(this MessageID feature)
367this MessageID feature,
381this MessageID feature,
395this MessageID feature,
409this MessageID feature,
423this MessageID feature,
438this MessageID feature,
453this MessageID feature,
466internal static CSDiagnosticInfo? GetFeatureAvailabilityDiagnosticInfo(this MessageID feature, CSharpParseOptions options)
469internal static CSDiagnosticInfo? GetFeatureAvailabilityDiagnosticInfo(this MessageID feature, CSharpCompilation compilation)
472private static CSDiagnosticInfo GetDisabledFeatureDiagnosticInfo(MessageID feature, LanguageVersion availableVersion)
486internal static LanguageVersion RequiredVersion(this MessageID feature)
497case MessageID.IDS_FeatureCollectionExpressionArguments:
498case MessageID.IDS_FeatureUnsafeEvolution: // https://github.com/dotnet/roslyn/issues/82546: keep this in preview until C# 16
499case MessageID.IDS_FeatureUnions:
500case MessageID.IDS_FeatureStaticMembersInInterfaces:
501case MessageID.IDS_FeatureClosedClasses: // semantic check
502case MessageID.IDS_FeatureLabeledBreakContinue:
503case MessageID.IDS_FeatureExtensionIndexers:
507case MessageID.IDS_FeatureFieldKeyword:
508case MessageID.IDS_FeatureFirstClassSpan:
509case MessageID.IDS_FeatureUnboundGenericTypesInNameof:
510case MessageID.IDS_FeatureSimpleLambdaParameterModifiers:
511case MessageID.IDS_FeaturePartialEventsAndConstructors:
512case MessageID.IDS_FeatureExtensions:
513case MessageID.IDS_FeatureNullConditionalAssignment:
514case MessageID.IDS_FeatureExpressionOptionalAndNamedArguments:
515case MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators:
519case MessageID.IDS_FeatureStringEscapeCharacter: // lexer check
520case MessageID.IDS_FeatureImplicitIndexerInitializer:
521case MessageID.IDS_FeatureLockObject:
522case MessageID.IDS_FeatureParamsCollections:
523case MessageID.IDS_FeatureRefUnsafeInIteratorAsync:
524case MessageID.IDS_FeatureRefStructInterfaces:
525case MessageID.IDS_FeatureAllowsRefStructConstraint:
526case MessageID.IDS_FeaturePartialProperties:
527case MessageID.IDS_FeatureOverloadResolutionPriority:
531case MessageID.IDS_FeatureLambdaOptionalParameters: // semantic check
532case MessageID.IDS_FeatureLambdaParamsArray: // semantic check
533case MessageID.IDS_FeaturePrimaryConstructors: // declaration table check
534case MessageID.IDS_FeatureUsingTypeAlias: // semantic check
535case MessageID.IDS_FeatureInstanceMemberInNameof: // semantic check
536case MessageID.IDS_FeatureInlineArrays: // semantic check
537case MessageID.IDS_FeatureCollectionExpressions: // semantic check
538case MessageID.IDS_FeatureRefReadonlyParameters: // semantic check
542case MessageID.IDS_FeatureRawStringLiterals:
543case MessageID.IDS_FeatureStaticAbstractMembersInInterfaces: // semantic check
544case MessageID.IDS_FeatureNewLinesInInterpolations: // semantic check
545case MessageID.IDS_FeatureListPattern: // semantic check
546case MessageID.IDS_FeatureRequiredMembers: // semantic check
547case MessageID.IDS_FeatureCacheStaticMethodGroupConversion: // lowering check
548case MessageID.IDS_FeatureSpanCharConstantPattern:
549case MessageID.IDS_FeatureAutoDefaultStructs: // semantic check
550case MessageID.IDS_FeatureCheckedUserDefinedOperators: // semantic check for declarations, parsing check for doc comments
551case MessageID.IDS_FeatureUtf8StringLiterals: // semantic check
552case MessageID.IDS_FeatureUnsignedRightShift: // semantic check for declarations and consumption, parsing check for doc comments
553case MessageID.IDS_FeatureRelaxedShiftOperator: // semantic check
554case MessageID.IDS_FeatureRefFields: // semantic check
555case MessageID.IDS_FeatureFileTypes: // semantic check
556case MessageID.IDS_FeatureGenericAttributes: // semantic check
560case MessageID.IDS_FeatureMixedDeclarationsAndExpressionsInDeconstruction: // semantic check
561case MessageID.IDS_FeatureSealedToStringInRecord: // semantic check
562case MessageID.IDS_FeatureImprovedInterpolatedStrings: // semantic check
563case MessageID.IDS_FeatureRecordStructs:
564case MessageID.IDS_FeatureWithOnStructs: // semantic check
565case MessageID.IDS_FeatureWithOnAnonymousTypes: // semantic check
566case MessageID.IDS_FeaturePositionalFieldsInRecords: // semantic check
567case MessageID.IDS_FeatureGlobalUsing:
568case MessageID.IDS_FeatureInferredDelegateType: // semantic check
569case MessageID.IDS_FeatureLambdaAttributes: // semantic check
570case MessageID.IDS_FeatureExtendedPropertyPatterns: // semantic check
571case MessageID.IDS_FeatureLambdaReturnType: // semantic check
572case MessageID.IDS_AsyncMethodBuilderOverride: // semantic check
573case MessageID.IDS_FeatureConstantInterpolatedStrings: // semantic check
574case MessageID.IDS_FeatureImplicitImplementationOfNonPublicMembers: // semantic check
575case MessageID.IDS_FeatureFileScopedNamespace: // semantic check
576case MessageID.IDS_FeatureParameterlessStructConstructors: // semantic check
577case MessageID.IDS_FeatureStructFieldInitializers: // semantic check
581case MessageID.IDS_FeatureLambdaDiscardParameters: // semantic check
582case MessageID.IDS_FeatureFunctionPointers: // semantic check
583case MessageID.IDS_FeatureLocalFunctionAttributes: // syntax check
584case MessageID.IDS_FeatureExternLocalFunctions: // semantic check
585case MessageID.IDS_FeatureImplicitObjectCreation: // semantic check
586case MessageID.IDS_FeatureMemberNotNull:
587case MessageID.IDS_FeatureAndPattern: // semantic check
588case MessageID.IDS_FeatureNotPattern: // semantic check
589case MessageID.IDS_FeatureOrPattern: // semantic check
590case MessageID.IDS_FeatureParenthesizedPattern: // semantic check
591case MessageID.IDS_FeatureTypePattern: // semantic check
592case MessageID.IDS_FeatureRelationalPattern: // semantic check
593case MessageID.IDS_FeatureExtensionGetEnumerator: // semantic check
594case MessageID.IDS_FeatureExtensionGetAsyncEnumerator: // semantic check
595case MessageID.IDS_FeatureNativeInt:
596case MessageID.IDS_FeatureExtendedPartialMethods: // semantic check
597case MessageID.IDS_TopLevelStatements:
598case MessageID.IDS_FeatureInitOnlySetters: // semantic check
599case MessageID.IDS_FeatureRecords: // semantic check
600case MessageID.IDS_FeatureTargetTypedConditional: // semantic check
601case MessageID.IDS_FeatureCovariantReturnsForOverrides: // semantic check
602case MessageID.IDS_FeatureStaticAnonymousFunction: // semantic check
603case MessageID.IDS_FeatureModuleInitializers: // semantic check on method attribute
604case MessageID.IDS_FeatureDefaultTypeParameterConstraint: // semantic check
605case MessageID.IDS_FeatureVarianceSafetyForStaticInterfaceMembers: // semantic check
609case MessageID.IDS_FeatureAltInterpolatedVerbatimStrings: // semantic check
610case MessageID.IDS_FeatureCoalesceAssignmentExpression: // semantic check
611case MessageID.IDS_FeatureUnconstrainedTypeParameterInNullCoalescingOperator:
612case MessageID.IDS_FeatureNullableReferenceTypes: // syntax and semantic check
613case MessageID.IDS_FeatureIndexOperator: // semantic check
614case MessageID.IDS_FeatureRangeOperator: // semantic check
615case MessageID.IDS_FeatureAsyncStreams: // semantic check
616case MessageID.IDS_FeatureRecursivePatterns: // semantic check
617case MessageID.IDS_FeatureUsingDeclarations: // semantic check
618case MessageID.IDS_FeatureDisposalPattern: //semantic check
619case MessageID.IDS_FeatureStaticLocalFunctions: // semantic check
620case MessageID.IDS_FeatureNameShadowingInNestedFunctions:
621case MessageID.IDS_FeatureUnmanagedConstructedTypes: // semantic check
622case MessageID.IDS_FeatureObsoleteOnPropertyAccessor:
623case MessageID.IDS_FeatureReadOnlyMembers:
624case MessageID.IDS_DefaultInterfaceImplementation: // semantic check
625case MessageID.IDS_OverrideWithConstraints: // semantic check
626case MessageID.IDS_FeatureNestedStackalloc: // semantic check
627case MessageID.IDS_FeatureNotNullGenericTypeConstraint:// semantic check
628case MessageID.IDS_FeatureSwitchExpression:
629case MessageID.IDS_FeatureAsyncUsing:
630case MessageID.IDS_FeatureNullPointerConstantPattern: //semantic check
634case MessageID.IDS_FeatureAttributesOnBackingFields: // semantic check
635case MessageID.IDS_FeatureImprovedOverloadCandidates: // semantic check
636case MessageID.IDS_FeatureTupleEquality: // semantic check
637case MessageID.IDS_FeatureRefReassignment: // semantic check
638case MessageID.IDS_FeatureRefFor:
639case MessageID.IDS_FeatureRefForEach: // semantic check
640case MessageID.IDS_FeatureEnumGenericTypeConstraint: // semantic check
641case MessageID.IDS_FeatureDelegateGenericTypeConstraint: // semantic check
642case MessageID.IDS_FeatureUnmanagedGenericTypeConstraint: // semantic check
643case MessageID.IDS_FeatureStackAllocInitializer: // semantic check
644case MessageID.IDS_FeatureExpressionVariablesInQueriesAndInitializers: // semantic check
645case MessageID.IDS_FeatureExtensibleFixedStatement: // semantic check
646case MessageID.IDS_FeatureIndexingMovableFixedBuffers: //semantic check
650case MessageID.IDS_FeatureNonTrailingNamedArguments: // semantic check
651case MessageID.IDS_FeatureLeadingDigitSeparator:
652case MessageID.IDS_FeaturePrivateProtected:
653case MessageID.IDS_FeatureReadOnlyReferences: // semantic check
654case MessageID.IDS_FeatureRefStructs: // semantic check
655case MessageID.IDS_FeatureReadOnlyStructs: // semantic check
656case MessageID.IDS_FeatureRefExtensionMethods:
657case MessageID.IDS_FeatureRefConditional:
661case MessageID.IDS_FeatureAsyncMain:
662case MessageID.IDS_FeatureDefaultLiteral: // semantic check
663case MessageID.IDS_FeatureInferredTupleNames:
664case MessageID.IDS_FeatureGenericPatternMatching:
668case MessageID.IDS_FeatureBinaryLiteral:
669case MessageID.IDS_FeatureDigitSeparator:
670case MessageID.IDS_FeatureLocalFunctions: // semantic check
671case MessageID.IDS_FeatureRefLocalsReturns:
672case MessageID.IDS_FeaturePatternMatching: // semantic check
673case MessageID.IDS_FeatureThrowExpression: // semantic check
674case MessageID.IDS_FeatureTuples:
675case MessageID.IDS_FeatureOutVar: // semantic check
676case MessageID.IDS_FeatureExpressionBodiedAccessor:
677case MessageID.IDS_FeatureExpressionBodiedDeOrConstructor:
678case MessageID.IDS_FeatureDiscards:
682case MessageID.IDS_FeatureExceptionFilter: // semantic check
683case MessageID.IDS_FeatureAutoPropertyInitializer: // semantic check
684case MessageID.IDS_FeatureNullPropagatingOperator: // semantic check
685case MessageID.IDS_FeatureExpressionBodiedMethod:
686case MessageID.IDS_FeatureExpressionBodiedProperty: // semantic check
687case MessageID.IDS_FeatureExpressionBodiedIndexer: // semantic check
688case MessageID.IDS_FeatureNameof:
689case MessageID.IDS_FeatureDictionaryInitializer: // semantic check
690case MessageID.IDS_FeatureUsingStatic: // semantic check
691case MessageID.IDS_FeatureInterpolatedStrings: // semantic check
692case MessageID.IDS_AwaitInCatchAndFinally:
693case MessageID.IDS_FeatureReadonlyAutoImplementedProperties:
697case MessageID.IDS_FeatureAsync: // semantic check
701case MessageID.IDS_FeatureDynamic: // Checked in the binder.
702case MessageID.IDS_FeatureTypeVariance: // semantic check
703case MessageID.IDS_FeatureNamedArgument: // semantic check
704case MessageID.IDS_FeatureOptionalParameter: // semantic check
708case MessageID.IDS_FeatureImplicitArray: // semantic check
709case MessageID.IDS_FeatureAnonymousTypes: // semantic check
710case MessageID.IDS_FeatureObjectInitializer:
711case MessageID.IDS_FeatureCollectionInitializer:
712case MessageID.IDS_FeatureLambda: // semantic check
713case MessageID.IDS_FeatureQueryExpression: // semantic check
714case MessageID.IDS_FeatureExtensionMethod:
715case MessageID.IDS_FeaturePartialMethod: // semantic check
716case MessageID.IDS_FeatureImplicitLocal: // Checked in the binder.
717case MessageID.IDS_FeatureAutoImplementedProperties:
721case MessageID.IDS_FeatureGenerics: // Also affects crefs.
722case MessageID.IDS_FeatureAnonDelegates: // semantic check
723case MessageID.IDS_FeatureGlobalNamespace: // Also affects crefs.
724case MessageID.IDS_FeatureFixedBuffer: // semantic check
725case MessageID.IDS_FeatureStaticClasses: // semantic check
726case MessageID.IDS_FeaturePartialTypes: // semantic check
727case MessageID.IDS_FeaturePropertyAccessorMods:
728case MessageID.IDS_FeatureExternAlias: // semantic check
729case MessageID.IDS_FeatureIterators: // semantic check
730case MessageID.IDS_FeatureDefault: // semantic check
731case MessageID.IDS_FeatureNullable:
732case MessageID.IDS_FeaturePragma: // Checked in the directive parser.
733case MessageID.IDS_FeatureSwitchOnBool: // Checked in the binder.
737case MessageID.IDS_FeatureModuleAttrLoc:
Parser\DocumentationCommentParser.cs (7)
1068operatorToken = CheckFeatureAvailability(operatorToken, MessageID.IDS_FeatureUnsignedRightShift, forceWarning: true);
1078operatorToken = CheckFeatureAvailability(operatorToken, MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators, forceWarning: true);
1110operatorToken = CheckFeatureAvailability(operatorToken, MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators, forceWarning: true);
1169operatorToken = CheckFeatureAvailability(operatorToken, MessageID.IDS_FeatureUserDefinedCompoundAssignmentOperators, forceWarning: true);
1183checkedKeyword = CheckFeatureAvailability(checkedKeyword, MessageID.IDS_FeatureCheckedUserDefinedOperators, forceWarning: true);
1398open = CheckFeatureAvailability(open, MessageID.IDS_FeatureGenerics, forceWarning: true);
1462alias = CheckFeatureAvailability(alias, MessageID.IDS_FeatureGlobalNamespace, forceWarning: true);
Symbols\Source\ModifierUtils.cs (17)
31modifierErrors |= !MessageID.IDS_FeatureReadOnlyMembers.CheckFeatureAvailability(diagnostics, readonlyToken);
109checkFeature(DeclarationModifiers.PrivateProtected, MessageID.IDS_FeaturePrivateProtected) |
110checkFeature(DeclarationModifiers.Required, MessageID.IDS_FeatureRequiredMembers) |
111checkFeature(DeclarationModifiers.File, MessageID.IDS_FeatureFileTypes) |
112checkFeature(DeclarationModifiers.Closed, MessageID.IDS_FeatureClosedClasses) |
113checkFeature(DeclarationModifiers.Async, MessageID.IDS_FeatureAsync);
118modifierErrors |= !MessageID.IDS_FeatureUnsafeEvolution.CheckFeatureAvailability(diagnostics, safeToken, safeToken == default ? errorLocation : null);
123bool checkFeature(DeclarationModifiers modifier, MessageID featureID)
131if (MessageID.IDS_FeatureRefFields.GetFeatureAvailabilityDiagnosticInfo((CSharpParseOptions)syntax.SyntaxTree.Options) is { } diagnosticInfo)
176requiredVersion = MessageID.IDS_FeatureStaticAbstractMembersInInterfaces.RequiredVersion();
189Binder.CheckFeatureAvailability(errorLocation.SourceTree, MessageID.IDS_DefaultInterfaceImplementation, diagnostics, errorLocation);
194requiredVersion = MessageID.IDS_DefaultInterfaceImplementation.RequiredVersion();
227LanguageVersion requiredVersion = MessageID.IDS_FeatureStaticAbstractMembersInInterfaces.RequiredVersion();
241LanguageVersion requiredVersion = MessageID.IDS_FeaturePartialEventsAndConstructors.RequiredVersion();
465var messageId = isForTypeDeclaration ? MessageID.IDS_FeaturePartialTypes : MessageID.IDS_FeaturePartialMethod;
Symbols\Source\ParameterHelpers.cs (8)
228bool allowShadowingNames = withTypeParametersBinder.Compilation.IsFeatureEnabled(MessageID.IDS_FeatureNameShadowingInNestedFunctions) &&
607Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureExtensionMethod, diagnostics);
611Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureRefExtensionMethods, diagnostics);
640Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureRefExtensionMethods, diagnostics);
728MessageID.IDS_FeatureLambdaParamsArray.CheckFeatureAvailability(diagnostics, modifier);
738Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureReadOnlyReferences, diagnostics);
742Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureRefExtensionMethods, diagnostics);
805Binder.CheckFeatureAvailability(modifier, MessageID.IDS_FeatureRefReadonlyParameters, diagnostics);
Symbols\Source\SourceMemberContainerSymbol.cs (20)
532if (reportIfContextual(SyntaxKind.RecordKeyword, MessageID.IDS_FeatureRecords, ErrorCode.WRN_RecordNamedDisallowed)
533|| reportIfContextual(SyntaxKind.RequiredKeyword, MessageID.IDS_FeatureRequiredMembers, ErrorCode.ERR_RequiredNameDisallowed)
534|| reportIfContextual(SyntaxKind.FileKeyword, MessageID.IDS_FeatureFileTypes, ErrorCode.ERR_FileTypeNameDisallowed)
535|| reportIfContextual(SyntaxKind.ClosedKeyword, MessageID.IDS_FeatureClosedClasses, ErrorCode.ERR_ClosedTypeNameDisallowed)
536|| reportIfContextual(SyntaxKind.ScopedKeyword, MessageID.IDS_FeatureRefFields, ErrorCode.ERR_ScopedTypeNameDisallowed)
537|| reportIfContextual(SyntaxKind.ExtensionKeyword, MessageID.IDS_FeatureExtensions, ErrorCode.ERR_ExtensionTypeNameDisallowed))
546bool reportIfContextual(SyntaxKind contextualKind, MessageID featureId, ErrorCode error)
1481Binder.CheckFeatureAvailability(t.DeclaringSyntaxReferences[0].GetSyntax(), MessageID.IDS_DefaultInterfaceImplementation, diagnostics, t.GetFirstLocation());
1949MessageID.IDS_FeatureExtensions.CheckFeatureAvailability(diagnostics, compilation, location);
2412var methodKind = method1.MethodKind == MethodKind.Constructor ? MessageID.IDS_SK_CONSTRUCTOR : MessageID.IDS_SK_METHOD;
4832MessageID.IDS_FeatureExtensionIndexers.CheckFeatureAvailability(diagnostics, this.DeclaringCompilation, member.GetFirstLocation());
4871return MessageID.IDS_FeatureExtensionIndexers.RequiredVersion() <= languageVersion;
4907MessageID.IDS_FeatureParameterlessStructConstructors.CheckFeatureAvailability(diagnostics, m.DeclaringCompilation, location);
4936MessageID.IDS_FeatureStructFieldInitializers.CheckFeatureAvailability(diagnostics, symbol.DeclaringCompilation, symbol.GetFirstLocation());
5355if (baseToStringMethod.ContainingModule != this.ContainingModule && !this.DeclaringCompilation.IsFeatureEnabled(MessageID.IDS_FeatureSealedToStringInRecord))
5358var requiredVersion = MessageID.IDS_FeatureSealedToStringInRecord.RequiredVersion();
5381MessageID.IDS_FeatureSealedToStringInRecord.CheckFeatureAvailability(
5445Binder.CheckFeatureAvailability(syntax, MessageID.IDS_FeaturePositionalFieldsInRecords, diagnostics);
Symbols\Source\SourceMethodSymbolWithAttributes.cs (9)
604MessageID.IDS_FeatureMemberNotNull.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
609MessageID.IDS_FeatureMemberNotNull.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
614MessageID.IDS_FeatureModuleInitializers.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
634MessageID.IDS_FeatureRefStructInterfaces.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
648MessageID.IDS_FeatureOverloadResolutionPriority.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
720MessageID.IDS_FeatureObsoleteOnPropertyAccessor.CheckFeatureAvailability(diagnostics, arguments.AttributeSyntaxOpt);
1437diagnostics.Add(ErrorCode.ERR_CannotUseManagedTypeInUnmanagedCallersOnly, syntax.Location, type, (isParam ? MessageID.IDS_Parameter : MessageID.IDS_Return).Localize());
1564MessageID.IDS_AsyncMethodBuilderOverride.CheckFeatureAvailability(diagnostics, this.DeclaringCompilation, errorLocation);
Symbols\VarianceSafety.cs (9)
179return MessageID.IDS_FeatureVarianceSafetyForStaticInterfaceMembers.RequiredVersion() <= member.DeclaringCompilation.LanguageVersion;
314diagnostics.AddVarianceError(typeParam, context, locationProvider, locationArg, MessageID.IDS_Invariantly);
320diagnostics.AddVarianceError(typeParam, context, locationProvider, locationArg, MessageID.IDS_Covariantly);
326diagnostics.AddVarianceError(typeParam, context, locationProvider, locationArg, MessageID.IDS_Contravariantly);
448MessageID expectedVariance)
451MessageID actualVariance;
455actualVariance = MessageID.IDS_Contravariant;
458actualVariance = MessageID.IDS_Covariant;
478new CSharpRequiredLanguageVersion(MessageID.IDS_FeatureVarianceSafetyForStaticInterfaceMembers.RequiredVersion()));