63 references to BinaryOperatorSignature
Microsoft.CodeAnalysis.CSharp (45)
Binder\Binder_Operators.cs (4)
78
new
BinaryOperatorSignature
(
1107
resultSignature = new
BinaryOperatorSignature
(kind, leftType: null, rightType: null, CreateErrorType());
1140
resultSignature = new
BinaryOperatorSignature
(kind, leftType: null, rightType: null, CreateErrorType());
1168
resultSignature = new
BinaryOperatorSignature
(kind | BinaryOperatorKind.NullableNull, leftType: null, rightType: null,
Binder\Semantics\Operators\BinaryOperatorOverloadResolution.cs (35)
325
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Delegate, delegateType, delegateType, Compilation.GetSpecialType(SpecialType.System_Boolean)));
331
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Delegate, delegateType, delegateType, delegateType));
497
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.EnumAndUnderlyingAddition, enumType, underlying, enumType));
498
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.UnderlyingAndEnumAddition, underlying, enumType, enumType));
499
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedEnumAndUnderlyingAddition, nullableEnum, nullableUnderlying, nullableEnum));
500
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedUnderlyingAndEnumAddition, nullableUnderlying, nullableEnum, nullableEnum));
505
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.EnumSubtraction, enumType, enumType, underlying));
506
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.EnumAndUnderlyingSubtraction, enumType, underlying, enumType));
507
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedEnumSubtraction, nullableEnum, nullableEnum, nullableUnderlying));
508
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedEnumAndUnderlyingSubtraction, nullableEnum, nullableUnderlying, nullableEnum));
518
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.EnumSubtraction, enumType, enumType, underlying)
520
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.EnumAndUnderlyingSubtraction, enumType, underlying, enumType)
522
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedEnumSubtraction, nullableEnum, nullableEnum, nullableUnderlying)
524
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedEnumAndUnderlyingSubtraction, nullableEnum, nullableUnderlying, nullableEnum)
528
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.UnderlyingAndEnumSubtraction, underlying, enumType, enumType)
530
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LiftedUnderlyingAndEnumSubtraction, nullableUnderlying, nullableEnum, nullableEnum)
541
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Enum, enumType, enumType, boolean));
542
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Lifted | BinaryOperatorKind.Enum, nullableEnum, nullableEnum, boolean));
547
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Enum, enumType, enumType, enumType));
548
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Lifted | BinaryOperatorKind.Enum, nullableEnum, nullableEnum, nullableEnum));
564
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndIntAddition, pointerType, Compilation.GetSpecialType(SpecialType.System_Int32), pointerType));
565
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndUIntAddition, pointerType, Compilation.GetSpecialType(SpecialType.System_UInt32), pointerType));
566
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndLongAddition, pointerType, Compilation.GetSpecialType(SpecialType.System_Int64), pointerType));
567
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndULongAddition, pointerType, Compilation.GetSpecialType(SpecialType.System_UInt64), pointerType));
568
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.IntAndPointerAddition, Compilation.GetSpecialType(SpecialType.System_Int32), pointerType, pointerType));
569
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.UIntAndPointerAddition, Compilation.GetSpecialType(SpecialType.System_UInt32), pointerType, pointerType));
570
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.LongAndPointerAddition, Compilation.GetSpecialType(SpecialType.System_Int64), pointerType, pointerType));
571
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.ULongAndPointerAddition, Compilation.GetSpecialType(SpecialType.System_UInt64), pointerType, pointerType));
574
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndIntSubtraction, pointerType, Compilation.GetSpecialType(SpecialType.System_Int32), pointerType));
575
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndUIntSubtraction, pointerType, Compilation.GetSpecialType(SpecialType.System_UInt32), pointerType));
576
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndLongSubtraction, pointerType, Compilation.GetSpecialType(SpecialType.System_Int64), pointerType));
577
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerAndULongSubtraction, pointerType, Compilation.GetSpecialType(SpecialType.System_UInt64), pointerType));
578
operators.Add(new
BinaryOperatorSignature
(BinaryOperatorKind.PointerSubtraction, pointerType, pointerType, Compilation.GetSpecialType(SpecialType.System_Int64)));
596
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Pointer, voidPointerType, voidPointerType, Compilation.GetSpecialType(SpecialType.System_Boolean)));
799
operators.Add(new
BinaryOperatorSignature
(kind | BinaryOperatorKind.Object, @object, @object, Compilation.GetSpecialType(SpecialType.System_Boolean)));
Compilation\BuiltInOperators.cs (6)
696
static readonlySpanOfByte => new
BinaryOperatorSignature
(BinaryOperatorKind.Utf8Addition, readonlySpanOfByte, readonlySpanOfByte, readonlySpanOfByte),
714
return new
BinaryOperatorSignature
(kind, left, left, left);
716
return new
BinaryOperatorSignature
(kind, left, RightType(kind), ReturnType(kind));
725
return new
BinaryOperatorSignature
(kind, left, rightType, left);
733
return new
BinaryOperatorSignature
(kind, left, left, _compilation.GetSpecialType(SpecialType.System_Boolean));
735
return new
BinaryOperatorSignature
(kind, left, RightType(kind), ReturnType(kind));
Microsoft.CodeAnalysis.CSharp.Semantic.UnitTests (18)
Semantics\OperatorTests.cs (18)
8163
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Dynamic, leftType, rightType, leftType);
8167
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Dynamic, leftType, rightType, rightType);
8176
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Delegate,
8183
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Delegate,
8189
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Object, compilation.ObjectType, compilation.ObjectType,
8200
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.String, leftType, compilation.ObjectType, leftType);
8205
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.String, compilation.ObjectType, rightType, rightType);
8214
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Pointer, leftType, symbol1.Parameters[1].Type.GetSymbol(), leftType);
8219
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Pointer, symbol1.Parameters[0].Type.GetSymbol(), rightType, rightType);
8226
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.String, leftType, symbol1.Parameters[1].Type.GetSymbol(), leftType);
8231
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Pointer, leftType, rightType, compilation.GetSpecialType(SpecialType.System_Int64));
8238
signature = new
BinaryOperatorSignature
(signature.Kind | BinaryOperatorKind.EnumAndUnderlying, leftType, signature.RightType, leftType);
8245
signature = new
BinaryOperatorSignature
(signature.Kind | BinaryOperatorKind.EnumAndUnderlying, signature.LeftType, rightType, rightType);
8250
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Enum, leftType, rightType, leftType.EnumUnderlyingTypeOrSelf());
8260
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Enum, leftType, rightType, compilation.GetSpecialType(SpecialType.System_Boolean));
8267
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Enum, leftType, rightType, leftType);
8272
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Delegate, leftType, leftType, leftType);
8282
signature = new
BinaryOperatorSignature
(op | BinaryOperatorKind.Pointer,