IL\TypeEqualityPatternAnalyzer.cs (25)
58private State _state;
67public readonly bool IsTypeEqualityCheck => _state is State.TypeEqualityCheck;
68public readonly bool IsTypeEqualityBranch => _state is State.Branch;
78(_state, _token1) = (State.LdToken, reader.PeekILToken());
80case State.LdToken:
82_state = State.TypeOf;
86case State.TypeOf:
88(_state, _token2) = (State.TypeOf_LdToken, reader.PeekILToken());
90_state = State.TypeOf_PushedOne;
92_state = State.TypeEqualityCheck;
94(_state, _flags) = (State.TypeEqualityCheck, _flags | Flags.Inequality);
98case State.TypeOf_LdToken:
100_state = State.TypeOf_TypeOf;
104case State.TypeOf_PushedOne:
110_state = State.TypeEqualityCheck;
112(_state, _flags) = (State.TypeEqualityCheck, _flags | Flags.Inequality);
116case State.TypeOf_TypeOf:
118(_state, _flags) = (State.TypeEqualityCheck, _flags | Flags.TwoTokens);
120(_state, _flags) = (State.TypeEqualityCheck, _flags | Flags.TwoTokens | Flags.Inequality);
124goto case State.TypeOf;
127case State.TypeEqualityCheck:
129_state = State.Branch;
131_state = State.TypeEqualityCheck_StlocLdloc;
135case State.TypeEqualityCheck_StlocLdloc:
136_state = opcode is ILOpcode.ldloc or ILOpcode.ldloc_s or (>= ILOpcode.ldloc_0 and <= ILOpcode.ldloc_3) ? State.TypeEqualityCheck