1 write to Operator
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1779this.Operator = @operator;
54 references to Operator
Microsoft.CodeAnalysis.CSharp (53)
Binder\Binder.ValueChecks.cs (5)
295var method = compoundOperator.Operator.Method; 3931(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4277(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4657if (compound.Operator.Method is { } compoundMethod) 5419if (compound.Operator.Method is { } compoundMethod)
Binder\RefSafetyAnalysis.cs (1)
613if (!node.HasErrors && node.Operator.Method is { } compoundMethod)
BoundTree\BoundExpression.cs (1)
455get { return this.Operator.Method; }
BoundTree\NullabilityRewriter.cs (1)
183var op = node.Operator;
Compilation\CSharpSemanticModel.cs (9)
3922BinaryOperatorKind operandType = compoundAssignment.Operator.Kind.OperandTypes(); 3923BinaryOperatorKind op = compoundAssignment.Operator.Kind.Operator(); 3924isDynamic = compoundAssignment.Operator.Kind.IsDynamic(); 3930GetSymbolsAndResultKind(compoundAssignment, compoundAssignment.Operator.Method, compoundAssignment.OriginalUserDefinedOperatorsOpt, out symbols, out resultKind); 3935Debug.Assert((object)compoundAssignment.Operator.Method == null && compoundAssignment.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty); 3938compoundAssignment.Operator.LeftType, 3939compoundAssignment.Operator.RightType, 3940compoundAssignment.Operator.ReturnType, 3941compoundAssignment.Operator.Kind.IsChecked()));
FlowAnalysis\NullableWalker.cs (6)
11265if (node.Operator.Method is { } method ? 11269if (node.Operator.Method is { } instanceMethod) 11308SetUpdatedSymbol(node, node.Operator.Method, instanceMethod); 11352node.Operator.Kind, 11353node.Operator.Method, 11354node.Operator.ReturnType ?? node.Type,
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
278!(node.Operator.Method is { IsStatic: false } method && method.IsExtensionBlockMember()))
Generated\BoundNodes.xml.Generated.cs (3)
1806if (@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)) 11120return node.Update(node.Operator, left, right, leftPlaceholder, leftConversion, finalPlaceholder, finalConversion, node.ResultKind, originalUserDefinedOperatorsOpt, type); 15506new TreeDumperNode("@operator", node.Operator, null),
Lowering\DiagnosticsPass_Warnings.cs (5)
288if (!node.Operator.Kind.IsDynamic() && node.LeftConversion is BoundConversion { Conversion: { IsIdentity: false, Exists: true } conversion }) 291left = new BoundConversion(left.Syntax, left, conversion, node.Operator.Kind.IsChecked(), 292explicitCastInCode: false, conversionGroupOpt: null, constantValueOpt: null, type: node.Operator.LeftType); 295CheckForBitwiseOrSignExtend(node, node.Operator.Kind, left, node.Right); 721if (!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)
1359BinaryOperatorKind operatorKind = Helper.DeriveBinaryOperatorKind(boundCompoundAssignmentOperator.Operator.Kind); 1362bool isLifted = boundCompoundAssignmentOperator.Operator.Kind.IsLifted(); 1363var method = boundCompoundAssignmentOperator.Operator.Method; 1364bool isChecked = boundCompoundAssignmentOperator.Operator.Kind.IsChecked() || (method is not null && SyntaxFacts.IsCheckedOperator(method.Name)); 1370GetConstrainedToTypeForOperator(method, boundCompoundAssignmentOperator.Operator.ConstrainedToTypeOpt).GetPublicSymbol(),
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (1)
Semantics\OperatorTests.cs (1)
8828var op = visitor.FirstNode.Operator;