| --- A._ |
| B0 = EntryBlock() |
| v6 = Constant(null) |
| v1 = Parameter(this) |
| TypeParameters(v1) |
| DirectCall Object.(v1) |
| Return(v6) |
| |
| --- A.bar |
| B0 = EntryBlock() |
| v4 = Constant(<int>) |
| v6 = Constant(1) |
| v8 = Constant(null) |
| v11 = Constant(2) |
| v1 = Parameter(this) |
| v3 = TypeParameters(v1) |
| InterfaceCall A.foo(v4, v1, v6) |
| v9 = TypeArguments(v3, v8, <Map<String, A.T%>>) |
| InterfaceCall A.foo(v9, v1, v11) |
| Return(v8) |
| |
| --- A.foo |
| B0 = EntryBlock() dominates:(B12, B14, B11) |
| v9 = Constant(null) |
| v1 = Parameter(#functionTypeParameters) |
| v2 = Parameter(this) |
| v3 = Parameter(o) |
| TypeParameters(v1) |
| v7 = TypeParameters(v2) |
| v10 = TypeTest(v3, v7, v9, List<A.T%>) |
| Branch(v10, true: B11, false: B12) |
| B11 = TargetBlock() idom:B0 |
| v17 = TypeCast(v3, v7, v9, List<A.T%>, unchecked) |
| TypeCast(v17, Map<dynamic, dynamic>) |
| Goto(B14) |
| B12 = TargetBlock() idom:B0 |
| Goto(B14) |
| B14 = JoinBlock(B12, B11) idom:B0 |
| Return(v9) |
| |
| --- A.baz |
| B0 = EntryBlock() |
| v7 = Constant(TypeLiteralConstant(List<dynamic>)) |
| v9 = Constant(null) |
| v1 = Parameter(#functionTypeParameters) |
| v2 = Parameter(this) |
| v4 = TypeParameters(v1) |
| v6 = TypeParameters(v2) |
| DirectCall print(v7) |
| v10 = TypeLiteral(A.T%, v6, v9) |
| DirectCall print(v10) |
| v12 = TypeLiteral(Map<A.baz.S%, A.T%>, v6, v4) |
| DirectCall print(v12) |
| Return(v9) |
| |
| --- A. |
| B0 = EntryBlock() |
| v4 = Constant(null) |
| v1 = Parameter(#functionTypeParameters) |
| v3 = TypeParameters(v1) |
| v5 = TypeArguments(v4, v3, <A..T%>) |
| v6 = AllocateObject A<A..T%>(v5) |
| DirectCall A._(v6) |
| Return(v6) |
| |
| --- main |
| B0 = EntryBlock() |
| v1 = Constant(null) |
| Return(v1) |
| |