static UnaryOperator()
{
BuiltInIdentitySignatures = IntrinsicTypes.AllNumericTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.Plus, x)).ToArray();
BuiltInNegationSignatures = IntrinsicTypes.AllNumericTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.Minus, x)).ToArray();
BuiltInBitwiseNotSignatures = IntrinsicTypes.AllIntegralTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.BitwiseNot, x)).ToArray();
BuiltInLogicalNotSignatures = IntrinsicTypes.AllNumericTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.LogicalNot, TypeFacts.GetMatchingBoolType(x), x)).ToArray();
BuiltInPostDecrementSignatures = IntrinsicTypes.AllNumericNonBoolTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.PostDecrement, x)).ToArray();
BuiltInPostIncrementSignatures = IntrinsicTypes.AllNumericNonBoolTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.PostIncrement, x)).ToArray();
BuiltInPreDecrementSignatures = IntrinsicTypes.AllNumericNonBoolTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.PreDecrement, x)).ToArray();
BuiltInPreIncrementSignatures = IntrinsicTypes.AllNumericNonBoolTypes.Select(x => new UnaryOperatorSignature(UnaryOperatorKind.PreIncrement, x)).ToArray();
}