Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AnalyzeTypeIs() [1/2]

static AnalyzeTypeIsResult System.Linq.Expressions.ConstantCheck.AnalyzeTypeIs ( Expression operand,
Type testType )
inlinestaticprivate

Definition at line 22 of file ConstantCheck.cs.

23 {
24 Type type = operand.Type;
25 if (type == typeof(void))
26 {
27 if (!(testType == typeof(void)))
28 {
29 return AnalyzeTypeIsResult.KnownFalse;
30 }
31 return AnalyzeTypeIsResult.KnownTrue;
32 }
33 if (testType == typeof(void) || testType.IsPointer)
34 {
35 return AnalyzeTypeIsResult.KnownFalse;
36 }
37 Type nonNullableType = type.GetNonNullableType();
38 Type nonNullableType2 = testType.GetNonNullableType();
39 if (nonNullableType2.IsAssignableFrom(nonNullableType))
40 {
41 if (type.IsValueType && !type.IsNullableType())
42 {
43 return AnalyzeTypeIsResult.KnownTrue;
44 }
45 return AnalyzeTypeIsResult.KnownAssignable;
46 }
47 return AnalyzeTypeIsResult.Unknown;
48 }

References System.Type.IsAssignableFrom(), System.Type.IsPointer, System.Linq.Expressions.Expression< TDelegate >.Type, and System.type.