class A {} | |
class B extends A {} | |
final bool kTrue = int.parse('1') == 1; | |
final dynamic smiValue = kTrue == 1 ? 1 : 'a'; | |
final A barValue = kTrue ? B() : A(); | |
main() { | |
// Inlined AssertAssignable has to perform Smi check on LoadClassId. | |
smiValue as String; | |
// Inlined AssertAssignable can omit Smi check on LoadClassId. | |
barValue as B; | |
foo<int>(1); | |
foo<String>('a'); | |
} | |
@pragma('vm:never-inline') | |
T foo<T>(dynamic arg) => arg as T; |