1 implementation of Syntax
Microsoft.CodeAnalysis (1)
Operations\Operation.cs (1)
71public SyntaxNode Syntax { get; }
837 references to Syntax
Microsoft.CodeAnalysis (241)
DiagnosticAnalyzer\AnalysisContextInfo.cs (2)
48this(compilation: compilation, operation: operation, symbol: null, file: new SourceOrAdditionalFile(operation.Syntax.SyntaxTree), node: operation.Syntax)
DiagnosticAnalyzer\AnalyzerDriver.cs (1)
2633? operationsToAnalyze.WhereAsArray(operation => analysisScope.ShouldAnalyze(operation.Syntax))
DiagnosticAnalyzer\AnalyzerExecutor.cs (3)
1440if (operation.Syntax != null && _shouldSkipAnalysisOnGeneratedCode(analyzer) && 1441_isGeneratedCodeLocation(operation.Syntax.SyntaxTree, operation.Syntax.Span))
Operations\ControlFlowGraphBuilder.cs (221)
1412return result ?? MakeInvalidOperation(originalOperation.Syntax, originalOperation.Type, ImmutableArray<IOperation>.Empty); 1666CaptureResultIfNotAlready(operation.Syntax, captureId, result); 1906AddStatement(new FlowCaptureOperation(captureId, operationOpt.Syntax, operationOpt) 2098return PopStackFrame(frame, new SimpleAssignmentOperation(operation.IsRef, PopOperand(), value, null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 2110syntax: operation.Syntax, type: operation.Type, isImplicit: IsImplicit(operation))); 2121operation.Syntax, operation.Type, IsImplicit(operation)); 2132operation.Syntax, operation.Type, IsImplicit(operation)); 2215semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 2229semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 2241semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 2367AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, OperationCloner.CloneOperation(capturedRight))); 2373AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, OperationCloner.CloneOperation(capturedLeft))); 2385semanticModel: null, operand.Syntax, operand.Type, constantValue: null, isImplicit: true); 2417AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, new LiteralOperation(semanticModel: null, left.Syntax, booleanType, constantValue, isImplicit: true))); 2426AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, condition)); 2433condition = new FlowCaptureReferenceOperation(resultId, binOp.Syntax, booleanType, constantValue: null); 2436semanticModel: null, binOp.Syntax, binOp.Type, binOp.GetConstantValue(), isImplicit: true); 2442semanticModel: null, operand.Syntax, type, constantValue, isImplicit: true); 2488semanticModel: null, condition.Syntax, booleanType, constantValue: null, isImplicit: true); 2513AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, resultFromLeft)); 2521AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, 2532binOp.Syntax, 2591semanticModel: null, condition.Syntax, unaryOperatorMethod.ReturnType, constantValue: null, isImplicit: true); 2602AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, OperationCloner.CloneOperation(capturedLeft))); 2611AddStatement(new FlowCaptureOperation(resultId, binOp.Syntax, 2622binOp.Syntax, 2664CaptureResultIfNotAlready(condition.RightOperand.Syntax, captureId, resultFromRight); 2676SyntaxNode leftSyntax = (lazyFallThrough!.GetSingletonPredecessorOrDefault() != null ? condition.LeftOperand : condition).Syntax; 2722lastUnary.OperatorMethod, lastUnary.ConstrainedToType, semanticModel: null, lastUnary.Syntax, 2725operatorMethod: null, constrainedToType: null, semanticModel: null, condition.Syntax, 2970SyntaxNode valueSyntax = operationValue.Syntax; 3061AddStatement(new FlowCaptureOperation(resultCaptureId, operation.Value.Syntax, convertedTestExpression)); 3104AddStatement(new FlowCaptureOperation(valueCaptureId, locationCapture.Syntax, locationCapture)); 3168operation.Target.Syntax, 3183operation.Syntax, 3202AddStatement(new FlowCaptureOperation(intermediateValueCaptureId, whenNullValue.Syntax, whenNullValue)); 3207operation.Syntax, 3217syntax: operation.Syntax, 3235AddStatement(new FlowCaptureOperation(resultCaptureId, operation.Syntax, OperationCloner.CloneOperation(valueCapture))); 3251operation.Syntax, operation.Type, constantValue: operation.GetConstantValue(), isImplicit: true); 3259AddStatement(new FlowCaptureOperation(resultCaptureId, operation.Syntax, whenNullAssignment)); 3274semanticModel: null, child.Syntax, type, 3301return new IsNullOperation(operand.Syntax, operand, 3327ImmutableArray<IArgumentOperation>.Empty, semanticModel: null, value.Syntax, 3400result = new ExpressionStatementOperation(result, semanticModel: null, expressionStatement.Syntax, 3416AddStatement(new FlowCaptureOperation(resultCaptureId, currentConditionalAccess.WhenNotNull.Syntax, 3421CaptureResultIfNotAlready(currentConditionalAccess.WhenNotNull.Syntax, resultCaptureId, 3435SyntaxNode defaultValueSyntax = (operation.Operation == testExpression ? testExpression : operation).Syntax; 3513SyntaxNode testExpressionSyntax = testExpression.Syntax; 3553return FinishVisitingStatement(operation, new ExpressionStatementOperation(underlying, semanticModel: null, operation.Syntax, IsImplicit(operation))); 3773SyntaxNode syntax = exceptionDeclarationOrExpression.Syntax; 3818AddStatement(new ReturnOperation(returnedValue, OperationKind.YieldReturn, semanticModel: null, operation.Syntax, IsImplicit(operation))); 3915return new NoneOperation(children: ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, constantValue: null, isImplicit: true, type: null); 3999processResource(new LocalReferenceOperation(localSymbol, isDeclaration: false, semanticModel: null, declarator.Syntax, localSymbol.Type, 4061AddStatement(new FlowCaptureOperation(captureId, resource.Syntax, resource)); 4108AddStatement(new FlowCaptureOperation(captureId, resource.Syntax, resource)); 4160args, semanticModel: null, value.Syntax, 4165return new AwaitOperation(invocation, semanticModel: null, value.Syntax, _compilation.GetSpecialType(SpecialType.System_Void), isImplicit: true); 4185semanticModel: null, operand.Syntax, iDisposable, constantValue, isImplicit: true); 4269lockedValue.Syntax, 4271semanticModel: null, lockedValue.Syntax, 4287lockTaken = new LocalReferenceOperation(lockStatement.LockTakenSymbol, isDeclaration: true, semanticModel: null, lockedValue.Syntax, 4297lockedValue.Syntax, 4305lockedValue.Syntax, 4307semanticModel: null, lockedValue.Syntax, 4328IOperation condition = new LocalReferenceOperation(lockStatement.LockTakenSymbol, isDeclaration: false, semanticModel: null, lockedValue.Syntax, 4352lockedValue.Syntax, 4354semanticModel: null, lockedValue.Syntax, 4483operand.Syntax, targetType, constantValue: null, isImplicit: true); 4496IOperation invocation = makeInvocation(operation.Collection.Syntax, 4502AddStatement(new FlowCaptureOperation(enumeratorCaptureId, operation.Collection.Syntax, invocation)); 4504result = new FlowCaptureReferenceOperation(enumeratorCaptureId, operation.Collection.Syntax, info.GetEnumeratorMethod.ReturnType, constantValue: null); 4510result = new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Collection.Syntax, 4525return new AwaitOperation(moveNext, semanticModel: null, operation.Syntax, _compilation.GetSpecialType(SpecialType.System_Boolean), isImplicit: true); 4547operation.LoopControlVariable.Syntax, 4570declarator.Syntax, 4576declarator.Syntax, 4587operation.LoopControlVariable.Syntax, operation.LoopControlVariable.Type, 4592current, semanticModel: null, operation.LoopControlVariable.Syntax, 4600return makeInvocation(instance.Syntax, method, method.IsStatic ? null : instance, arguments); 4688operation.LoopControlVariable.Syntax, loopObject.Type, 4705return MakeInvalidOperation(operation.LimitValue.Syntax, booleanType, builder.ToImmutableAndFree()); 4730semanticModel: null, isInitialization ? value.Syntax : syntax, isImplicit: true); 4737semanticModel: null, operation.LimitValue.Syntax, method.ReturnType, 4776IOperation condition = tryCallObjectForLoopControlHelper(operation.LoopControlVariable.Syntax, 4851isUp = new LiteralOperation(semanticModel: null, stepValue.Syntax, booleanType, constantValue: ConstantValue.Create(false), isImplicit: true); 4853AddStatement(new FlowCaptureOperation(positiveFlagId, isUp.Syntax, isUp)); 4859IOperation literal = new LiteralOperation(semanticModel: null, stepValue.Syntax, stepValue.Type, 4873stepValue.Syntax, 4878AddStatement(new FlowCaptureOperation(positiveFlagId, isUp.Syntax, isUp)); 4895semanticModel: null, operation.InitialValue.Syntax, type: null, 4931IOperation condition = tryCallObjectForLoopControlHelper(operation.LimitValue.Syntax, 5027operation.LimitValue.Syntax, 5042condition = MakeInvalidOperation(operation.LimitValue.Syntax, booleanType, PopOperand(), limitReference); 5064operation.StepValue.Syntax, 5105operation.LimitValue.Syntax, 5125operation.LimitValue.Syntax, 5146var shiftConst = new LiteralOperation(semanticModel: null, operand.Syntax, _compilation.GetSpecialType(SpecialType.System_Int32), 5159operand.Syntax, 5174operand.Syntax, 5212controlVariableReferenceForAssignment.Syntax, 5247operation.StepValue.Syntax, 5263controlVariableReferenceForAssignment.Syntax, 5268controlVariableReferenceForAssignment.Syntax, 5298operation.StepValue.Syntax, 5315controlVariableReferenceForAssignment.Syntax, 5335declarator.Syntax, local.Type, constantValue: null, isImplicit: true); 5349return new FlowCaptureReferenceOperation(id, underlying.Syntax, underlying.Type, underlying.GetConstantValue()); 5492compareWith.Syntax, 5513patternClause.Pattern.Syntax, booleanType, isImplicit: true); 5736var initializationSemaphore = new StaticLocalInitializationSemaphoreOperation(localSymbol, declarator.Syntax, booleanType); 5750assignmentSyntax = declarator.Syntax; 5756assignmentSyntax = declaration.Syntax; 5761declaration.Syntax, 5779var localRef = new LocalReferenceOperation(localSymbol, isDeclaration: true, semanticModel: null, declarator.Syntax, localSymbol.Type, constantValue: null, isImplicit: true); 5836return new InvocationOperation(operation.TargetMethod, operation.ConstrainedToType, visitedInstance, operation.IsVirtual, visitedArguments, semanticModel: null, operation.Syntax, 5846return new FunctionPointerInvocationOperation(visitedPointer, visitedArguments, semanticModel: null, operation.Syntax, 5879IOperation initializedInstance = new NoPiaObjectCreationOperation(initializer: null, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 5891operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 5899var initializedInstance = new TypeParameterObjectCreationOperation(initializer: null, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 5912hasDynamicArguments.ArgumentRefKinds, semanticModel: null, operation.Syntax, 5998result = new SimpleAssignmentOperation(assignmentOperation.IsRef, left, right, semanticModel: null, assignmentOperation.Syntax, 6121fieldReference.Syntax, fieldReference.Type, fieldReference.GetConstantValue(), IsImplicit(fieldReference)); 6125return new EventReferenceOperation(eventReference.Event, eventReference.ConstrainedToType, instance, semanticModel: null, eventReference.Syntax, 6131return new PropertyReferenceOperation(propertyReference.Property, propertyReference.ConstrainedToType, propertyArguments, instance, semanticModel: null, propertyReference.Syntax, 6137return new ArrayElementReferenceOperation(instance, indices, semanticModel: null, originalTarget.Syntax, originalTarget.Type, IsImplicit(originalTarget)); 6148dynamicReference.ContainingType, semanticModel: null, dynamicReference.Syntax, 6161return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6167return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6175operation.Syntax, operation.Type, IsImplicit(operation)); 6200propertyReference.Instance.Syntax, propertyReference.Instance.Type, IsImplicit(propertyReference.Instance)); 6202semanticModel: null, propertyReference.Syntax, propertyReference.Type, IsImplicit(propertyReference)); 6205semanticModel: null, simpleAssignment.Syntax, simpleAssignment.Type, simpleAssignment.GetConstantValue(), IsImplicit(simpleAssignment)); 6219operation.Syntax, operation.Type, IsImplicit(operation)); 6293operation.Syntax, operation.Type, IsImplicit(operation)); 6339return new ArrayInitializerOperation(builder.ToImmutableAndFree(), semanticModel: null, initializer.Syntax, IsImplicit(initializer)); 6358return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6363return new FlowCaptureReferenceOperation(_currentInterpolatedStringHandlerCreationContext.HandlerPlaceholder, operation.Syntax, operation.Type, operation.GetConstantValue()); 6366return new InstanceReferenceOperation(operation.ReferenceKind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6395dynamicMemberReference.ContainingType, semanticModel: null, dynamicMemberReference.Syntax, dynamicMemberReference.Type, IsImplicit(dynamicMemberReference)); 6404((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6415((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6421operation.ContainingType, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6427return new DeconstructionAssignmentOperation(visitedTarget, visitedValue, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6465return new TupleOperation(elementBuilder.ToImmutableAndFree(), tuple.NaturalType, semanticModel: null, tuple.Syntax, tuple.Type, IsImplicit(tuple)); 6475return new DeclarationExpressionOperation(VisitPreservingTupleOperations(operation.Expression), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6523return new NoneOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6529new NoneOperation(VisitArray(((Operation)operation).ChildOperations.ToImmutableArray()), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation))); 6605ConditionalBranch(new FlowCaptureReferenceOperation(outParameterFlowCapture, outParameterPlaceholder.Syntax, outParameterPlaceholder.Type, constantValue: null), jumpIfTrue: false, resultBlock); 6652return new FlowCaptureReferenceOperation(handlerCaptureId, operation.Syntax, operation.Type, operation.GetConstantValue()); 6733return new FlowCaptureReferenceOperation(_currentInterpolatedStringHandlerCreationContext.OutPlaceholder, operation.Syntax, operation.Type, operation.GetConstantValue(), isInitialization: true); 6745return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), isImplicit: true); 6758return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), isImplicit: true); 6828rewrittenElement = new InterpolationOperation(rewrittenExpression, rewrittenAlignment, rewrittenFormatString, semanticModel: null, element.Syntax, IsImplicit(element)); 6833rewrittenElement = new InterpolatedStringTextOperation(rewrittenInterpolationText, semanticModel: null, element.Syntax, IsImplicit(element)); 6845return new InterpolatedStringOperation(partsBuilder.ToImmutableAndFree(), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6861return new LiteralOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6866return new LiteralOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6871return new Utf8StringOperation(operation.Value, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6876return new LocalReferenceOperation(operation.Local, operation.IsDeclaration, semanticModel: null, operation.Syntax, 6882return new ParameterReferenceOperation(operation.Parameter, semanticModel: null, operation.Syntax, 6890operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6897operation.Syntax, operation.Type, IsImplicit(operation)); 6917return MakeInvalidOperation(operation.Syntax, operation.Type, ImmutableArray<IOperation>.Empty); 6926operation.Syntax, operation.Type, IsImplicit(operation)); 6933operation.Syntax, operation.Type, IsImplicit(operation)); 6938return new TypeOfOperation(operation.TypeOperand, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6943return new ParenthesizedOperation(VisitRequired(operation.Operand), semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6948return new AwaitOperation(VisitRequired(operation.Operation), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6953return new SizeOfOperation(operation.TypeOperand, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 6958return new StopOperation(semanticModel: null, operation.Syntax, IsImplicit(operation)); 6963return new IsTypeOperation(VisitRequired(operation.ValueOperand), operation.TypeOperand, operation.IsNegated, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 6971operation.Syntax, operation.Parameter.Type, isImplicit: true); 6985operation.Syntax, fieldSymbol.ContainingType, isImplicit: true); 6987operation.Syntax, fieldSymbol.Type, constantValue: null, isImplicit: true); 7003operation.Syntax, propertySymbol.ContainingType, isImplicit: true); 7013operation.Syntax, parameter.Type, constantValue: null, isImplicit: true); 7017semanticModel: null, operation.Syntax, isImplicit: true); 7029semanticModel: null, operation.Syntax, propertySymbol.Type, isImplicit: true); 7042initializer.Syntax, rewrittenTarget.Type, constantValue: null, isImplicit: true); 7070semanticModel: null, operation.EventReference.Syntax, operation.EventReference.Type, IsImplicit(operation.EventReference)); 7083operation.Syntax, operation.Type, IsImplicit(operation)); 7116semanticModel: null, operation.EventReference.Syntax, operation.EventReference.Type, IsImplicit(operation.EventReference)); 7120operation.Syntax, IsImplicit(operation))); 7125return new AddressOfOperation(VisitRequired(operation.Reference), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7132operation.Kind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7137return new DiscardOperation(operation.DiscardSymbol, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7142return new DiscardPatternOperation(pat.InputType, pat.NarrowedType, semanticModel: null, pat.Syntax, IsImplicit(pat)); 7147return new OmittedArgumentOperation(semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7181return new PlaceholderOperation(operation.PlaceholderKind, semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7186return new ConversionOperation(VisitRequired(operation.Operand), ((ConversionOperation)operation).ConversionConvertible, operation.IsTryCast, operation.IsChecked, semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 7191return new DefaultValueOperation(semanticModel: null, operation.Syntax, operation.Type, operation.GetConstantValue(), IsImplicit(operation)); 7202operation.Syntax, operation.Type, IsImplicit(operation)); 7234IOperation initializedInstance = new InvalidOperation(children.ToImmutableAndFree(), semanticModel: null, operation.Syntax, operation.Type, 7258return new InvalidOperation(ImmutableArray<IOperation>.Empty, semanticModel: null, invalidOperation.Syntax, invalidOperation.Type, invalidOperation.GetConstantValue(), IsImplicit(invalidOperation)); 7265invalidOperation.Syntax, invalidOperation.Type, invalidOperation.GetConstantValue(), IsImplicit(operation))); 7284semanticModel: null, operation.Syntax, isImplicit); 7296return new ReDimClauseOperation(visitedOperand, visitedDimensionSizes, semanticModel: null, clause.Syntax, IsImplicit(clause)); 7307return new TranslatedQueryOperation(VisitRequired(operation.Operation), semanticModel: null, operation.Syntax, operation.Type, IsImplicit(operation)); 7313syntax: operation.Syntax, isImplicit: IsImplicit(operation)); 7324syntax: operation.Syntax, 7337syntax: operation.Syntax, 7348syntax: operation.Syntax, 7359syntax: operation.Syntax, 7372operation.Syntax, 7384operation.Syntax, 7398operation.Syntax, 7413operation.Syntax, 7423syntax: operation.Syntax, 7430operation.Syntax, operation.Type, IsImplicit(operation)); 7448return new RangeOperation(visitedLeftOperand, visitedRightOperand, operation.IsLifted, operation.Method, semanticModel: null, operation.Syntax, operation.Type, isImplicit: IsImplicit(operation)); 7494arm.Syntax, booleanType, IsImplicit(arm)); 7529? MakeInvalidOperation(operation.Syntax, type: _compilation.GetSpecialType(SpecialType.System_Object), ImmutableArray<IOperation>.Empty) 7531matchFailureCtor, initializer: null, ImmutableArray<IArgumentOperation>.Empty, semanticModel: null, operation.Syntax, 7567BlockOperation logicalBlock = BlockOperation.CreateTemporaryBlock(statementsBuilder.ToImmutableAndFree(), ((Operation)operation).OwningSemanticModel!, operation.Syntax); 7670semanticModel: null, operation.Syntax, operation.Type, isImplicit: true); 7746var valueCaptureRef = new FlowCaptureReferenceOperation(valueCaptureId, operation.Operand.Syntax, 7767var oldInstance = new FlowCaptureReferenceOperation(oldValueCaptureId, operation.Operand.Syntax, 7777var extraValueCaptureRef = new FlowCaptureReferenceOperation(extraValueCaptureId, operation.Operand.Syntax, 7831return new AttributeOperation(Visit(operation.Operation, captureIdForResult)!, semanticModel: null, operation.Syntax, IsImplicit(operation));
Operations\OperationCloner.cs (5)
21return new NoneOperation(VisitArray(((Operation)operation).ChildOperations.ToImmutableArray()), ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.GetConstantValue(), operation.IsImplicit); 32return new DynamicObjectCreationOperation(Visit(operation.Initializer), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 37return new DynamicInvocationOperation(Visit(operation.Operation), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 42return new DynamicIndexerAccessOperation(Visit(operation.Operation), VisitArray(operation.Arguments), ((HasDynamicArgumentsExpression)operation).ArgumentNames, ((HasDynamicArgumentsExpression)operation).ArgumentRefKinds, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.IsImplicit); 47return new InvalidOperation(VisitArray(((InvalidOperation)operation).Children), ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, operation.GetConstantValue(), operation.IsImplicit);
Operations\OperationExtensions.cs (4)
41if (operation.Syntax == null) 51if (model is null || model.SyntaxTree != operation.Syntax.SyntaxTree) 53model = compilation.GetSemanticModel(operation.Syntax.SyntaxTree); 63return model.GetDiagnostics(operation.Syntax.Span, cancellationToken).Any(static d => d.DefaultSeverity == DiagnosticSeverity.Error);
Operations\OperationMapBuilder.cs (4)
68Debug.Assert(!argument.ContainsKey(operation.Syntax), 69$"Duplicate operation node for {operation.Syntax}. Existing node is {(argument.TryGetValue(operation.Syntax, out var original) ? original.Kind : null)}, new node is {operation.Kind}."); 70argument.Add(operation.Syntax, operation);
Operations\OperationNodes.cs (1)
156base(semanticModel: null, original.Syntax, isImplicit)
Microsoft.CodeAnalysis.CodeStyle (46)
AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
38var node = context.Operation.Syntax;
AbstractPopulateSwitchDiagnosticAnalyzer.cs (1)
51if (switchOperation.Syntax is not TSwitchSyntax switchBlock || IsSwitchTypeUnknown(switchOperation))
AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
104if (!CanMemberAccessBeQualified(context.ContainingSymbol, instanceOperation.Syntax)) 112if (instanceOperation.Syntax is not TSimpleNameSyntax simpleName)
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (3)
47if (!_syntaxFacts.IsBinaryExpression(operation.Syntax)) 67_syntaxFacts.GetPartsOfBinaryExpression(operation.Syntax, out _, out var operatorToken, out _); 82additionalLocations: new[] { operation.Syntax.GetLocation() },
AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (1)
115reportDiagnostic(Diagnostic.Create(LegacyFormatTargetDescriptor, targetValueOperation.Syntax.GetLocation(), properties!, targetSymbolString));
AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
363var symbolInfo = nameofArgument.SemanticModel.GetSymbolInfo(nameofArgument.Syntax, operationContext.CancellationToken);
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (4)
80if (!symbolStartAnalyzer._compilationAnalyzer.TryGetOptions(firstBlock.Syntax.SyntaxTree, 107if (operationBlock.Syntax.GetDiagnostics().ToImmutableArrayOrEmpty().HasAnyErrors()) 118if (operationBlock.Syntax.DescendantNodes(descendIntoTrivia: true) 183value.Syntax.GetLocation(),
AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (1)
70additionalLocations: ImmutableArray.Create(interpolation.Syntax.GetLocation()),
AbstractSimplifyInterpolationHelpers.cs (7)
50.SelectAsArray(interpolation.Syntax.SyntaxTree.GetLocation); 83!syntaxFacts.IsBaseExpression(instance.Syntax) && 97unnecessarySpans.AddRange(invocation.Syntax.Span 99.Subtract(GetSpanWithinLiteralQuotes(virtualCharService, literal.Syntax.GetFirstToken()))); 112unnecessarySpans.AddRange(invocation.Syntax.Span 214var alignmentSyntax = alignmentOp.Syntax; 220unnecessarySpans.AddRange(invocation.Syntax.Span
AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (4)
115if (context.Operation.Syntax.GetDiagnostics().Any(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error)) 152nextInvocation.Syntax.GetLocation(), 167if (invocation.Syntax is TInvocationExpressionSyntax invocationNode && 179if (invocation.Syntax is TInvocationExpressionSyntax invocationNode &&
AbstractUseConditionalExpressionDiagnosticAnalyzer.cs (1)
44if (ifOperation.Syntax is not TIfStatementSyntax ifStatement)
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (9)
77var throwStatementSyntax = throwOperation.Syntax; 129ifOperation.Syntax.GetLocation(), 130throwOperation.Exception.Syntax.GetLocation(), 131assignmentExpression.Value.Syntax.GetLocation(), 132expressionStatement.Syntax.GetLocation()); 149statements[ifOperationIndex + 1].Syntax, 150statements[expressionStatementIndex - 1].Syntax); 161var exprDataFlow = semanticModel.AnalyzeDataFlow(assignmentExpression.Target.Syntax); 274var throwStatement = throwOperation.Syntax;
AnalyzerOptionsProvider.cs (1)
142=> GetAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree);
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
194var dataFlow = operation.SemanticModel.AnalyzeDataFlow(operation.Syntax);
UseConditionalExpressionForAssignmentHelpers.cs (2)
47!syntaxFacts.AreEquivalent(trueAssignment.Target.Syntax, falseAssignment.Target.Syntax))
UseConditionalExpressionHelpers.cs (5)
37if (syntaxFacts.SpansPreprocessorDirective(ifOperation.Syntax, whenFalse.Syntax)) 45if (HasRegularComments(syntaxFacts, whenTrue.Syntax) || 46HasRegularComments(syntaxFacts, whenFalse.Syntax)) 93if (!syntaxFacts.SupportsThrowExpression(anyThrow.Syntax.SyntaxTree.Options))
UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
58var memberAccessSyntax = fieldReferenceOperation.Syntax;
UseSystemHashCodeDiagnosticAnalyzer.cs (1)
73var operationLocation = operation.Syntax.GetLocation();
Microsoft.CodeAnalysis.CodeStyle.Fixes (13)
AbstractSimplifyInterpolationCodeFixProvider.cs (1)
62if (interpolation?.Syntax is TInterpolationSyntax interpolationSyntax &&
AbstractUseConditionalExpressionCodeFixProvider.cs (4)
107var condition = ifOperation.Condition.Syntax; 123trueValue.Syntax, falseValue.Syntax, fallbackOptions, cancellationToken).ConfigureAwait(false); 172var sourceSyntax = value.Syntax.WithoutTrivia();
AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (6)
110var ifStatement = (TIfStatementSyntax)ifOperation.Syntax; 113assignment.Target.Syntax, 117ifOperation.Syntax, 135var localDeclaration = localDeclarationOperation.Syntax; 149editor.RemoveNode(ifOperation.Syntax, GetRemoveOptions(syntaxFacts, ifOperation.Syntax));
AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (2)
90editor.RemoveNode(falseStatement.Syntax, GetRemoveOptions(syntaxFacts, falseStatement.Syntax));
Microsoft.CodeAnalysis.CSharp (6)
Operations\CSharpOperationFactory.cs (3)
1044Debug.Assert(isImplicit || target.Syntax != syntax || target.IsImplicit || boundConversion.ConversionGroupOpt != null); 1046isImplicit = isImplicit || (target.Syntax == syntax && !target.IsImplicit); 2252Debug.Assert(valueOperation.Syntax != part.Syntax);
Operations\CSharpOperationFactory_Methods.cs (3)
40(SyntaxNode syntax, bool isImplicit) = expression.Syntax is { Parent: ArgumentSyntax or AttributeArgumentSyntax } ? (expression.Syntax.Parent, expression.WasCompilerGenerated) : (value.Syntax, true); 366syntax: value.Syntax, 384var assignmentSyntax = value.Syntax?.Parent ?? syntax;
Microsoft.CodeAnalysis.CSharp.CodeStyle (49)
AnalyzedPattern.cs (2)
164if (!SyntaxFactory.AreEquivalent(target.Syntax, compareTarget.Syntax))
CastSimplifier.cs (2)
796if (IsExplicitCast(conversionOperation.Syntax)) 1287var argumentSyntax = argument?.Syntax as ArgumentSyntax;
CSharpAnalyzerOptionsProvider.cs (1)
147=> GetCSharpAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree);
CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
26var node = context.Operation.Syntax;
CSharpMakeStructMemberReadOnlyAnalyzer.cs (3)
162CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, instanceOperation.Syntax, cancellationToken)) 174if (CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, fieldReference.Syntax, cancellationToken)) 185if (CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, propertyReference.Syntax, cancellationToken))
CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (1)
61protected override Location GetLocation(IOperation operation) => operation.Syntax.GetLocation();
CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (6)
66var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 84!blockOperation.Syntax.IsKind(SyntaxKind.Block); 88switch (unusedDefinition.Syntax) 100if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement && 101forEachStatement.Type == unusedDefinition.Syntax) 106return unusedDefinition.Syntax.GetLocation();
CSharpSimplifyInterpolationHelpers.cs (1)
20return operation.Syntax switch
CSharpUseImplicitTypeHelper.cs (1)
250var argumentOp = invocationOp.Arguments.FirstOrDefault(a => a.Syntax == argument);
CSharpUseIndexOperatorDiagnosticAnalyzer.cs (2)
176if (subtraction.Syntax is not BinaryExpressionSyntax binaryExpression) 201if (CSharpSemanticFacts.Instance.IsInExpressionTree(semanticModel, instance.Syntax, infoCache.ExpressionOfTType, cancellationToken))
CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (3)
61context.Operation.Syntax is not UnaryPatternSyntax) 81Descriptor, context.Operation.Syntax.GetLocation(), severity, additionalLocations: null, properties: null)); 89var syntax = operation.Syntax;
CSharpUsePatternCombinatorsAnalyzer.cs (9)
19return pattern?.Target.Syntax is ExpressionSyntax ? pattern : null; 50case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 53case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 62case IIsTypeOperation { Syntax: BinaryExpressionSyntax binaryExpression } op: 65case IIsPatternOperation { Pattern.Syntax: PatternSyntax pattern } op: 102ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 107ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right 117ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 119ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right
CSharpUseRangeOperatorDiagnosticAnalyzer.cs (5)
91if (CSharpSemanticFacts.Instance.IsInExpressionTree(semanticModel, operation.Syntax, infoCache.ExpressionOfTType, context.CancellationToken)) 101if (invocation.Syntax is not InvocationExpressionSyntax invocationSyntax || 183if (CSharpSyntaxFacts.Instance.AreEquivalent(startOperation.Syntax, subtraction.RightOperand.Syntax)) 245return !invocation.Syntax.IsLeftSideOfAnyAssignExpression() || indexer == null || !IsWriteableIndexer(invocation, indexer);
Helpers.cs (2)
45CSharpSyntaxFacts.Instance.AreEquivalent(instance.Syntax, propertyRef.Instance.Syntax);
UseUtf8StringLiteralDiagnosticAnalyzer.cs (10)
82if (arrayCreationOperation.Syntax.Ancestors().OfType<AttributeSyntax>().Any()) 88if (arrayCreationOperation.Syntax.IsInExpressionTree(semanticModel, expressionType, context.CancellationToken)) 101if (arrayCreationOperation.Syntax is ImplicitArrayCreationExpressionSyntax or ArrayCreationExpressionSyntax) 103ReportArrayCreationDiagnostic(context, arrayCreationOperation.Syntax, option.Notification.Severity); 105else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 108ReportParameterArrayDiagnostic(context, arrayCreationOperation.Syntax, elements, option.Notification.Severity, ArrayCreationOperationLocation.Descendants); 110else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..]) 114ReportParameterArrayDiagnostic(context, arrayCreationOperation.Syntax, elements, option.Notification.Severity, ArrayCreationOperationLocation.Ancestors); 124var span = TextSpan.FromBounds(elements[0].Syntax.SpanStart, elements[^1].Syntax.Span.End);
Microsoft.CodeAnalysis.CSharp.CodeStyle.Fixes (16)
ConvertToRecordHelpers.cs (3)
293? assignment.Syntax as ExpressionSyntax 303if (arg is { Parameter: IParameterSymbol param, Value.Syntax: ExpressionSyntax captured }) 383Value: IOperation { Syntax: ExpressionSyntax syntax }
CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
43=> (VariableDeclaratorSyntax)declarator.Syntax;
CSharpUseConditionalExpressionHelpers.cs (1)
15var throwStatement = (ThrowStatementSyntax)throwOperation.Syntax;
CSharpUsePatternCombinatorsCodeFixProvider.cs (2)
92editor.ReplaceNode(expression, IsPatternExpression((ExpressionSyntax)pattern.Target.Syntax, patternSyntax)); 133var governingType = semanticModel.GetTypeInfo(p.Target.Syntax).Type.RemoveNullableIfPresent();
CSharpUseRangeOperatorCodeFixProvider.cs (3)
152var startExpr = (ExpressionSyntax)startOperation.Syntax; 167endExpr = (ExpressionSyntax)endOperation.Syntax; 209constant1 == 0 ? null : WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax),
MakeLocalFunctionStaticCodeFixHelper.cs (2)
160syntaxEditor.ReplaceNode(instanceReference.Syntax, IdentifierName("@this")); 162else if (instanceReference.Syntax is SimpleNameSyntax name)
NullableHelpers.cs (3)
61var foreachInfo = semanticModel.GetForEachStatementInfo((CommonForEachStatementSyntax)forEachLoop.Syntax); 79? variableDeclarator.GetVariableInitializer()!.Value.Syntax 80: reference.Syntax;
UseUtf8StringLiteralCodeFixProvider.cs (1)
123.Where(a => a.Initializer?.ElementValues.FirstOrDefault()?.Syntax.SpanStart == diagnostic.Location.SourceSpan.Start)
Microsoft.CodeAnalysis.CSharp.Emit2.UnitTests (9)
Diagnostics\DiagnosticAnalyzerTests.cs (3)
2347ReportDiagnosticsCore(addDiagnostic, operation.Syntax.Location, $"Operation: {name}"); 3771context => context.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(Rule, context.Operation.Syntax.GetLocation())), 3777context => context.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(Rule, context.Operation.Syntax.GetLocation())),
Diagnostics\GetDiagnosticsTests.cs (6)
922context => analyzeNode(context.Operation.Syntax, context.ContainingSymbol, context.ReportDiagnostic), 929blockEndContext.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(DescriptorForBlockEnd, operationBlock.Syntax.GetLocation())); 931if (operationBlock.Syntax is PropertyDeclarationSyntax or IndexerDeclarationSyntax) 932throw new Exception($"Unexpected topmost node for operation block '{operationBlock.Syntax.Kind()}'"); 1258AssertEx.SetEqual(expectedOperationCallbacks, analyzer.AnalyzedOperations.Select(op => op.Syntax.ToString()).ToHashSet()); 1262AssertEx.SetEqual(expectedOperationInsideBlockCallbacks, analyzer.AnalyzedOperationsInsideOperationBlock.Select(op => op.Syntax.ToString()).ToHashSet());
Microsoft.CodeAnalysis.CSharp.Features (73)
AnalyzedPattern.cs (2)
164if (!SyntaxFactory.AreEquivalent(target.Syntax, compareTarget.Syntax))
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (2)
24=> !operation.SemanticModel.AnalyzeControlFlow(operation.Syntax).EndPointIsReachable; 37=> !operation.SemanticModel.AnalyzeControlFlow(operation.Syntax).ExitPoints.Any(static n => n.IsKind(SyntaxKind.BreakStatement));
ConvertIfToSwitch\CSharpConvertIfToSwitchCodeRefactoringProvider.Rewriting.cs (3)
62IReturnOperation { ReturnedValue: { } value } => (ExpressionSyntax)value.Syntax, 63IThrowOperation { Exception: { } exception } => ThrowExpression((ExpressionSyntax)exception.Syntax), 109var node = operation.Syntax;
ConvertToRecordHelpers.cs (3)
293? assignment.Syntax as ExpressionSyntax 303if (arg is { Parameter: IParameterSymbol param, Value.Syntax: ExpressionSyntax captured }) 383Value: IOperation { Syntax: ExpressionSyntax syntax }
CSharpAnalyzerOptionsProvider.cs (1)
147=> GetCSharpAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree);
CSharpConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
26var node = context.Operation.Syntax;
CSharpMakeStructMemberReadOnlyAnalyzer.cs (3)
162CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, instanceOperation.Syntax, cancellationToken)) 174if (CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, fieldReference.Syntax, cancellationToken)) 185if (CSharpSemanticFacts.Instance.IsWrittenTo(semanticModel, propertyReference.Syntax, cancellationToken))
CSharpQualifyMemberAccessDiagnosticAnalyzer.cs (1)
61protected override Location GetLocation(IOperation operation) => operation.Syntax.GetLocation();
CSharpRemoveUnusedParametersAndValuesDiagnosticAnalyzer.cs (6)
66var statementAncestor = unusedSymbolWriteOperation.Syntax.FirstAncestorOrSelf<StatementSyntax>()?.Parent; 84!blockOperation.Syntax.IsKind(SyntaxKind.Block); 88switch (unusedDefinition.Syntax) 100if (unusedDefinition.Syntax.Parent is ForEachStatementSyntax forEachStatement && 101forEachStatement.Type == unusedDefinition.Syntax) 106return unusedDefinition.Syntax.GetLocation();
CSharpSimplifyInterpolationHelpers.cs (1)
20return operation.Syntax switch
CSharpUseConditionalExpressionForAssignmentCodeFixProvider.cs (1)
43=> (VariableDeclaratorSyntax)declarator.Syntax;
CSharpUseConditionalExpressionHelpers.cs (1)
15var throwStatement = (ThrowStatementSyntax)throwOperation.Syntax;
CSharpUseIndexOperatorDiagnosticAnalyzer.cs (2)
176if (subtraction.Syntax is not BinaryExpressionSyntax binaryExpression) 201if (CSharpSemanticFacts.Instance.IsInExpressionTree(semanticModel, instance.Syntax, infoCache.ExpressionOfTType, cancellationToken))
CSharpUseNullCheckOverTypeCheckDiagnosticAnalyzer.cs (3)
61context.Operation.Syntax is not UnaryPatternSyntax) 81Descriptor, context.Operation.Syntax.GetLocation(), severity, additionalLocations: null, properties: null)); 89var syntax = operation.Syntax;
CSharpUsePatternCombinatorsAnalyzer.cs (9)
19return pattern?.Target.Syntax is ExpressionSyntax ? pattern : null; 50case IBinaryOperation { OperatorKind: ConditionalOr, Syntax: BinaryExpressionSyntax syntax } op: 53case IBinaryOperation { OperatorKind: ConditionalAnd, Syntax: BinaryExpressionSyntax syntax } op: 62case IIsTypeOperation { Syntax: BinaryExpressionSyntax binaryExpression } op: 65case IIsPatternOperation { Pattern.Syntax: PatternSyntax pattern } op: 102ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 107ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right 117ConstantResult.Left when op.LeftOperand.Syntax is ExpressionSyntax left 119ConstantResult.Right when op.RightOperand.Syntax is ExpressionSyntax right
CSharpUsePatternCombinatorsCodeFixProvider.cs (2)
92editor.ReplaceNode(expression, IsPatternExpression((ExpressionSyntax)pattern.Target.Syntax, patternSyntax)); 133var governingType = semanticModel.GetTypeInfo(p.Target.Syntax).Type.RemoveNullableIfPresent();
CSharpUseRangeOperatorCodeFixProvider.cs (3)
152var startExpr = (ExpressionSyntax)startOperation.Syntax; 167endExpr = (ExpressionSyntax)endOperation.Syntax; 209constant1 == 0 ? null : WalkUpCheckedExpressions((ExpressionSyntax)result.Op1.Syntax),
CSharpUseRangeOperatorDiagnosticAnalyzer.cs (5)
91if (CSharpSemanticFacts.Instance.IsInExpressionTree(semanticModel, operation.Syntax, infoCache.ExpressionOfTType, context.CancellationToken)) 101if (invocation.Syntax is not InvocationExpressionSyntax invocationSyntax || 183if (CSharpSyntaxFacts.Instance.AreEquivalent(startOperation.Syntax, subtraction.RightOperand.Syntax)) 245return !invocation.Syntax.IsLeftSideOfAnyAssignExpression() || indexer == null || !IsWriteableIndexer(invocation, indexer);
ExtractMethod\CSharpMethodExtractor.CSharpCodeGenerator.cs (4)
804if (!ReturnOperationBelongsToMethod(returnOperation.Syntax, methodOperation.Syntax)) 809var syntax = returnOperation.ReturnedValue?.Syntax ?? returnOperation.Syntax;
ImplementInterface\CSharpImplementExplicitlyCodeRefactoringProvider.cs (1)
142instance.Syntax, (current, g) =>
InitializeParameter\CSharpInitializeMemberFromParameterCodeRefactoringProvider.cs (2)
120if (tupleLeft.Syntax is TupleExpressionSyntax tupleLeftSyntax && 121tupleRight.Syntax is TupleExpressionSyntax tupleRightSyntax)
InitializeParameter\InitializeParameterHelpers.cs (2)
48=> blockStatement?.Syntax is BlockSyntax block 50: blockStatement?.Syntax;
J\s\src\Analyzers\CSharp\Analyzers\UseIndexOrRangeOperator\Helpers.cs\Helpers.cs (2)
45CSharpSyntaxFacts.Instance.AreEquivalent(instance.Syntax, propertyRef.Instance.Syntax);
MakeLocalFunctionStaticCodeFixHelper.cs (2)
160syntaxEditor.ReplaceNode(instanceReference.Syntax, IdentifierName("@this")); 162else if (instanceReference.Syntax is SimpleNameSyntax name)
UseUtf8StringLiteralCodeFixProvider.cs (1)
123.Where(a => a.Initializer?.ElementValues.FirstOrDefault()?.Syntax.SpanStart == diagnostic.Location.SourceSpan.Start)
UseUtf8StringLiteralDiagnosticAnalyzer.cs (10)
82if (arrayCreationOperation.Syntax.Ancestors().OfType<AttributeSyntax>().Any()) 88if (arrayCreationOperation.Syntax.IsInExpressionTree(semanticModel, expressionType, context.CancellationToken)) 101if (arrayCreationOperation.Syntax is ImplicitArrayCreationExpressionSyntax or ArrayCreationExpressionSyntax) 103ReportArrayCreationDiagnostic(context, arrayCreationOperation.Syntax, option.Notification.Severity); 105else if (elements is [{ Syntax.Parent: ArgumentSyntax }, ..]) 108ReportParameterArrayDiagnostic(context, arrayCreationOperation.Syntax, elements, option.Notification.Severity, ArrayCreationOperationLocation.Descendants); 110else if (elements is [{ Syntax.Parent: (kind: SyntaxKind.CollectionInitializerExpression) }, ..]) 114ReportParameterArrayDiagnostic(context, arrayCreationOperation.Syntax, elements, option.Notification.Severity, ArrayCreationOperationLocation.Ancestors); 124var span = TextSpan.FromBounds(elements[0].Syntax.SpanStart, elements[^1].Syntax.Span.End);
Microsoft.CodeAnalysis.CSharp.IOperation.UnitTests (5)
IOperation\IOperationTests.cs (1)
690Assert.Same(expectedRootSyntax, operation.Syntax);
IOperation\IOperationTests_IBranchOperation.Extensions.cs (4)
363Assert.Equal(expected.Syntax, actual.Syntax); 370Assert.Equal(expected.Syntax, actual.Syntax);
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (89)
Semantics\PrimaryConstructorTests.cs (37)
1049VerifyFlowGraph(comp, operation.Parent.Parent.Syntax, @" 3746Assert.Equal(SyntaxKind.ClassDeclaration, context.Operation.Syntax.Kind()); 3750Assert.Equal(SyntaxKind.ClassDeclaration, context.Operation.Syntax.Kind()); 3754Assert.Equal(SyntaxKind.ConstructorDeclaration, context.Operation.Syntax.Kind()); 3768Assert.Equal(SyntaxKind.PrimaryConstructorBaseType, context.Operation.Syntax.Kind()); 3783Assert.Equal(SyntaxKind.BaseConstructorInitializer, context.Operation.Syntax.Kind()); 3804switch (context.Operation.Syntax.ToString()) 3850switch (context.Operation.Syntax.ToString()) 3934Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 3937Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 3945Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 3948Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 3951Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 3959Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 3962Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 3967Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString()); 4068Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 4071Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 4081Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 4084Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 4087Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 4097Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 4100Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 4105Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString()); 4142Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 4145Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 4153Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 4156Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 4159Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 4167Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 4170Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 4175Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString()); 5115Assert.Equal(SyntaxKind.RecordDeclaration, context.Operation.Syntax.Kind()); 5132switch (context.Operation.Syntax.ToString()) 5150switch (context.Operation.Syntax.ToString()) 5210Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 5213Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString());
Semantics\RecordStructTests.cs (5)
6392Assert.Equal(SyntaxKind.RecordDeclaration, context.Operation.Syntax.Kind()); 6409switch (context.Operation.Syntax.ToString()) 6427switch (context.Operation.Syntax.ToString()) 6487Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 6490Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString());
Semantics\RecordTests.cs (32)
21241VerifyFlowGraph(comp, operation.Parent.Parent.Syntax, @" 26807Assert.Equal(SyntaxKind.RecordDeclaration, context.Operation.Syntax.Kind()); 26811Assert.Equal(SyntaxKind.RecordDeclaration, context.Operation.Syntax.Kind()); 26815Assert.Equal(SyntaxKind.ConstructorDeclaration, context.Operation.Syntax.Kind()); 26829Assert.Equal(SyntaxKind.PrimaryConstructorBaseType, context.Operation.Syntax.Kind()); 26844Assert.Equal(SyntaxKind.BaseConstructorInitializer, context.Operation.Syntax.Kind()); 26865switch (context.Operation.Syntax.ToString()) 26911switch (context.Operation.Syntax.ToString()) 26995Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 26998Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 27006Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 27009Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 27012Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 27020Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 27023Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 27028Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString()); 27129Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 27132Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 27142Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 27145Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 27148Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 27158Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 27161Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 27166Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString()); 27203Assert.Equal("= 0", context.OperationBlocks[0].Syntax.ToString()); 27206Assert.Equal("Attr1(100)", context.OperationBlocks[1].Syntax.ToString()); 27214Assert.Equal("= 1", context.OperationBlocks[0].Syntax.ToString()); 27217Assert.Equal("Attr2(200)", context.OperationBlocks[1].Syntax.ToString()); 27220Assert.Equal("A(2)", context.OperationBlocks[2].Syntax.ToString()); 27228Assert.Equal("= 4", context.OperationBlocks[0].Syntax.ToString()); 27231Assert.Equal("Attr3(300)", context.OperationBlocks[1].Syntax.ToString()); 27236Assert.Equal(": base(5)", context.OperationBlocks[3].Syntax.ToString());
Semantics\TopLevelStatementsTests.cs (15)
6709Assert.Same(context.ContainingSymbol.DeclaringSyntaxReferences.Single().SyntaxTree, context.Operation.Syntax.SyntaxTree); 6711Assert.Equal(SyntaxKind.InvocationExpression, context.Operation.Syntax.Kind()); 6713switch (context.Operation.Syntax.ToString()) 6730Assert.Same(context.ContainingSymbol.DeclaringSyntaxReferences.Single().GetSyntax(), context.Operation.Syntax); 6731Assert.Equal(SyntaxKind.CompilationUnit, context.Operation.Syntax.Kind()); 6733switch (context.Operation.Syntax.ToString()) 6789Assert.Equal(SyntaxKind.CompilationUnit, context.OperationBlocks.Single().Syntax.Kind()); 6791switch (context.OperationBlocks.Single().Syntax.ToString()) 6847Assert.Equal(SyntaxKind.CompilationUnit, context.OperationBlocks.Single().Syntax.Kind()); 6849switch (context.OperationBlocks.Single().Syntax.ToString()) 7341Assert.Equal(SyntaxKind.CompilationUnit, context.OperationBlocks.Single().Syntax.Kind()); 7343switch (context.OperationBlocks.Single().Syntax.ToString()) 7408Assert.Same(context.ContainingSymbol.DeclaringSyntaxReferences.Single().GetSyntax(), context.Operation.Syntax); 7409Assert.Equal(SyntaxKind.CompilationUnit, context.Operation.Syntax.Kind()); 7411switch (context.Operation.Syntax.ToString())
Microsoft.CodeAnalysis.CSharp.Workspaces (6)
CastSimplifier.cs (2)
796if (IsExplicitCast(conversionOperation.Syntax)) 1287var argumentSyntax = argument?.Syntax as ArgumentSyntax;
CSharpUseImplicitTypeHelper.cs (1)
250var argumentOp = invocationOp.Arguments.FirstOrDefault(a => a.Syntax == argument);
NullableHelpers.cs (3)
61var foreachInfo = semanticModel.GetForEachStatementInfo((CommonForEachStatementSyntax)forEachLoop.Syntax); 79? variableDeclarator.GetVariableInitializer()!.Value.Syntax 80: reference.Syntax;
Microsoft.CodeAnalysis.Features (98)
AbstractConvertTypeOfToNameOfDiagnosticAnalyzer.cs (1)
38var node = context.Operation.Syntax;
AbstractPopulateSwitchDiagnosticAnalyzer.cs (1)
51if (switchOperation.Syntax is not TSwitchSyntax switchBlock || IsSwitchTypeUnknown(switchOperation))
AbstractQualifyMemberAccessDiagnosticAnalyzer.cs (2)
104if (!CanMemberAccessBeQualified(context.ContainingSymbol, instanceOperation.Syntax)) 112if (instanceOperation.Syntax is not TSimpleNameSyntax simpleName)
AbstractRemoveRedundantEqualityDiagnosticAnalyzer.cs (3)
47if (!_syntaxFacts.IsBinaryExpression(operation.Syntax)) 67_syntaxFacts.GetPartsOfBinaryExpression(operation.Syntax, out _, out var operatorToken, out _); 82additionalLocations: new[] { operation.Syntax.GetLocation() },
AbstractRemoveUnnecessaryAttributeSuppressionsDiagnosticAnalyzer.cs (1)
115reportDiagnostic(Diagnostic.Create(LegacyFormatTargetDescriptor, targetValueOperation.Syntax.GetLocation(), properties!, targetSymbolString));
AbstractRemoveUnusedMembersDiagnosticAnalyzer.cs (1)
363var symbolInfo = nameofArgument.SemanticModel.GetSymbolInfo(nameofArgument.Syntax, operationContext.CancellationToken);
AbstractRemoveUnusedParametersAndValuesDiagnosticAnalyzer.SymbolStartAnalyzer.BlockAnalyzer.cs (4)
80if (!symbolStartAnalyzer._compilationAnalyzer.TryGetOptions(firstBlock.Syntax.SyntaxTree, 107if (operationBlock.Syntax.GetDiagnostics().ToImmutableArrayOrEmpty().HasAnyErrors()) 118if (operationBlock.Syntax.DescendantNodes(descendIntoTrivia: true) 183value.Syntax.GetLocation(),
AbstractSimplifyInterpolationCodeFixProvider.cs (1)
62if (interpolation?.Syntax is TInterpolationSyntax interpolationSyntax &&
AbstractSimplifyInterpolationDiagnosticAnalyzer.cs (1)
70additionalLocations: ImmutableArray.Create(interpolation.Syntax.GetLocation()),
AbstractSimplifyInterpolationHelpers.cs (7)
50.SelectAsArray(interpolation.Syntax.SyntaxTree.GetLocation); 83!syntaxFacts.IsBaseExpression(instance.Syntax) && 97unnecessarySpans.AddRange(invocation.Syntax.Span 99.Subtract(GetSpanWithinLiteralQuotes(virtualCharService, literal.Syntax.GetFirstToken()))); 112unnecessarySpans.AddRange(invocation.Syntax.Span 214var alignmentSyntax = alignmentOp.Syntax; 220unnecessarySpans.AddRange(invocation.Syntax.Span
AbstractSimplifyLinqExpressionDiagnosticAnalyzer.cs (4)
115if (context.Operation.Syntax.GetDiagnostics().Any(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error)) 152nextInvocation.Syntax.GetLocation(), 167if (invocation.Syntax is TInvocationExpressionSyntax invocationNode && 179if (invocation.Syntax is TInvocationExpressionSyntax invocationNode &&
AbstractUseConditionalExpressionCodeFixProvider.cs (4)
107var condition = ifOperation.Condition.Syntax; 123trueValue.Syntax, falseValue.Syntax, fallbackOptions, cancellationToken).ConfigureAwait(false); 172var sourceSyntax = value.Syntax.WithoutTrivia();
AbstractUseConditionalExpressionDiagnosticAnalyzer.cs (1)
44if (ifOperation.Syntax is not TIfStatementSyntax ifStatement)
AbstractUseConditionalExpressionForAssignmentCodeFixProvider.cs (6)
110var ifStatement = (TIfStatementSyntax)ifOperation.Syntax; 113assignment.Target.Syntax, 117ifOperation.Syntax, 135var localDeclaration = localDeclarationOperation.Syntax; 149editor.RemoveNode(ifOperation.Syntax, GetRemoveOptions(syntaxFacts, ifOperation.Syntax));
AbstractUseConditionalExpressionForReturnCodeFixProvider.cs (2)
90editor.RemoveNode(falseStatement.Syntax, GetRemoveOptions(syntaxFacts, falseStatement.Syntax));
AbstractUseThrowExpressionDiagnosticAnalyzer.cs (9)
77var throwStatementSyntax = throwOperation.Syntax; 129ifOperation.Syntax.GetLocation(), 130throwOperation.Exception.Syntax.GetLocation(), 131assignmentExpression.Value.Syntax.GetLocation(), 132expressionStatement.Syntax.GetLocation()); 149statements[ifOperationIndex + 1].Syntax, 150statements[expressionStatementIndex - 1].Syntax); 161var exprDataFlow = semanticModel.AnalyzeDataFlow(assignmentExpression.Target.Syntax); 274var throwStatement = throwOperation.Syntax;
AnalyzerOptionsProvider.cs (1)
142=> GetAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree);
ConvertIfToSwitch\AbstractConvertIfToSwitchCodeRefactoringProvider.Analyzer.cs (17)
88sections.Add(new AnalyzedSwitchSection(labels: default, defaultBodyOpt, defaultBodyOpt.Syntax)); 189return new AnalyzedSwitchSection(labels.ToImmutable(), operation.WhenTrue, operation.Syntax); 280ConstantResult.Left when op.LeftOperand.Syntax is TExpressionSyntax left 282ConstantResult.Right when op.RightOperand.Syntax is TExpressionSyntax right 315if (Supports(Feature.CaseGuard) && op.RightOperand.Syntax is TExpressionSyntax node) 325when Supports(Feature.IsTypePattern) && CheckTargetExpression(op.ValueOperand) && op.Syntax is TIsExpressionSyntax node: 329when Supports(Feature.SourcePattern) && CheckTargetExpression(op.Value) && op.Pattern.Syntax is TPatternSyntax pattern: 343ConstantResult.Left when op.LeftOperand.Syntax is TExpressionSyntax left 345ConstantResult.Right when op.RightOperand.Syntax is TExpressionSyntax right 378when CheckTargetExpression(low.Expression, high.Expression) => (low.Value.Syntax, high.Value.Syntax), 380when CheckTargetExpression(low.Expression, high.Expression) => (low.Value.Syntax, high.Value.Syntax), 385=> _syntaxFacts.AreEquivalent(left.Syntax, right.Syntax) && this.CheckTargetExpression(left); 446var expression = operation.Syntax; 466return CanImplicitlyConvert(operation.SemanticModel, operation.Syntax, _switchTargetType);
InitializeParameter\AbstractAddParameterCheckCodeRefactoringProvider.cs (7)
195var syntax = statement.Syntax; 202syntaxFacts.IsThrowExpression(coalesceExpression.WhenNull.Syntax)) 275if (!CanOffer(blockStatementOpt.Syntax)) 425return checkStatement.Syntax; 437return statementIndex > 0 ? blockStatement.Operations[statementIndex - 1].Syntax : null; 515assignmentExpression.Value.Syntax, 519var newRoot = root.ReplaceNode(assignmentExpression.Value.Syntax, coalesce);
InitializeParameter\AbstractInitializeMemberFromParameterCodeRefactoringProviderMemberCreation.cs (4)
396nodesToTrack.Add(blockStatement.Syntax); 418currentBlockStatement = (IBlockOperation?)currentSemanticModel.GetOperation(currentRoot.GetCurrentNode(blockStatement.Syntax)!, cancellationToken); 631return statement.Syntax; 636return statementIndex > 0 ? blockStatement.Operations[statementIndex - 1].Syntax : null;
InitializeParameter\AbstractInitializeParameterCodeRefactoringProvider.cs (1)
197foreach (var child in condition.Syntax.DescendantNodes().OfType<TExpressionSyntax>())
InlineMethod\AbstractInlineMethodRefactoringProvider.MethodParametersInfo.cs (9)
201_syntaxFacts.IsIdentifierName(argument.Value.Syntax) && argument.ArgumentKind == ArgumentKind.Explicit); 222_syntaxFacts.IsDeclarationExpression(argument.Value.Syntax) && argument.ArgumentKind == ArgumentKind.Explicit); 246_syntaxFacts.IsLiteralExpression(argument.Value.Syntax) && argument.ArgumentKind == ArgumentKind.Explicit); 299.WhereAsArray(argument => argument.Value.Syntax is TExpressionSyntax); 364callerSemanticModel.GetSymbolInfo(argument.Value.Syntax, cancellationToken).GetAnySymbol()?.Name)) 388.Where(argument => argument.Value.Syntax is TExpressionSyntax 389&& !_syntaxFacts.IsDeclarationExpression(argument.Value.Syntax)) 524initializer.ElementValues.SelectAsArray(op => op.Syntax))); 534return (TExpressionSyntax)syntaxGenerator.AddParentheses(argumentExpressionOperation.Syntax);
J\s\src\Analyzers\Core\Analyzers\UseConditionalExpression\UseConditionalExpressionHelpers.cs\UseConditionalExpressionHelpers.cs (5)
37if (syntaxFacts.SpansPreprocessorDirective(ifOperation.Syntax, whenFalse.Syntax)) 45if (HasRegularComments(syntaxFacts, whenTrue.Syntax) || 46HasRegularComments(syntaxFacts, whenFalse.Syntax)) 93if (!syntaxFacts.SupportsThrowExpression(anyThrow.Syntax.SyntaxTree.Options))
UseConditionalExpressionForAssignmentHelpers.cs (2)
47!syntaxFacts.AreEquivalent(trueAssignment.Target.Syntax, falseAssignment.Target.Syntax))
UseExplicitTupleNameDiagnosticAnalyzer.cs (1)
58var memberAccessSyntax = fieldReferenceOperation.Syntax;
UseSystemHashCodeDiagnosticAnalyzer.cs (1)
73var operationLocation = operation.Syntax.GetLocation();
ValueTracking\ValueTracker.OperationCollector.cs (2)
84var symbolInfo = semanticModel.GetSymbolInfo(operation.Syntax, cancellationToken); 181operation.Syntax.GetLocation(),
Microsoft.CodeAnalysis.Test.Utilities (151)
CommonTestBase.cs (2)
651VerifyOperationTreeSpine(semanticModel, set, child.Syntax); 655Assert.True(semanticModel.Root.FullSpan.Contains(child.Syntax.FullSpan));
Compilation\CompilationExtensions.cs (7)
303Assert.True(node == operation.Syntax, $"Expected : {node} - Actual : {operation.Syntax}"); 315roots.Add((operation, semanticModel.GetDeclaredSymbol(operation.Syntax))); 336explicitNodeMap.Add(operation.Syntax, operation); 340Assert.False(true, $"Duplicate explicit node for syntax ({operation.Syntax.RawKind}): {operation.Syntax.ToString()}"); 362if (blockOperation.Syntax.SyntaxTree.Options.Kind != SourceCodeKind.Script)
Compilation\ControlFlowGraphVerifier.cs (39)
78var declaredSymbol = model.GetDeclaredSymbol(operationRoot.Syntax); 349var model = compilation.GetSemanticModel(graph.OriginalOperation.Syntax.SyntaxTree); 350if (model.GetDiagnostics(graph.OriginalOperation.Syntax.Span). 526referencesAfter.All(r => isLongLivedCaptureReferenceSyntax(r.Syntax)), 546CSharpSyntaxNode syntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)candidate.Syntax); 583VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)candidate.Syntax); 610VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)candidate.Syntax); 635return reference.Syntax is CSharp.Syntax.SwitchExpressionSyntax switchExpr && switchExpr.Arms.Count == 0; 648CSharpSyntaxNode syntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)candidate.Syntax); 664VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)candidate.Syntax); 691CSharpSyntaxNode syntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)candidate.Syntax); 702VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)candidate.Syntax); 730VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)candidate.Syntax); 734if (query.Syntax is VisualBasic.Syntax.QueryExpressionSyntax querySyntax && 736aggregate.AggregateKeyword.SpanStart < candidate.Syntax.SpanStart && 737aggregate.IntoKeyword.SpanStart > candidate.Syntax.SpanStart && 867SyntaxNode captureReferenceSyntax = reference.Syntax; 905CSharpSyntaxNode referenceSyntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)reference.Syntax); 918CSharpSyntaxNode referenceSyntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)reference.Syntax); 949Syntax: CSharpSyntaxNode syntax 992if (binOp.Syntax is CSharp.Syntax.BinaryExpressionSyntax binOpSyntax && 994binOpSyntax.Left == applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)reference.Syntax) && 995binOpSyntax.Right == applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)binOp.RightOperand.Syntax)) 1002var referenceSyntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)reference.Syntax); 1003if (binOp.Syntax is VisualBasic.Syntax.BinaryExpressionSyntax binOpSyntax && 1006binOpSyntax.Right == applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)binOp.RightOperand.Syntax)) 1010else if (binOp.Syntax is VisualBasic.Syntax.RangeCaseClauseSyntax range && 1013range.UpperBound == applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)binOp.RightOperand.Syntax)) 1017else if (binOp.Syntax is VisualBasic.Syntax.CaseStatementSyntax caseStmt && 1021caseStmt.Cases.Contains(applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)binOp.RightOperand.Syntax) as CaseClauseSyntax)) 1038assignment.Syntax.Parent is VisualBasic.Syntax.ForStatementSyntax forStmt && 1039assignment.Syntax == forStmt.ControlVariable && 1040reference.Syntax == assignment.Syntax && 1041assignment.Value.Syntax == forStmt.StepClause.StepValue) 1051if (isLongLivedCaptureReferenceSyntax(reference.Syntax)) 1086CSharpSyntaxNode syntax = applyParenthesizedOrNullSuppressionIfAnyCS((CSharpSyntaxNode)isNull.Operand.Syntax); 1097VisualBasicSyntaxNode syntax = applyParenthesizedIfAnyVB((VisualBasicSyntaxNode)isNull.Operand.Syntax); 1118if (whenNotNull.Contains(candidate.Syntax))
Compilation\OperationTreeVerifier.cs (6)
131Assert.NotNull(operation.Syntax); 132LogString($" (Syntax: {GetSnippetFromSyntax(operation.Syntax)})"); 313_explicitNodeMap.Add(operation.Syntax, operation); 317Assert.False(true, $"Duplicate explicit node for syntax ({operation.Syntax.RawKind}): {operation.Syntax.ToString()}"); 334Assert.True(operation.Syntax.Language == operation.Language);
Compilation\TestOperationVisitor.cs (18)
46var syntax = operation.Syntax; 200explicitNodeMap.Add(descendant.Syntax, descendant); 204Assert.False(true, $"Duplicate explicit node for syntax ({descendant.Syntax.RawKind}): {descendant.Syntax.ToString()}"); 546Assert.False(operation.Instance.IsImplicit, $"Implicit {nameof(IInstanceReferenceOperation)} on {operation.Syntax}"); 576Assert.True(operation.Descendants().All(n => n.IsImplicit), $"Explicit node in default argument value ({operation.Syntax.RawKind}): {operation.Syntax.ToString()}"); 650Assert.False(operation.Instance.IsImplicit, $"Implicit {nameof(IInstanceReferenceOperation)} on {operation.Syntax}"); 739CheckOperators(operation.SemanticModel, operation.Syntax); 774CheckOperators(operation.SemanticModel, operation.Syntax); 1158if (operation.Syntax.Language == LanguageNames.CSharp) 1397if (operation.Syntax.IsKind(CSharp.SyntaxKind.VarPattern) || 1399operation.Syntax.IsKind(CSharp.SyntaxKind.SingleVariableDesignation)) 1411(operation.Syntax as CSharp.Syntax.DeclarationPatternSyntax)?.Designation ?? 1412(operation.Syntax as CSharp.Syntax.VarPatternSyntax)?.Designation ?? 1413(operation.Syntax as CSharp.Syntax.VariableDesignationSyntax); 1445var designation = (operation.Syntax as CSharp.Syntax.ListPatternSyntax)?.Designation; 1482var designation = (operation.Syntax as CSharp.Syntax.RecursivePatternSyntax)?.Designation;
Diagnostics\BoxingOperationAnalyzer.cs (2)
53Report(operationContext, conversion.Syntax); 66Report(operationContext, invocation.Instance.Syntax);
Diagnostics\CommonDiagnosticAnalyzers.cs (9)
1148return _controlFlowGraphMapOpt.Values.OrderBy(flowGraphAndSymbol => flowGraphAndSymbol.Graph.OriginalOperation.Syntax.SpanStart).ToImmutableArray(); 1243ReportDiagnostic(operationContext.ReportDiagnostic, operationContext.Operation.Syntax.GetLocation()); 1255ReportDiagnostic(operationContext.ReportDiagnostic, operationContext.Operation.Syntax.GetLocation()); 1335var diagnostic = Diagnostic.Create(Descriptor, operation.Syntax.GetLocation(), operation.Field.Name, operation.Field.ConstantValue); 1356var diagnostic = Diagnostic.Create(Descriptor, operationContext.Operation.Syntax.GetLocation(), operationContext.ContainingSymbol.Name); 1964operationContext.ReportDiagnostic(Diagnostic.Create(OperationRule, Location.None, symbolStartContext.Symbol.Name, operationContext.ContainingSymbol.Name, operationContext.Operation.Syntax.ToString(), _analyzerId)); 2039diagnostics.Add(Diagnostic.Create(OperationOrderingRule, Location.None, symbolStartContext.Symbol, operationContext.Operation.Syntax.ToString(), _analyzerId)); 2562context => context.ReportDiagnostic(Diagnostic.Create(Descriptor, context.Operation.Syntax.GetLocation())), 2617context.RegisterOperationAction(context => HandleCallback(context.Operation.Syntax.GetLocation(), context.Compilation, context.ReportDiagnostic, context.CancellationToken), OperationKind.VariableDeclaration);
Diagnostics\CouldHaveMoreSpecificTypeAnalyzer.cs (1)
66SyntaxNode syntax = increment.Syntax;
Diagnostics\EmptyArrayAnalyzer.cs (1)
83Report(operationContext, arrayCreation.Syntax);
Diagnostics\OperationTestAnalyzer.cs (66)
59operationContext.ReportDiagnostic(Diagnostic.Create(InvalidStatementDescriptor, operationContext.Operation.Syntax.GetLocation())); 63operationContext.ReportDiagnostic(Diagnostic.Create(InvalidExpressionDescriptor, operationContext.Operation.Syntax.GetLocation())); 73operationContext.ReportDiagnostic(Diagnostic.Create(IsInvalidDescriptor, operationContext.Operation.Syntax.GetLocation())); 109operationContext.ReportDiagnostic(Diagnostic.Create(ExpressionDescriptor, operationContext.Operation.Syntax.GetLocation())); 213Report(operationContext, forLoop.Syntax, BigForDescriptor); 453Report(operationContext, switchOperation.Value.Syntax, SparseSwitchDescriptor); 457Report(operationContext, switchOperation.Value.Syntax, NoDefaultSwitchDescriptor); 461Report(operationContext, switchOperation.Value.Syntax, OnlyDefaultSwitchDescriptor); 549operationContext.ReportDiagnostic(Diagnostic.Create(InvalidArgumentDescriptor, argument.Syntax.GetLocation())); 555operationContext.ReportDiagnostic(Diagnostic.Create(UseDefaultArgumentDescriptor, invocation.Syntax.GetLocation(), argument.Parameter.Name)); 569Report(operationContext, invocation.Syntax, BigParamArrayArgumentsDescriptor); 592Report(operationContext, argument.Syntax, OutOfNumericalOrderArgumentsDescriptor); 635operationContext.ReportDiagnostic(Diagnostic.Create(SeventeenDescriptor, literal.Syntax.GetLocation())); 670Report(operationContext, argument.Syntax, NullArgumentsDescriptor); 716Report(operationContext, initializer.Syntax, initializer.Kind == OperationKind.FieldReference ? DoNotUseFieldInitializerDescriptor : DoNotUsePropertyInitializerDescriptor); 757Report(operationContext, assignment.Syntax, DoNotUseMemberAssignmentDescriptor); 797Report(operationContext, initializer.Syntax, DoNotUseLargeListOfArrayInitializersDescriptor); 845Report(operationContext, declarationStatement.Syntax, TooManyLocalVarDeclarationsDescriptor); 905Report(operationContext, caseClause.Syntax, HasDefaultCaseDescriptor); 912Report(operationContext, switchSection.Syntax, MultipleCaseClausesDescriptor); 955instanceReference.Syntax.GetLocation())); 1034operationContext.ReportDiagnostic(Diagnostic.Create(EventReferenceDescriptor, operationContext.Operation.Syntax.GetLocation())); 1042operationContext.ReportDiagnostic(Diagnostic.Create(eventAssignment.Adds ? HandlerAddedDescriptor : HandlerRemovedDescriptor, operationContext.Operation.Syntax.GetLocation())); 1046operationContext.ReportDiagnostic(Diagnostic.Create(InvalidEventDescriptor, eventAssignment.Syntax.GetLocation())); 1054operationContext.ReportDiagnostic(Diagnostic.Create(PropertyReferenceDescriptor, operationContext.Operation.Syntax.GetLocation())); 1061operationContext.ReportDiagnostic(Diagnostic.Create(FieldReferenceDescriptor, operationContext.Operation.Syntax.GetLocation())); 1068operationContext.ReportDiagnostic(Diagnostic.Create(MethodBindingDescriptor, operationContext.Operation.Syntax.GetLocation())); 1111operationContext.ReportDiagnostic(Diagnostic.Create(LongParamsDescriptor, argument.Value.Syntax.GetLocation())); 1126operationContext.ReportDiagnostic(Diagnostic.Create(InvalidConstructorDescriptor, creation.Syntax.GetLocation())); 1138operationContext.ReportDiagnostic(Diagnostic.Create(LongParamsDescriptor, argument.Value.Syntax.GetLocation())); 1184operationContext.ReportDiagnostic(Diagnostic.Create(EqualsValueDescriptor, equalsValue.Syntax.GetLocation())); 1195operationContext.ReportDiagnostic(Diagnostic.Create(EqualsValueDescriptor, equalsValue.Syntax.GetLocation())); 1226operationContext.ReportDiagnostic(Diagnostic.Create(NoneOperationDescriptor, operationContext.Operation.Syntax.GetLocation())); 1262operationContext.ReportDiagnostic(Diagnostic.Create(AddressOfDescriptor, addressOfOperation.Syntax.GetLocation())); 1266operationContext.ReportDiagnostic(Diagnostic.Create(InvalidAddressOfReferenceDescriptor, addressOfOperation.Reference.Syntax.GetLocation())); 1314operationContext.ReportDiagnostic(Diagnostic.Create(LambdaExpressionDescriptor, operationContext.Operation.Syntax.GetLocation())); 1323operationContext.ReportDiagnostic(Diagnostic.Create(TooManyStatementsInLambdaExpressionDescriptor, operationContext.Operation.Syntax.GetLocation())); 1336operationContext.ReportDiagnostic(Diagnostic.Create(NoneOperationInLambdaExpressionDescriptor, operationContext.Operation.Syntax.GetLocation())); 1408operationContext.ReportDiagnostic(Diagnostic.Create(StaticMemberDescriptor, operation.Syntax.GetLocation())); 1412operationContext.ReportDiagnostic(Diagnostic.Create(StaticMemberWithInstanceDescriptor, operation.Syntax.GetLocation())); 1452operationContext.ReportDiagnostic(Diagnostic.Create(LabelDescriptor, operationContext.Operation.Syntax.GetLocation())); 1466operationContext.ReportDiagnostic(Diagnostic.Create(GotoDescriptor, branch.Syntax.GetLocation())); 1518operationContext.ReportDiagnostic(Diagnostic.Create(OperatorAddMethodDescriptor, binary.Syntax.GetLocation())); 1523operationContext.ReportDiagnostic(Diagnostic.Create(DoubleMultiplyDescriptor, binary.Syntax.GetLocation())); 1534operationContext.ReportDiagnostic(Diagnostic.Create(OperatorMinusMethodDescriptor, unary.Syntax.GetLocation())); 1539operationContext.ReportDiagnostic(Diagnostic.Create(BooleanNotDescriptor, unary.Syntax.GetLocation())); 1544operationContext.ReportDiagnostic(Diagnostic.Create(BooleanNotDescriptor, unary.Syntax.GetLocation())); 1574binary.Syntax.GetLocation(), 1627binary.Syntax.GetLocation(), 1651unary.Syntax.GetLocation(), 1707paramsarrayArgumentOperation.Syntax.GetLocation())); 1731if (operation.Syntax == null) 1791operationContext.ReportDiagnostic(Diagnostic.Create(InvalidBinaryDescriptor, binary.Syntax.GetLocation())); 1799operationContext.ReportDiagnostic(Diagnostic.Create(InvalidUnaryDescriptor, unary.Syntax.GetLocation())); 1807operationContext.ReportDiagnostic(Diagnostic.Create(InvalidIncrementDescriptor, inc.Syntax.GetLocation())); 1848operationContext.ReportDiagnostic(Diagnostic.Create(ConditionalAccessOperationDescriptor, conditionalAccess.Syntax.GetLocation())); 1857operationContext.ReportDiagnostic(Diagnostic.Create(ConditionalAccessInstanceOperationDescriptor, conditionalAccessInstance.Syntax.GetLocation())); 1897operationContext.ReportDiagnostic(Diagnostic.Create(InvalidConversionExpressionDescriptor, conversion.Syntax.GetLocation())); 1935operationContext.ReportDiagnostic(Diagnostic.Create(ForLoopConditionCrashDescriptor, forLoop.LimitValue.Syntax.GetLocation())); 1974operationContext.ReportDiagnostic(Diagnostic.Create(UnaryTrueDescriptor, unary.Syntax.GetLocation())); 1978operationContext.ReportDiagnostic(Diagnostic.Create(UnaryFalseDescriptor, unary.Syntax.GetLocation())); 2015operationContext.ReportDiagnostic(Diagnostic.Create(AssignmentOperationDescriptor, operationContext.Operation.Syntax.GetLocation())); 2052operationContext.ReportDiagnostic(Diagnostic.Create(LiteralDescriptor, literal.Syntax.GetLocation(), literal.Syntax.ToString())); 2080Diagnostic.Create(OperationActionDescriptor, operationContext.Operation.Syntax.GetLocation(), "Operation", "Analysis")); 2111Diagnostic.Create(OperationActionDescriptor, operationContext.Operation.Syntax.GetLocation(), "Operation", "CompilationStart within Analysis"));
Microsoft.CodeAnalysis.VisualBasic (3)
Operations\VisualBasicOperationFactory_Methods.vb (3)
260syntax = value.Syntax 336value.Syntax, 348Dim syntax As SyntaxNode = If(value.Syntax?.Parent, expression.Syntax)
Microsoft.CodeAnalysis.VisualBasic.CodeStyle (7)
VisualBasicAnalyzerOptionsProvider.vb (1)
117Return GetVisualBasicAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree)
VisualBasicConvertTypeOfToNameOfDiagnosticAnalyzer.vb (1)
22Dim node = context.Operation.Syntax
VisualBasicQualifyMemberAccessDiagnosticAnalyzer.vb (2)
41Dim unaryExpressionSyntax As UnaryExpressionSyntax = TryCast(operation.Syntax, UnaryExpressionSyntax) 46Return operation.Syntax.GetLocation()
VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (2)
47Return TryCast(expressionStatement.Syntax, CallStatementSyntax) IsNot Nothing 72Return unusedDefinition.Syntax.GetLocation()
VisualBasicSimplifyInterpolationHelpers.vb (1)
19Return operation.Syntax
Microsoft.CodeAnalysis.VisualBasic.CodeStyle.Fixes (1)
VisualBasicUseConditionalExpressionForAssignmentCodeFixProvider.vb (1)
47Return DirectCast(declarator.Syntax.Parent, VariableDeclaratorSyntax)
Microsoft.CodeAnalysis.VisualBasic.Features (12)
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.Analyzer.vb (2)
19Dim statements = operation.Syntax.GetStatements() 24Select Case operation.Syntax.Kind
ConvertIfToSwitch\VisualBasicConvertIfToSwitchCodeRefactoringProvider.Rewriting.vb (1)
31Dim node = operation.Syntax
InitializeParameter\InitializeParameterHelpers.vb (1)
44Return GetStatements(blockStatementOpt.Syntax).LastOrDefault()
VisualBasicAnalyzerOptionsProvider.vb (1)
117Return GetVisualBasicAnalyzerOptions(context.Options, context.Operation.Syntax.SyntaxTree)
VisualBasicConvertTypeOfToNameOfDiagnosticAnalyzer.vb (1)
22Dim node = context.Operation.Syntax
VisualBasicQualifyMemberAccessDiagnosticAnalyzer.vb (2)
41Dim unaryExpressionSyntax As UnaryExpressionSyntax = TryCast(operation.Syntax, UnaryExpressionSyntax) 46Return operation.Syntax.GetLocation()
VisualBasicRemoveUnusedParametersAndValuesDiagnosticAnalyzer.vb (2)
47Return TryCast(expressionStatement.Syntax, CallStatementSyntax) IsNot Nothing 72Return unusedDefinition.Syntax.GetLocation()
VisualBasicSimplifyInterpolationHelpers.vb (1)
19Return operation.Syntax
VisualBasicUseConditionalExpressionForAssignmentCodeFixProvider.vb (1)
47Return DirectCast(declarator.Syntax.Parent, VariableDeclaratorSyntax)
Microsoft.CodeAnalysis.VisualBasic.Semantic.UnitTests (5)
Diagnostics\GetDiagnosticsTests.vb (5)
641AnalyzeNode(context.Operation.Syntax, context.ContainingSymbol, AddressOf context.ReportDiagnostic) 646context.ReportDiagnostic(CodeAnalysis.Diagnostic.Create(DescriptorForBlockEnd, operationBlock.Syntax.GetLocation())) 648If TryCast(operationBlock.Syntax, PropertyBlockSyntax) IsNot Nothing OrElse 649TryCast(operationBlock.Syntax, EventBlockSyntax) IsNot Nothing Then 650Throw New Exception($"Unexpected topmost node for operation block '{operationBlock.Syntax.Kind()}'")
Microsoft.CodeAnalysis.Workspaces (1)
SymbolUsageAnalysis.DataFlowAnalyzer.FlowGraphAnalysisData.cs (1)
194var dataFlow = operation.SemanticModel.AnalyzeDataFlow(operation.Syntax);
Roslyn.Compilers.VisualBasic.IOperation.UnitTests (6)
IOperation\IOperationTests_IBranchOperation.Extensions.vb (4)
329Assert.Equal(result.expected.Syntax, result.actual.Syntax) 336Assert.Equal(result.expected.Syntax, result.actual.Syntax)
IOperation\IOperationTests_IUsingStatement.vb (2)
45Assert.NotNull(op.Resources.Syntax) 46Assert.Same(node.UsingStatement, op.Resources.Syntax)