1 write to Operator
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1822this.Operator = @operator;
52 references to Operator
Microsoft.CodeAnalysis.CSharp (51)
Binder\Binder.ValueChecks.cs (5)
294var method = compoundOperator.Operator.Method; 3959(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4297(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4665if (compound.Operator.Method is { } compoundMethod) 5420if (compound.Operator.Method is { } compoundMethod)
Binder\RefSafetyAnalysis.cs (1)
613if (!node.HasErrors && node.Operator.Method is { } compoundMethod)
BoundTree\BoundExpression.cs (1)
465get { return this.Operator.Method; }
BoundTree\NullabilityRewriter.cs (1)
183var op = node.Operator;
Compilation\CSharpSemanticModel.cs (9)
3933BinaryOperatorKind operandType = compoundAssignment.Operator.Kind.OperandTypes(); 3934BinaryOperatorKind op = compoundAssignment.Operator.Kind.Operator(); 3935isDynamic = compoundAssignment.Operator.Kind.IsDynamic(); 3941GetSymbolsAndResultKind(compoundAssignment, compoundAssignment.Operator.Method, compoundAssignment.OriginalUserDefinedOperatorsOpt, out symbols, out resultKind); 3946Debug.Assert((object)compoundAssignment.Operator.Method == null && compoundAssignment.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty); 3949compoundAssignment.Operator.LeftType, 3950compoundAssignment.Operator.RightType, 3951compoundAssignment.Operator.ReturnType, 3952compoundAssignment.Operator.Kind.IsChecked()));
FlowAnalysis\NullableWalker.cs (6)
11436if (node.Operator.Method is { } method ? 11440if (node.Operator.Method is { } instanceMethod) 11483SetUpdatedSymbol(node, node.Operator.Method, instanceMethod); 11527node.Operator.Kind, 11528node.Operator.Method, 11529node.Operator.ReturnType ?? node.Type,
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
292!(node.Operator.Method is { IsStatic: false } method && method.IsExtensionBlockMember()))
Generated\BoundNodes.xml.Generated.cs (3)
1849if (@operator != this.Operator || left != this.Left || right != this.Right || leftPlaceholder != this.LeftPlaceholder || leftConversion != this.LeftConversion || finalPlaceholder != this.FinalPlaceholder || finalConversion != this.FinalConversion || resultKind != this.ResultKind || originalUserDefinedOperatorsOpt != this.OriginalUserDefinedOperatorsOpt || !TypeSymbol.Equals(type, this.Type, TypeCompareKind.ConsiderEverything)) 11239return node.Update(node.Operator, left, right, leftPlaceholder, leftConversion, finalPlaceholder, finalConversion, node.ResultKind, originalUserDefinedOperatorsOpt, type); 15654new TreeDumperNode("@operator", node.Operator, null),
Lowering\DiagnosticsPass_Warnings.cs (3)
288if (!node.Operator.Kind.IsDynamic() && node.LeftConversion is BoundConversion { Conversion: { IsIdentity: false, Exists: true } conversion }) 294CheckForBitwiseOrSignExtend(node, node.Operator.Kind, left, node.Right); 720if (!node.Operator.Kind.IsLifted())
Lowering\LocalRewriter\LocalRewriter_CompoundAssignmentOperator.cs (16)
24Debug.Assert(TypeSymbol.Equals(node.Right.Type, node.Operator.RightType, TypeCompareKind.ConsiderEverything2)); 26if (node.Operator.Method?.IsStatic == false) 38Debug.Assert(node.Operator.Method is { }); 39Debug.Assert(node.LeftConversion is null || (node.Left.Type!.IsReferenceType && node.Operator.Method.IsExtensionBlockMember())); 49node.Operator.Method, 70node.Operator.Method, 79return MakeInstanceCompoundAssignmentOperatorResult(node.Syntax, node.Left, node.Right, node.Operator.Method, node.Operator.Kind.IsChecked(), AssignmentKind.CompoundAssignment); 88var kind = node.Operator.Kind; 204if (IsBinaryStringConcatenation(node.Operator.Kind)) 207Debug.Assert(node.Operator.ReturnType is { SpecialType: SpecialType.System_String }); 208operand = VisitCompoundAssignmentStringConcatenation(opLHS, right, node.Operator.Kind, node.Syntax); 213operand = MakeBinaryOperator(syntax, node.Operator.Kind, opLHS, loweredRight, node.Operator.ReturnType, node.Operator.Method, node.Operator.ConstrainedToTypeOpt, isCompoundAssignment: true);
Operations\CSharpOperationFactory.cs (5)
1409BinaryOperatorKind operatorKind = Helper.DeriveBinaryOperatorKind(boundCompoundAssignmentOperator.Operator.Kind); 1412bool isLifted = boundCompoundAssignmentOperator.Operator.Kind.IsLifted(); 1413var method = boundCompoundAssignmentOperator.Operator.Method; 1414bool isChecked = boundCompoundAssignmentOperator.Operator.Kind.IsChecked() || (method is not null && SyntaxFacts.IsCheckedOperator(method.Name)); 1420GetConstrainedToTypeForOperator(method, boundCompoundAssignmentOperator.Operator.ConstrainedToTypeOpt).GetPublicSymbol(),
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\OperatorTests.cs (1)
8828var op = visitor.FirstNode.Operator;