1 write to Operator
Microsoft.CodeAnalysis.CSharp (1)
Generated\BoundNodes.xml.Generated.cs (1)
1775this.Operator = @operator;
52 references to Operator
Microsoft.CodeAnalysis.CSharp (52)
Binder\Binder.ValueChecks.cs (4)
3717(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4087(compoundAssignmentOperator.Operator.Method is not { } compoundMethod || 4498if (compound.Operator.Method is { } compoundMethod) 5292if (compound.Operator.Method is { } compoundMethod)
Binder\RefSafetyAnalysis.cs (1)
552if (!node.HasErrors && node.Operator.Method is { } compoundMethod)
BoundTree\BoundExpression.cs (1)
454get { return this.Operator.Method; }
BoundTree\NullabilityRewriter.cs (1)
148var op = node.Operator;
Compilation\CSharpSemanticModel.cs (9)
3927BinaryOperatorKind operandType = compoundAssignment.Operator.Kind.OperandTypes(); 3928BinaryOperatorKind op = compoundAssignment.Operator.Kind.Operator(); 3929isDynamic = compoundAssignment.Operator.Kind.IsDynamic(); 3935GetSymbolsAndResultKind(compoundAssignment, compoundAssignment.Operator.Method, compoundAssignment.OriginalUserDefinedOperatorsOpt, out symbols, out resultKind); 3940Debug.Assert((object)compoundAssignment.Operator.Method == null && compoundAssignment.OriginalUserDefinedOperatorsOpt.IsDefaultOrEmpty); 3943compoundAssignment.Operator.LeftType, 3944compoundAssignment.Operator.RightType, 3945compoundAssignment.Operator.ReturnType, 3946compoundAssignment.Operator.Kind.IsChecked()));
FlowAnalysis\NullableWalker.cs (6)
11118if (node.Operator.Method is { } method ? 11122if (node.Operator.Method is { } instanceMethod) 11162SetUpdatedSymbol(node, node.Operator.Method, instanceMethod); 11206node.Operator.Kind, 11207node.Operator.Method, 11208node.Operator.ReturnType ?? node.Type,
FlowAnalysis\NullableWalker.DebugVerifier.cs (1)
278!(node.Operator.Method is { IsStatic: false } method && method.GetIsNewExtensionMember()))
Generated\BoundNodes.xml.Generated.cs (3)
1802if (@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)) 11101return node.Update(node.Operator, left, right, leftPlaceholder, leftConversion, finalPlaceholder, finalConversion, node.ResultKind, originalUserDefinedOperatorsOpt, type); 15485new 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.GetIsNewExtensionMember())); 49node.Operator.Method, 70node.Operator.Method, 79return MakeInstanceCompoundAssignmentOperatorResult(node.Syntax, node.Left, node.Right, node.Operator.Method, node.Operator.Kind.IsChecked()); 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(),