| // Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| class A {} |
| |
| class B {} |
| |
| class C {} |
| |
| class D {} |
| |
| class E {} |
| |
| /*member: Class1.:static=[Object.(0)]*/ |
| class Class1 { |
| /*member: Class1.field1: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSBool, |
| inst:JSNull, |
| param:A?] |
| */ |
| A? field1; |
| } |
| |
| /*member: method1: |
| dynamic=[Class1.field1=], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A?, |
| inst:Closure, |
| inst:JSBool, |
| is:Class1] |
| */ |
| method1(dynamic o, dynamic value) { |
| if (o is! Class1) return; |
| o.field1 = value; |
| } |
| |
| /*member: Class2.:static=[Object.(0)]*/ |
| class Class2<T> { |
| /*member: Class2.field2: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSNull, |
| inst:JSUnmodifiableArray<dynamic>, |
| param:Class2.T?] |
| */ |
| T? field2; |
| } |
| |
| /*member: method2: |
| dynamic=[Class2.field2=], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A?, |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSUnmodifiableArray<dynamic>, |
| is:Class2<A>] |
| */ |
| method2(dynamic o, dynamic value) { |
| if (o is! Class2<A>) return; |
| o.field2 = value; |
| } |
| |
| /*member: Class3.:static=[Object.(0)]*/ |
| class Class3 { |
| /*member: Class3.method3: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSBool, |
| inst:JSNull, |
| param:A, |
| param:B?, |
| param:C?] |
| */ |
| method3(A a, [B? b, C? c]) {} |
| } |
| |
| /*member: method3: |
| dynamic=[Class3.method3(3)], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A, |
| impl:C?, |
| inst:Closure, |
| inst:JSBool, |
| is:Class3, |
| param:B?] |
| */ |
| method3(dynamic o, dynamic a, B? b, dynamic c) { |
| if (o is! Class3) return; |
| o.method3(a, b, c); |
| } |
| |
| /*member: Class4.:static=[Object.(0)]*/ |
| class Class4 { |
| /*member: Class4.method4: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSBool, |
| inst:JSNull, |
| param:A, |
| param:B?, |
| param:C?] |
| */ |
| method4(A a, {B? b, C? c}) {} |
| } |
| |
| /*member: method4: |
| dynamic=[Class4.method4(1,b,c)], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A, |
| impl:C?, |
| inst:Closure, |
| inst:JSBool, |
| is:Class4, |
| param:B?] |
| */ |
| method4(dynamic o, dynamic a, B? b, dynamic c) { |
| if (o is! Class4) return; |
| o.method4(a, c: c, b: b); |
| } |
| |
| /*member: Class5.:static=[Object.(0)]*/ |
| class Class5<T1, T2> { |
| /*member: Class5.method5: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSNull, |
| inst:JSUnmodifiableArray<dynamic>, |
| param:C?, |
| param:Class5.T1, |
| param:Class5.T2?, |
| param:Object?, |
| param:method5.S1?, |
| param:method5.S2?] |
| */ |
| method5<S1, S2>(T1 a, [T2? b, C? c, S1? d, S2? e]) {} |
| } |
| |
| /*member: method5: |
| dynamic=[Class5.method5<D,E>(5)], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A, |
| impl:D?, |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSUnmodifiableArray<dynamic>, |
| is:Class5<A,B>, |
| param:B?, |
| param:C?, |
| param:E?] |
| */ |
| method5(dynamic o, dynamic a, B? b, C? c, dynamic d, E? e) { |
| if (o is! Class5<A, B>) return; |
| o.method5<D, E>(a, b, c, d, e); |
| } |
| |
| /*member: Class6.:static=[Object.(0)]*/ |
| class Class6<T1, T2> { |
| /*member: Class6.method6: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSNull, |
| inst:JSUnmodifiableArray<dynamic>, |
| param:C?, |
| param:Class6.T1, |
| param:Class6.T2?, |
| param:Object?, |
| param:method6.S1?, |
| param:method6.S2?] |
| */ |
| method6<S1, S2>(T1 a, {T2? b, C? c, S1? d, S2? e}) {} |
| } |
| |
| /*member: method6: |
| dynamic=[Class6.method6<D,E>(1,b,c,d,e)], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A, |
| impl:D?, |
| inst:Closure, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSUnmodifiableArray<dynamic>, |
| is:Class6<A,B>, |
| param:B?, |
| param:C?, |
| param:E?] |
| */ |
| method6(dynamic o, dynamic a, B? b, C? c, dynamic d, E? e) { |
| if (o is! Class6<A, B>) return; |
| o.method6<D, E>(a, d: d, b: b, e: e, c: c); |
| } |
| |
| /*member: Class7.:static=[Object.(0)]*/ |
| class Class7 { |
| /*member: Class7.f: |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| _setArrayType(2), |
| def:<anonymous>, |
| findType(1), |
| instanceType(1)], |
| type=[ |
| inst:Closure, |
| inst:Function, |
| inst:JSArray<dynamic>, |
| inst:JSBool, |
| inst:JSExtendableArray<dynamic>, |
| inst:JSFixedArray<dynamic>, |
| inst:JSMutableArray<dynamic>, |
| inst:JSUnmodifiableArray<dynamic>, |
| param:A] |
| */ |
| A Function(A) get f => |
| (a) => a; |
| } |
| |
| /*member: method7: |
| dynamic=[ |
| Class7.f(1), |
| call(1)], |
| static=[ |
| Rti._bind(1), |
| Rti._eval(1), |
| _arrayInstanceType(1), |
| _asBool(1), |
| _asBoolQ(1), |
| _asDouble(1), |
| _asDoubleQ(1), |
| _asInt(1), |
| _asIntQ(1), |
| _asNum(1), |
| _asNumQ(1), |
| _asObject(1), |
| _asString(1), |
| _asStringQ(1), |
| _asTop(1), |
| _generalAsCheckImplementation(1), |
| _generalIsTestImplementation(1), |
| _generalNullableAsCheckImplementation(1), |
| _generalNullableIsTestImplementation(1), |
| _installSpecializedAsCheck(1), |
| _installSpecializedIsTest(1), |
| _instanceType(1), |
| _isBool(1), |
| _isInt(1), |
| _isNum(1), |
| _isObject(1), |
| _isString(1), |
| _isTop(1), |
| findType(1), |
| instanceType(1)], |
| type=[ |
| impl:A, |
| inst:Closure, |
| inst:JSBool, |
| is:Class7] |
| */ |
| method7(dynamic o, dynamic a) { |
| if (o is! Class7) return; |
| o.f(a); |
| } |
| |
| class F<T> { |
| T? method(List<T> list) => null; |
| |
| T? field; |
| } |
| |
| class G extends F<int> {} |
| |
| /*member: main:%*/ |
| main() { |
| method1(new Class1(), null); |
| method2(new Class2<A>(), null); |
| method3(new Class3(), null, null, null); |
| method4(new Class4(), null, null, null); |
| method5(new Class5<A, B>(), null, null, null, null, null); |
| method6(new Class6<A, B>(), null, null, null, null, null); |
| method7(new Class7(), null); |
| } |