--- listLiterals
B0 = EntryBlock()
  v5 = Constant(<dynamic>)
  v6 = Constant(0)
  v9 = Constant(null)
  v13 = Constant(<int>)
  v14 = Constant(1)
  v15 = Constant(2)
  v16 = Constant(3)
  v19 = Constant(4)
  v20 = Constant(5)
  v21 = Constant(6)
  v22 = Constant(7)
  v23 = Constant(8)
  v24 = Constant(9)
  v1 = Parameter(#functionTypeParameters)
  v2 = Parameter(x)
  v4 = TypeParameters(v1)
  v7 = DirectCall _GrowableList.(v5, v6)
  DirectCall print(v7)
  v10 = TypeArguments(v9, v4, <listLiterals.T%>)
  v11 = DirectCall _GrowableList.(v10, v6)
  DirectCall print(v11)
  v17 = DirectCall _GrowableList._literal3(v13, v14, v15, v16)
  DirectCall print(v17)
  v25 = AllocateListLiteral(v13, v14, v15, v16, v19, v20, v21, v22, v23, v24)
  DirectCall print(v25)
  v37 = AllocateListLiteral(v10, v2, v2, v2, v2, v2, v2, v2, v2, v2)
  DirectCall print(v37)
  Return(v9)

--- mapLiterals
B0 = EntryBlock()
  v8 = Constant(<dynamic, dynamic>)
  v11 = Constant(null)
  v15 = Constant(<String, String>)
  v16 = Constant("a")
  v17 = Constant("aa")
  v18 = Constant("b")
  v19 = Constant("bb")
  v1 = Parameter(#functionTypeParameters)
  v2 = Parameter(key)
  v3 = Parameter(value)
  v4 = Parameter(key2)
  v5 = Parameter(value2)
  v7 = TypeParameters(v1)
  v9 = AllocateMapLiteral(v8)
  DirectCall print(v9)
  v12 = TypeArguments(v11, v7, <mapLiterals.S%, mapLiterals.T%>)
  v13 = AllocateMapLiteral(v12)
  DirectCall print(v13)
  v20 = AllocateMapLiteral(v15, v16, v17, v18, v19)
  DirectCall print(v20)
  v25 = ClosureCall(v3)
  v28 = AllocateMapLiteral(v12, v2, v25, v4, v5)
  DirectCall print(v28)
  Return(v11)

--- nullChecks
B0 = EntryBlock()
  v5 = Constant(null)
  Constant(1)
  Constant(2)
  v15 = Constant(42)
  Constant(false)
  v1 = Parameter(x)
  v3 = NullCheck(v1)
  DirectCall print(v3)
  DirectCall print(v15)
  Return(v5)

--- logical
B0 = EntryBlock() dominates:(B9, B13, B8)
  v11 = Constant(true)
  v26 = Constant(false)
  v55 = Constant(null)
  v1 = Parameter(x)
  v2 = Parameter(y)
  v3 = Parameter(z)
  v5 = UnaryBoolOp !(v1)
  DirectCall print(v5)
  Branch(v1, true: B8, false: B9)
B8 = TargetBlock() idom:B0
  Goto(B13)
B9 = TargetBlock() idom:B0
  v16 = ClosureCall(v2)
  Goto(B13)
B13 = JoinBlock(B9, B8) idom:B0 dominates:(B24, B28, B23)
  v57 = Phi(v16, v11)
  DirectCall print(v57)
  v22 = ClosureCall(v2)
  Branch(v22, true: B23, false: B24)
B23 = TargetBlock() idom:B13
  Goto(B28)
B24 = TargetBlock() idom:B13
  Goto(B28)
B28 = JoinBlock(B24, B23) idom:B13 dominates:(B37, B40, B36)
  v58 = Phi(v26, v1)
  DirectCall print(v58)
  Branch(v1, true: B36, false: B37)
B36 = TargetBlock() idom:B28 dominates:(B45, B44)
  v43 = ClosureCall(v2)
  Branch(v43, true: B44, false: B45)
B44 = TargetBlock() idom:B36
  Goto(B40)
B45 = TargetBlock() idom:B36
  v50 = UnaryBoolOp !(v3)
  Goto(B40)
B37 = TargetBlock() idom:B28
  Goto(B40)
B40 = JoinBlock(B37, B45, B44) idom:B28
  v59 = Phi(v11, v50, v26)
  DirectCall print(v59)
  Return(v55)

--- recordLiterals
B0 = EntryBlock()
  v19 = Constant(null)
  v1 = Parameter(#functionTypeParameters)
  v2 = Parameter(a)
  v3 = Parameter(b)
  v4 = Parameter(c)
  TypeParameters(v1)
  v8 = AllocateRecordLiteral(v2)
  DirectCall print(v8)
  v12 = AllocateRecordLiteral(v2, v3)
  DirectCall print(v12)
  v17 = AllocateRecordLiteral(v2, v3, v4)
  DirectCall print(v17)
  Return(v19)

--- recordFields
B0 = EntryBlock()
  v15 = Constant(null)
  v1 = Parameter(#functionTypeParameters)
  v2 = Parameter(r1)
  v3 = Parameter(r2)
  TypeParameters(v1)
  v7 = LoadInstanceField(#record-field[1], v2)
  DirectCall print(v7)
  v10 = LoadInstanceField(#record-field[0], v3)
  DirectCall print(v10)
  v13 = LoadInstanceField(#record-field[1:bar], v3)
  DirectCall print(v13)
  Return(v15)

--- main
B0 = EntryBlock()
  v1 = Constant(null)
  Return(v1)

