Fix the actual type reported by the type matcher
If an object has a difference between compiler and runtime type, then the type matcher would report the actual as the compiler type. The match would be successful, because it uses the runtime check (is_a?).