static private ConditionalReceiverTypeMismatch ( object p0, object p1 ) : |
||
p0 | object | |
p1 | object | |
return |
internal static void CheckConditionalAccess(Expression receiver, ConditionalReceiver nonNullReceiver, Expression whenNotNull) { RequiresCanRead(receiver, nameof(receiver)); RequiresNotNull(nonNullReceiver, nameof(nonNullReceiver)); RequiresCanRead(whenNotNull, nameof(whenNotNull)); var receiverType = receiver.Type; if (receiverType == typeof(void) || receiverType.IsByRef || (receiverType.IsValueType && !receiverType.IsNullableType())) { throw Error.InvalidConditionalReceiverExpressionType(receiverType); } var nonNullReceiverType = receiverType.GetNonNullReceiverType(); if (nonNullReceiverType != nonNullReceiver.Type) { throw Error.ConditionalReceiverTypeMismatch(receiverType, nonNullReceiverType); } }