mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 20:11:19 +00:00
[dart2js] Extends the graph_isomorphizer with more coverage.
This cl adds support for generating classes, classes used only for types, mixins, closures, and constants, to the graph_isomorphizer. Change-Id: I04e5590a9ff903b0b32daf1f4607fb1b0920e0cc Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189841 Commit-Queue: Joshua Litt <joshualitt@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>
This commit is contained in:
parent
c25e74852c
commit
d5f3189c91
|
@ -31,6 +31,7 @@ dependencies:
|
|||
dev_dependencies:
|
||||
# Published packages - repo version ensured via dependency_overrides
|
||||
args: any
|
||||
dart_style: any
|
||||
http: any
|
||||
js:
|
||||
path: ../js
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_100_0.dart' deferred as b1;
|
||||
|
||||
entryLib1() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_010_0.dart' deferred as b2;
|
||||
|
||||
entryLib2() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_001_0.dart' deferred as b3;
|
||||
|
||||
entryLib3() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_000_1.dart' deferred as b4;
|
||||
|
||||
entryLib4() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
void v(Set<String> u, String name, int bit) {
|
||||
|
@ -11,6 +10,854 @@ void v(Set<String> u, String name, int bit) {
|
|||
Expect.equals(name[bit], '1');
|
||||
}
|
||||
|
||||
class C_100_0 {
|
||||
const C_100_0();
|
||||
}
|
||||
|
||||
class M_100_0 {}
|
||||
|
||||
class T_100_0 {}
|
||||
|
||||
const C_100_0 iC_100_0 = const C_100_0();
|
||||
closureC_100_0(foo) =>
|
||||
(C_100_0 unused) => iC_100_0.toString() == foo.toString();
|
||||
|
||||
class C_110_0 {
|
||||
const C_110_0();
|
||||
}
|
||||
|
||||
class M_110_0 {}
|
||||
|
||||
class T_110_0 {}
|
||||
|
||||
const C_110_0 iC_110_0 = const C_110_0();
|
||||
closureC_110_0(foo) =>
|
||||
(C_110_0 unused) => iC_110_0.toString() == foo.toString();
|
||||
|
||||
class C_101_1 {
|
||||
const C_101_1();
|
||||
}
|
||||
|
||||
class M_101_1 {}
|
||||
|
||||
class T_101_1 {}
|
||||
|
||||
const C_101_1 iC_101_1 = const C_101_1();
|
||||
closureC_101_1(foo) =>
|
||||
(C_101_1 unused) => iC_101_1.toString() == foo.toString();
|
||||
|
||||
class C_111_1 {
|
||||
const C_111_1();
|
||||
}
|
||||
|
||||
class M_111_1 {}
|
||||
|
||||
class T_111_1 {}
|
||||
|
||||
const C_111_1 iC_111_1 = const C_111_1();
|
||||
closureC_111_1(foo) =>
|
||||
(C_111_1 unused) => iC_111_1.toString() == foo.toString();
|
||||
|
||||
class C_010_0 {
|
||||
const C_010_0();
|
||||
}
|
||||
|
||||
class M_010_0 {}
|
||||
|
||||
class T_010_0 {}
|
||||
|
||||
const C_010_0 iC_010_0 = const C_010_0();
|
||||
closureC_010_0(foo) =>
|
||||
(C_010_0 unused) => iC_010_0.toString() == foo.toString();
|
||||
|
||||
class C_010_1 {
|
||||
const C_010_1();
|
||||
}
|
||||
|
||||
class M_010_1 {}
|
||||
|
||||
class T_010_1 {}
|
||||
|
||||
const C_010_1 iC_010_1 = const C_010_1();
|
||||
closureC_010_1(foo) =>
|
||||
(C_010_1 unused) => iC_010_1.toString() == foo.toString();
|
||||
|
||||
class C_011_1 {
|
||||
const C_011_1();
|
||||
}
|
||||
|
||||
class M_011_1 {}
|
||||
|
||||
class T_011_1 {}
|
||||
|
||||
const C_011_1 iC_011_1 = const C_011_1();
|
||||
closureC_011_1(foo) =>
|
||||
(C_011_1 unused) => iC_011_1.toString() == foo.toString();
|
||||
|
||||
class C_001_0 {
|
||||
const C_001_0();
|
||||
}
|
||||
|
||||
class M_001_0 {}
|
||||
|
||||
class T_001_0 {}
|
||||
|
||||
const C_001_0 iC_001_0 = const C_001_0();
|
||||
closureC_001_0(foo) =>
|
||||
(C_001_0 unused) => iC_001_0.toString() == foo.toString();
|
||||
|
||||
class C_000_1 {
|
||||
const C_000_1();
|
||||
}
|
||||
|
||||
class M_000_1 {}
|
||||
|
||||
class T_000_1 {}
|
||||
|
||||
const C_000_1 iC_000_1 = const C_000_1();
|
||||
closureC_000_1(foo) =>
|
||||
(C_000_1 unused) => iC_000_1.toString() == foo.toString();
|
||||
|
||||
class C_110_0_class_1 extends C_100_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_110_0, C_101_1, C_111_1, C_010_0, C_010_1, C_011_1 {
|
||||
const C_110_0_class_1();
|
||||
}
|
||||
|
||||
const C_110_0_class_1 iC_110_0_class_1 = const C_110_0_class_1();
|
||||
closureC_110_0_class_1(foo) =>
|
||||
(C_110_0_class_1 unused) => iC_110_0_class_1.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__1 extends T_100_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_110_0, T_101_1, T_111_1, T_010_0, T_010_1, T_011_1 {}
|
||||
|
||||
class C_110_0_class_2 extends C_110_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_101_1, C_111_1, C_010_0, C_010_1, C_011_1 {
|
||||
const C_110_0_class_2();
|
||||
}
|
||||
|
||||
const C_110_0_class_2 iC_110_0_class_2 = const C_110_0_class_2();
|
||||
closureC_110_0_class_2(foo) =>
|
||||
(C_110_0_class_2 unused) => iC_110_0_class_2.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__2 extends T_110_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_101_1, T_111_1, T_010_0, T_010_1, T_011_1 {}
|
||||
|
||||
class C_110_0_class_3 extends C_101_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_110_0, C_111_1, C_010_0, C_010_1, C_011_1 {
|
||||
const C_110_0_class_3();
|
||||
}
|
||||
|
||||
const C_110_0_class_3 iC_110_0_class_3 = const C_110_0_class_3();
|
||||
closureC_110_0_class_3(foo) =>
|
||||
(C_110_0_class_3 unused) => iC_110_0_class_3.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__3 extends T_101_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_110_0, T_111_1, T_010_0, T_010_1, T_011_1 {}
|
||||
|
||||
class C_110_0_class_4 extends C_111_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_010_0, C_010_1, C_011_1 {
|
||||
const C_110_0_class_4();
|
||||
}
|
||||
|
||||
const C_110_0_class_4 iC_110_0_class_4 = const C_110_0_class_4();
|
||||
closureC_110_0_class_4(foo) =>
|
||||
(C_110_0_class_4 unused) => iC_110_0_class_4.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__4 extends T_111_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_010_0, T_010_1, T_011_1 {}
|
||||
|
||||
class C_110_0_class_5 extends C_010_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_111_1, C_010_1, C_011_1 {
|
||||
const C_110_0_class_5();
|
||||
}
|
||||
|
||||
const C_110_0_class_5 iC_110_0_class_5 = const C_110_0_class_5();
|
||||
closureC_110_0_class_5(foo) =>
|
||||
(C_110_0_class_5 unused) => iC_110_0_class_5.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__5 extends T_010_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_111_1, T_010_1, T_011_1 {}
|
||||
|
||||
class C_110_0_class_6 extends C_010_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_111_1, C_010_0, C_011_1 {
|
||||
const C_110_0_class_6();
|
||||
}
|
||||
|
||||
const C_110_0_class_6 iC_110_0_class_6 = const C_110_0_class_6();
|
||||
closureC_110_0_class_6(foo) =>
|
||||
(C_110_0_class_6 unused) => iC_110_0_class_6.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__6 extends T_010_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_111_1, T_010_0, T_011_1 {}
|
||||
|
||||
class C_110_0_class_7 extends C_011_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_111_1, C_010_0, C_010_1 {
|
||||
const C_110_0_class_7();
|
||||
}
|
||||
|
||||
const C_110_0_class_7 iC_110_0_class_7 = const C_110_0_class_7();
|
||||
closureC_110_0_class_7(foo) =>
|
||||
(C_110_0_class_7 unused) => iC_110_0_class_7.toString() == foo.toString();
|
||||
|
||||
class T_110_0_type__7 extends T_011_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_010_0, M_010_1, M_011_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_111_1, T_010_0, T_010_1 {}
|
||||
|
||||
class C_101_1_class_1 extends C_100_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_110_0, C_101_1, C_111_1, C_001_0, C_000_1 {
|
||||
const C_101_1_class_1();
|
||||
}
|
||||
|
||||
const C_101_1_class_1 iC_101_1_class_1 = const C_101_1_class_1();
|
||||
closureC_101_1_class_1(foo) =>
|
||||
(C_101_1_class_1 unused) => iC_101_1_class_1.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__1 extends T_100_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_110_0, T_101_1, T_111_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_101_1_class_2 extends C_110_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_100_0, C_101_1, C_111_1, C_001_0, C_000_1 {
|
||||
const C_101_1_class_2();
|
||||
}
|
||||
|
||||
const C_101_1_class_2 iC_101_1_class_2 = const C_101_1_class_2();
|
||||
closureC_101_1_class_2(foo) =>
|
||||
(C_101_1_class_2 unused) => iC_101_1_class_2.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__2 extends T_110_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_100_0, T_101_1, T_111_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_101_1_class_3 extends C_101_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_100_0, C_110_0, C_111_1, C_001_0, C_000_1 {
|
||||
const C_101_1_class_3();
|
||||
}
|
||||
|
||||
const C_101_1_class_3 iC_101_1_class_3 = const C_101_1_class_3();
|
||||
closureC_101_1_class_3(foo) =>
|
||||
(C_101_1_class_3 unused) => iC_101_1_class_3.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__3 extends T_101_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_100_0, T_110_0, T_111_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_101_1_class_4 extends C_111_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_001_0, C_000_1 {
|
||||
const C_101_1_class_4();
|
||||
}
|
||||
|
||||
const C_101_1_class_4 iC_101_1_class_4 = const C_101_1_class_4();
|
||||
closureC_101_1_class_4(foo) =>
|
||||
(C_101_1_class_4 unused) => iC_101_1_class_4.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__4 extends T_111_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_101_1_class_5 extends C_001_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_111_1, C_000_1 {
|
||||
const C_101_1_class_5();
|
||||
}
|
||||
|
||||
const C_101_1_class_5 iC_101_1_class_5 = const C_101_1_class_5();
|
||||
closureC_101_1_class_5(foo) =>
|
||||
(C_101_1_class_5 unused) => iC_101_1_class_5.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__5 extends T_001_0
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_111_1, T_000_1 {}
|
||||
|
||||
class C_101_1_class_6 extends C_000_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements C_100_0, C_110_0, C_101_1, C_111_1, C_001_0 {
|
||||
const C_101_1_class_6();
|
||||
}
|
||||
|
||||
const C_101_1_class_6 iC_101_1_class_6 = const C_101_1_class_6();
|
||||
closureC_101_1_class_6(foo) =>
|
||||
(C_101_1_class_6 unused) => iC_101_1_class_6.toString() == foo.toString();
|
||||
|
||||
class T_101_1_type__6 extends T_000_1
|
||||
with M_100_0, M_110_0, M_101_1, M_111_1, M_001_0, M_000_1
|
||||
implements T_100_0, T_110_0, T_101_1, T_111_1, T_001_0 {}
|
||||
|
||||
class C_111_1_class_1 extends C_100_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_1();
|
||||
}
|
||||
|
||||
const C_111_1_class_1 iC_111_1_class_1 = const C_111_1_class_1();
|
||||
closureC_111_1_class_1(foo) =>
|
||||
(C_111_1_class_1 unused) => iC_111_1_class_1.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__1 extends T_100_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_2 extends C_110_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_2();
|
||||
}
|
||||
|
||||
const C_111_1_class_2 iC_111_1_class_2 = const C_111_1_class_2();
|
||||
closureC_111_1_class_2(foo) =>
|
||||
(C_111_1_class_2 unused) => iC_111_1_class_2.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__2 extends T_110_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_3 extends C_101_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_3();
|
||||
}
|
||||
|
||||
const C_111_1_class_3 iC_111_1_class_3 = const C_111_1_class_3();
|
||||
closureC_111_1_class_3(foo) =>
|
||||
(C_111_1_class_3 unused) => iC_111_1_class_3.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__3 extends T_101_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_4 extends C_111_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_4();
|
||||
}
|
||||
|
||||
const C_111_1_class_4 iC_111_1_class_4 = const C_111_1_class_4();
|
||||
closureC_111_1_class_4(foo) =>
|
||||
(C_111_1_class_4 unused) => iC_111_1_class_4.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__4 extends T_111_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_5 extends C_010_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_5();
|
||||
}
|
||||
|
||||
const C_111_1_class_5 iC_111_1_class_5 = const C_111_1_class_5();
|
||||
closureC_111_1_class_5(foo) =>
|
||||
(C_111_1_class_5 unused) => iC_111_1_class_5.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__5 extends T_010_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_6 extends C_010_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_011_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_6();
|
||||
}
|
||||
|
||||
const C_111_1_class_6 iC_111_1_class_6 = const C_111_1_class_6();
|
||||
closureC_111_1_class_6(foo) =>
|
||||
(C_111_1_class_6 unused) => iC_111_1_class_6.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__6 extends T_010_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_011_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_7 extends C_011_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_001_0,
|
||||
C_000_1 {
|
||||
const C_111_1_class_7();
|
||||
}
|
||||
|
||||
const C_111_1_class_7 iC_111_1_class_7 = const C_111_1_class_7();
|
||||
closureC_111_1_class_7(foo) =>
|
||||
(C_111_1_class_7 unused) => iC_111_1_class_7.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__7 extends T_011_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_001_0,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_8 extends C_001_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_000_1 {
|
||||
const C_111_1_class_8();
|
||||
}
|
||||
|
||||
const C_111_1_class_8 iC_111_1_class_8 = const C_111_1_class_8();
|
||||
closureC_111_1_class_8(foo) =>
|
||||
(C_111_1_class_8 unused) => iC_111_1_class_8.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__8 extends T_001_0
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_000_1 {}
|
||||
|
||||
class C_111_1_class_9 extends C_000_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
C_100_0,
|
||||
C_110_0,
|
||||
C_101_1,
|
||||
C_111_1,
|
||||
C_010_0,
|
||||
C_010_1,
|
||||
C_011_1,
|
||||
C_001_0 {
|
||||
const C_111_1_class_9();
|
||||
}
|
||||
|
||||
const C_111_1_class_9 iC_111_1_class_9 = const C_111_1_class_9();
|
||||
closureC_111_1_class_9(foo) =>
|
||||
(C_111_1_class_9 unused) => iC_111_1_class_9.toString() == foo.toString();
|
||||
|
||||
class T_111_1_type__9 extends T_000_1
|
||||
with
|
||||
M_100_0,
|
||||
M_110_0,
|
||||
M_101_1,
|
||||
M_111_1,
|
||||
M_010_0,
|
||||
M_010_1,
|
||||
M_011_1,
|
||||
M_001_0,
|
||||
M_000_1
|
||||
implements
|
||||
T_100_0,
|
||||
T_110_0,
|
||||
T_101_1,
|
||||
T_111_1,
|
||||
T_010_0,
|
||||
T_010_1,
|
||||
T_011_1,
|
||||
T_001_0 {}
|
||||
|
||||
class C_010_1_class_1 extends C_010_0
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements C_010_1, C_011_1, C_000_1 {
|
||||
const C_010_1_class_1();
|
||||
}
|
||||
|
||||
const C_010_1_class_1 iC_010_1_class_1 = const C_010_1_class_1();
|
||||
closureC_010_1_class_1(foo) =>
|
||||
(C_010_1_class_1 unused) => iC_010_1_class_1.toString() == foo.toString();
|
||||
|
||||
class T_010_1_type__1 extends T_010_0
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements T_010_1, T_011_1, T_000_1 {}
|
||||
|
||||
class C_010_1_class_2 extends C_010_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements C_010_0, C_011_1, C_000_1 {
|
||||
const C_010_1_class_2();
|
||||
}
|
||||
|
||||
const C_010_1_class_2 iC_010_1_class_2 = const C_010_1_class_2();
|
||||
closureC_010_1_class_2(foo) =>
|
||||
(C_010_1_class_2 unused) => iC_010_1_class_2.toString() == foo.toString();
|
||||
|
||||
class T_010_1_type__2 extends T_010_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements T_010_0, T_011_1, T_000_1 {}
|
||||
|
||||
class C_010_1_class_3 extends C_011_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements C_010_0, C_010_1, C_000_1 {
|
||||
const C_010_1_class_3();
|
||||
}
|
||||
|
||||
const C_010_1_class_3 iC_010_1_class_3 = const C_010_1_class_3();
|
||||
closureC_010_1_class_3(foo) =>
|
||||
(C_010_1_class_3 unused) => iC_010_1_class_3.toString() == foo.toString();
|
||||
|
||||
class T_010_1_type__3 extends T_011_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements T_010_0, T_010_1, T_000_1 {}
|
||||
|
||||
class C_010_1_class_4 extends C_000_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements C_010_0, C_010_1, C_011_1 {
|
||||
const C_010_1_class_4();
|
||||
}
|
||||
|
||||
const C_010_1_class_4 iC_010_1_class_4 = const C_010_1_class_4();
|
||||
closureC_010_1_class_4(foo) =>
|
||||
(C_010_1_class_4 unused) => iC_010_1_class_4.toString() == foo.toString();
|
||||
|
||||
class T_010_1_type__4 extends T_000_1
|
||||
with M_010_0, M_010_1, M_011_1, M_000_1
|
||||
implements T_010_0, T_010_1, T_011_1 {}
|
||||
|
||||
class C_011_1_class_1 extends C_010_0
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements C_010_1, C_011_1, C_001_0, C_000_1 {
|
||||
const C_011_1_class_1();
|
||||
}
|
||||
|
||||
const C_011_1_class_1 iC_011_1_class_1 = const C_011_1_class_1();
|
||||
closureC_011_1_class_1(foo) =>
|
||||
(C_011_1_class_1 unused) => iC_011_1_class_1.toString() == foo.toString();
|
||||
|
||||
class T_011_1_type__1 extends T_010_0
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements T_010_1, T_011_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_011_1_class_2 extends C_010_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements C_010_0, C_011_1, C_001_0, C_000_1 {
|
||||
const C_011_1_class_2();
|
||||
}
|
||||
|
||||
const C_011_1_class_2 iC_011_1_class_2 = const C_011_1_class_2();
|
||||
closureC_011_1_class_2(foo) =>
|
||||
(C_011_1_class_2 unused) => iC_011_1_class_2.toString() == foo.toString();
|
||||
|
||||
class T_011_1_type__2 extends T_010_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements T_010_0, T_011_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_011_1_class_3 extends C_011_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements C_010_0, C_010_1, C_001_0, C_000_1 {
|
||||
const C_011_1_class_3();
|
||||
}
|
||||
|
||||
const C_011_1_class_3 iC_011_1_class_3 = const C_011_1_class_3();
|
||||
closureC_011_1_class_3(foo) =>
|
||||
(C_011_1_class_3 unused) => iC_011_1_class_3.toString() == foo.toString();
|
||||
|
||||
class T_011_1_type__3 extends T_011_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements T_010_0, T_010_1, T_001_0, T_000_1 {}
|
||||
|
||||
class C_011_1_class_4 extends C_001_0
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements C_010_0, C_010_1, C_011_1, C_000_1 {
|
||||
const C_011_1_class_4();
|
||||
}
|
||||
|
||||
const C_011_1_class_4 iC_011_1_class_4 = const C_011_1_class_4();
|
||||
closureC_011_1_class_4(foo) =>
|
||||
(C_011_1_class_4 unused) => iC_011_1_class_4.toString() == foo.toString();
|
||||
|
||||
class T_011_1_type__4 extends T_001_0
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements T_010_0, T_010_1, T_011_1, T_000_1 {}
|
||||
|
||||
class C_011_1_class_5 extends C_000_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements C_010_0, C_010_1, C_011_1, C_001_0 {
|
||||
const C_011_1_class_5();
|
||||
}
|
||||
|
||||
const C_011_1_class_5 iC_011_1_class_5 = const C_011_1_class_5();
|
||||
closureC_011_1_class_5(foo) =>
|
||||
(C_011_1_class_5 unused) => iC_011_1_class_5.toString() == foo.toString();
|
||||
|
||||
class T_011_1_type__5 extends T_000_1
|
||||
with M_010_0, M_010_1, M_011_1, M_001_0, M_000_1
|
||||
implements T_010_0, T_010_1, T_011_1, T_001_0 {}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
f_100_0(Set<String> u, int b) => v(u, '1000', b);
|
||||
@pragma('dart2js:noInline')
|
||||
|
|
|
@ -3,13 +3,220 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_000_1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__8) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__9) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_000_1() {
|
||||
// C_***_1;
|
||||
Expect.isFalse(typeTest(C_000_1()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_7()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_8()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_9()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_5()));
|
||||
|
||||
Expect.isTrue(closureC_000_1(C_000_1())(C_000_1()));
|
||||
Expect.isTrue(closureC_101_1_class_1(C_101_1_class_1())(C_101_1_class_1()));
|
||||
Expect.isTrue(closureC_101_1_class_2(C_101_1_class_2())(C_101_1_class_2()));
|
||||
Expect.isTrue(closureC_101_1_class_3(C_101_1_class_3())(C_101_1_class_3()));
|
||||
Expect.isTrue(closureC_101_1_class_4(C_101_1_class_4())(C_101_1_class_4()));
|
||||
Expect.isTrue(closureC_101_1_class_5(C_101_1_class_5())(C_101_1_class_5()));
|
||||
Expect.isTrue(closureC_101_1_class_6(C_101_1_class_6())(C_101_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_1(C_111_1_class_1())(C_111_1_class_1()));
|
||||
Expect.isTrue(closureC_111_1_class_2(C_111_1_class_2())(C_111_1_class_2()));
|
||||
Expect.isTrue(closureC_111_1_class_3(C_111_1_class_3())(C_111_1_class_3()));
|
||||
Expect.isTrue(closureC_111_1_class_4(C_111_1_class_4())(C_111_1_class_4()));
|
||||
Expect.isTrue(closureC_111_1_class_5(C_111_1_class_5())(C_111_1_class_5()));
|
||||
Expect.isTrue(closureC_111_1_class_6(C_111_1_class_6())(C_111_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_7(C_111_1_class_7())(C_111_1_class_7()));
|
||||
Expect.isTrue(closureC_111_1_class_8(C_111_1_class_8())(C_111_1_class_8()));
|
||||
Expect.isTrue(closureC_111_1_class_9(C_111_1_class_9())(C_111_1_class_9()));
|
||||
Expect.isTrue(closureC_010_1_class_1(C_010_1_class_1())(C_010_1_class_1()));
|
||||
Expect.isTrue(closureC_010_1_class_2(C_010_1_class_2())(C_010_1_class_2()));
|
||||
Expect.isTrue(closureC_010_1_class_3(C_010_1_class_3())(C_010_1_class_3()));
|
||||
Expect.isTrue(closureC_010_1_class_4(C_010_1_class_4())(C_010_1_class_4()));
|
||||
Expect.isTrue(closureC_011_1_class_1(C_011_1_class_1())(C_011_1_class_1()));
|
||||
Expect.isTrue(closureC_011_1_class_2(C_011_1_class_2())(C_011_1_class_2()));
|
||||
Expect.isTrue(closureC_011_1_class_3(C_011_1_class_3())(C_011_1_class_3()));
|
||||
Expect.isTrue(closureC_011_1_class_4(C_011_1_class_4())(C_011_1_class_4()));
|
||||
Expect.isTrue(closureC_011_1_class_5(C_011_1_class_5())(C_011_1_class_5()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_000_1(C_000_1()).runtimeType.toString(), '(C_000_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_1(C_101_1_class_1()).runtimeType.toString(),
|
||||
'(C_101_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_2(C_101_1_class_2()).runtimeType.toString(),
|
||||
'(C_101_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_3(C_101_1_class_3()).runtimeType.toString(),
|
||||
'(C_101_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_4(C_101_1_class_4()).runtimeType.toString(),
|
||||
'(C_101_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_5(C_101_1_class_5()).runtimeType.toString(),
|
||||
'(C_101_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_6(C_101_1_class_6()).runtimeType.toString(),
|
||||
'(C_101_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_1(C_111_1_class_1()).runtimeType.toString(),
|
||||
'(C_111_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_2(C_111_1_class_2()).runtimeType.toString(),
|
||||
'(C_111_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_3(C_111_1_class_3()).runtimeType.toString(),
|
||||
'(C_111_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_4(C_111_1_class_4()).runtimeType.toString(),
|
||||
'(C_111_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_5(C_111_1_class_5()).runtimeType.toString(),
|
||||
'(C_111_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_6(C_111_1_class_6()).runtimeType.toString(),
|
||||
'(C_111_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_7(C_111_1_class_7()).runtimeType.toString(),
|
||||
'(C_111_1_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_8(C_111_1_class_8()).runtimeType.toString(),
|
||||
'(C_111_1_class_8) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_9(C_111_1_class_9()).runtimeType.toString(),
|
||||
'(C_111_1_class_9) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_1(C_010_1_class_1()).runtimeType.toString(),
|
||||
'(C_010_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_2(C_010_1_class_2()).runtimeType.toString(),
|
||||
'(C_010_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_3(C_010_1_class_3()).runtimeType.toString(),
|
||||
'(C_010_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_4(C_010_1_class_4()).runtimeType.toString(),
|
||||
'(C_010_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_1(C_011_1_class_1()).runtimeType.toString(),
|
||||
'(C_011_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_2(C_011_1_class_2()).runtimeType.toString(),
|
||||
'(C_011_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_3(C_011_1_class_3()).runtimeType.toString(),
|
||||
'(C_011_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_4(C_011_1_class_4()).runtimeType.toString(),
|
||||
'(C_011_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_5(C_011_1_class_5()).runtimeType.toString(),
|
||||
'(C_011_1_class_5) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_***_1;
|
||||
|
|
|
@ -3,13 +3,188 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_001_0) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__8) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__9) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_001_0() {
|
||||
// C_**1_*;
|
||||
Expect.isFalse(typeTest(C_001_0()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_7()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_8()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_9()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_5()));
|
||||
|
||||
Expect.isTrue(closureC_001_0(C_001_0())(C_001_0()));
|
||||
Expect.isTrue(closureC_101_1_class_1(C_101_1_class_1())(C_101_1_class_1()));
|
||||
Expect.isTrue(closureC_101_1_class_2(C_101_1_class_2())(C_101_1_class_2()));
|
||||
Expect.isTrue(closureC_101_1_class_3(C_101_1_class_3())(C_101_1_class_3()));
|
||||
Expect.isTrue(closureC_101_1_class_4(C_101_1_class_4())(C_101_1_class_4()));
|
||||
Expect.isTrue(closureC_101_1_class_5(C_101_1_class_5())(C_101_1_class_5()));
|
||||
Expect.isTrue(closureC_101_1_class_6(C_101_1_class_6())(C_101_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_1(C_111_1_class_1())(C_111_1_class_1()));
|
||||
Expect.isTrue(closureC_111_1_class_2(C_111_1_class_2())(C_111_1_class_2()));
|
||||
Expect.isTrue(closureC_111_1_class_3(C_111_1_class_3())(C_111_1_class_3()));
|
||||
Expect.isTrue(closureC_111_1_class_4(C_111_1_class_4())(C_111_1_class_4()));
|
||||
Expect.isTrue(closureC_111_1_class_5(C_111_1_class_5())(C_111_1_class_5()));
|
||||
Expect.isTrue(closureC_111_1_class_6(C_111_1_class_6())(C_111_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_7(C_111_1_class_7())(C_111_1_class_7()));
|
||||
Expect.isTrue(closureC_111_1_class_8(C_111_1_class_8())(C_111_1_class_8()));
|
||||
Expect.isTrue(closureC_111_1_class_9(C_111_1_class_9())(C_111_1_class_9()));
|
||||
Expect.isTrue(closureC_011_1_class_1(C_011_1_class_1())(C_011_1_class_1()));
|
||||
Expect.isTrue(closureC_011_1_class_2(C_011_1_class_2())(C_011_1_class_2()));
|
||||
Expect.isTrue(closureC_011_1_class_3(C_011_1_class_3())(C_011_1_class_3()));
|
||||
Expect.isTrue(closureC_011_1_class_4(C_011_1_class_4())(C_011_1_class_4()));
|
||||
Expect.isTrue(closureC_011_1_class_5(C_011_1_class_5())(C_011_1_class_5()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_001_0(C_001_0()).runtimeType.toString(), '(C_001_0) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_1(C_101_1_class_1()).runtimeType.toString(),
|
||||
'(C_101_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_2(C_101_1_class_2()).runtimeType.toString(),
|
||||
'(C_101_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_3(C_101_1_class_3()).runtimeType.toString(),
|
||||
'(C_101_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_4(C_101_1_class_4()).runtimeType.toString(),
|
||||
'(C_101_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_5(C_101_1_class_5()).runtimeType.toString(),
|
||||
'(C_101_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_6(C_101_1_class_6()).runtimeType.toString(),
|
||||
'(C_101_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_1(C_111_1_class_1()).runtimeType.toString(),
|
||||
'(C_111_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_2(C_111_1_class_2()).runtimeType.toString(),
|
||||
'(C_111_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_3(C_111_1_class_3()).runtimeType.toString(),
|
||||
'(C_111_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_4(C_111_1_class_4()).runtimeType.toString(),
|
||||
'(C_111_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_5(C_111_1_class_5()).runtimeType.toString(),
|
||||
'(C_111_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_6(C_111_1_class_6()).runtimeType.toString(),
|
||||
'(C_111_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_7(C_111_1_class_7()).runtimeType.toString(),
|
||||
'(C_111_1_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_8(C_111_1_class_8()).runtimeType.toString(),
|
||||
'(C_111_1_class_8) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_9(C_111_1_class_9()).runtimeType.toString(),
|
||||
'(C_111_1_class_9) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_1(C_011_1_class_1()).runtimeType.toString(),
|
||||
'(C_011_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_2(C_011_1_class_2()).runtimeType.toString(),
|
||||
'(C_011_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_3(C_011_1_class_3()).runtimeType.toString(),
|
||||
'(C_011_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_4(C_011_1_class_4()).runtimeType.toString(),
|
||||
'(C_011_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_5(C_011_1_class_5()).runtimeType.toString(),
|
||||
'(C_011_1_class_5) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_**1_*;
|
||||
|
|
|
@ -3,13 +3,242 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_010_0) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__8) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__9) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_010_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_010_0() {
|
||||
// C_*1*_*;
|
||||
Expect.isFalse(typeTest(C_010_0()));
|
||||
Expect.isFalse(typeTest(C_010_1()));
|
||||
Expect.isFalse(typeTest(C_011_1()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_1()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_2()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_3()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_4()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_5()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_6()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_7()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_7()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_8()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_9()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_010_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_011_1_class_5()));
|
||||
|
||||
Expect.isTrue(closureC_010_0(C_010_0())(C_010_0()));
|
||||
Expect.isTrue(closureC_010_1(C_010_1())(C_010_1()));
|
||||
Expect.isTrue(closureC_011_1(C_011_1())(C_011_1()));
|
||||
Expect.isTrue(closureC_110_0_class_1(C_110_0_class_1())(C_110_0_class_1()));
|
||||
Expect.isTrue(closureC_110_0_class_2(C_110_0_class_2())(C_110_0_class_2()));
|
||||
Expect.isTrue(closureC_110_0_class_3(C_110_0_class_3())(C_110_0_class_3()));
|
||||
Expect.isTrue(closureC_110_0_class_4(C_110_0_class_4())(C_110_0_class_4()));
|
||||
Expect.isTrue(closureC_110_0_class_5(C_110_0_class_5())(C_110_0_class_5()));
|
||||
Expect.isTrue(closureC_110_0_class_6(C_110_0_class_6())(C_110_0_class_6()));
|
||||
Expect.isTrue(closureC_110_0_class_7(C_110_0_class_7())(C_110_0_class_7()));
|
||||
Expect.isTrue(closureC_111_1_class_1(C_111_1_class_1())(C_111_1_class_1()));
|
||||
Expect.isTrue(closureC_111_1_class_2(C_111_1_class_2())(C_111_1_class_2()));
|
||||
Expect.isTrue(closureC_111_1_class_3(C_111_1_class_3())(C_111_1_class_3()));
|
||||
Expect.isTrue(closureC_111_1_class_4(C_111_1_class_4())(C_111_1_class_4()));
|
||||
Expect.isTrue(closureC_111_1_class_5(C_111_1_class_5())(C_111_1_class_5()));
|
||||
Expect.isTrue(closureC_111_1_class_6(C_111_1_class_6())(C_111_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_7(C_111_1_class_7())(C_111_1_class_7()));
|
||||
Expect.isTrue(closureC_111_1_class_8(C_111_1_class_8())(C_111_1_class_8()));
|
||||
Expect.isTrue(closureC_111_1_class_9(C_111_1_class_9())(C_111_1_class_9()));
|
||||
Expect.isTrue(closureC_010_1_class_1(C_010_1_class_1())(C_010_1_class_1()));
|
||||
Expect.isTrue(closureC_010_1_class_2(C_010_1_class_2())(C_010_1_class_2()));
|
||||
Expect.isTrue(closureC_010_1_class_3(C_010_1_class_3())(C_010_1_class_3()));
|
||||
Expect.isTrue(closureC_010_1_class_4(C_010_1_class_4())(C_010_1_class_4()));
|
||||
Expect.isTrue(closureC_011_1_class_1(C_011_1_class_1())(C_011_1_class_1()));
|
||||
Expect.isTrue(closureC_011_1_class_2(C_011_1_class_2())(C_011_1_class_2()));
|
||||
Expect.isTrue(closureC_011_1_class_3(C_011_1_class_3())(C_011_1_class_3()));
|
||||
Expect.isTrue(closureC_011_1_class_4(C_011_1_class_4())(C_011_1_class_4()));
|
||||
Expect.isTrue(closureC_011_1_class_5(C_011_1_class_5())(C_011_1_class_5()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_010_0(C_010_0()).runtimeType.toString(), '(C_010_0) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1(C_010_1()).runtimeType.toString(), '(C_010_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1(C_011_1()).runtimeType.toString(), '(C_011_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_1(C_110_0_class_1()).runtimeType.toString(),
|
||||
'(C_110_0_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_2(C_110_0_class_2()).runtimeType.toString(),
|
||||
'(C_110_0_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_3(C_110_0_class_3()).runtimeType.toString(),
|
||||
'(C_110_0_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_4(C_110_0_class_4()).runtimeType.toString(),
|
||||
'(C_110_0_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_5(C_110_0_class_5()).runtimeType.toString(),
|
||||
'(C_110_0_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_6(C_110_0_class_6()).runtimeType.toString(),
|
||||
'(C_110_0_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_7(C_110_0_class_7()).runtimeType.toString(),
|
||||
'(C_110_0_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_1(C_111_1_class_1()).runtimeType.toString(),
|
||||
'(C_111_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_2(C_111_1_class_2()).runtimeType.toString(),
|
||||
'(C_111_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_3(C_111_1_class_3()).runtimeType.toString(),
|
||||
'(C_111_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_4(C_111_1_class_4()).runtimeType.toString(),
|
||||
'(C_111_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_5(C_111_1_class_5()).runtimeType.toString(),
|
||||
'(C_111_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_6(C_111_1_class_6()).runtimeType.toString(),
|
||||
'(C_111_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_7(C_111_1_class_7()).runtimeType.toString(),
|
||||
'(C_111_1_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_8(C_111_1_class_8()).runtimeType.toString(),
|
||||
'(C_111_1_class_8) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_9(C_111_1_class_9()).runtimeType.toString(),
|
||||
'(C_111_1_class_9) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_1(C_010_1_class_1()).runtimeType.toString(),
|
||||
'(C_010_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_2(C_010_1_class_2()).runtimeType.toString(),
|
||||
'(C_010_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_3(C_010_1_class_3()).runtimeType.toString(),
|
||||
'(C_010_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_010_1_class_4(C_010_1_class_4()).runtimeType.toString(),
|
||||
'(C_010_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_1(C_011_1_class_1()).runtimeType.toString(),
|
||||
'(C_011_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_2(C_011_1_class_2()).runtimeType.toString(),
|
||||
'(C_011_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_3(C_011_1_class_3()).runtimeType.toString(),
|
||||
'(C_011_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_4(C_011_1_class_4()).runtimeType.toString(),
|
||||
'(C_011_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_011_1_class_5(C_011_1_class_5()).runtimeType.toString(),
|
||||
'(C_011_1_class_5) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_*1*_*;
|
||||
|
|
|
@ -3,13 +3,225 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_100_0) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_110_0_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__7) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__8) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_1_type__9) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_100_0() {
|
||||
// C_1**_*;
|
||||
Expect.isFalse(typeTest(C_100_0()));
|
||||
Expect.isFalse(typeTest(C_110_0()));
|
||||
Expect.isFalse(typeTest(C_101_1()));
|
||||
Expect.isFalse(typeTest(C_111_1()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_1()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_2()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_3()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_4()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_5()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_6()));
|
||||
Expect.isFalse(typeTest(C_110_0_class_7()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_101_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_6()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_7()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_8()));
|
||||
Expect.isFalse(typeTest(C_111_1_class_9()));
|
||||
|
||||
Expect.isTrue(closureC_100_0(C_100_0())(C_100_0()));
|
||||
Expect.isTrue(closureC_110_0(C_110_0())(C_110_0()));
|
||||
Expect.isTrue(closureC_101_1(C_101_1())(C_101_1()));
|
||||
Expect.isTrue(closureC_111_1(C_111_1())(C_111_1()));
|
||||
Expect.isTrue(closureC_110_0_class_1(C_110_0_class_1())(C_110_0_class_1()));
|
||||
Expect.isTrue(closureC_110_0_class_2(C_110_0_class_2())(C_110_0_class_2()));
|
||||
Expect.isTrue(closureC_110_0_class_3(C_110_0_class_3())(C_110_0_class_3()));
|
||||
Expect.isTrue(closureC_110_0_class_4(C_110_0_class_4())(C_110_0_class_4()));
|
||||
Expect.isTrue(closureC_110_0_class_5(C_110_0_class_5())(C_110_0_class_5()));
|
||||
Expect.isTrue(closureC_110_0_class_6(C_110_0_class_6())(C_110_0_class_6()));
|
||||
Expect.isTrue(closureC_110_0_class_7(C_110_0_class_7())(C_110_0_class_7()));
|
||||
Expect.isTrue(closureC_101_1_class_1(C_101_1_class_1())(C_101_1_class_1()));
|
||||
Expect.isTrue(closureC_101_1_class_2(C_101_1_class_2())(C_101_1_class_2()));
|
||||
Expect.isTrue(closureC_101_1_class_3(C_101_1_class_3())(C_101_1_class_3()));
|
||||
Expect.isTrue(closureC_101_1_class_4(C_101_1_class_4())(C_101_1_class_4()));
|
||||
Expect.isTrue(closureC_101_1_class_5(C_101_1_class_5())(C_101_1_class_5()));
|
||||
Expect.isTrue(closureC_101_1_class_6(C_101_1_class_6())(C_101_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_1(C_111_1_class_1())(C_111_1_class_1()));
|
||||
Expect.isTrue(closureC_111_1_class_2(C_111_1_class_2())(C_111_1_class_2()));
|
||||
Expect.isTrue(closureC_111_1_class_3(C_111_1_class_3())(C_111_1_class_3()));
|
||||
Expect.isTrue(closureC_111_1_class_4(C_111_1_class_4())(C_111_1_class_4()));
|
||||
Expect.isTrue(closureC_111_1_class_5(C_111_1_class_5())(C_111_1_class_5()));
|
||||
Expect.isTrue(closureC_111_1_class_6(C_111_1_class_6())(C_111_1_class_6()));
|
||||
Expect.isTrue(closureC_111_1_class_7(C_111_1_class_7())(C_111_1_class_7()));
|
||||
Expect.isTrue(closureC_111_1_class_8(C_111_1_class_8())(C_111_1_class_8()));
|
||||
Expect.isTrue(closureC_111_1_class_9(C_111_1_class_9())(C_111_1_class_9()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_100_0(C_100_0()).runtimeType.toString(), '(C_100_0) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0(C_110_0()).runtimeType.toString(), '(C_110_0) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1(C_101_1()).runtimeType.toString(), '(C_101_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1(C_111_1()).runtimeType.toString(), '(C_111_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_1(C_110_0_class_1()).runtimeType.toString(),
|
||||
'(C_110_0_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_2(C_110_0_class_2()).runtimeType.toString(),
|
||||
'(C_110_0_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_3(C_110_0_class_3()).runtimeType.toString(),
|
||||
'(C_110_0_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_4(C_110_0_class_4()).runtimeType.toString(),
|
||||
'(C_110_0_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_5(C_110_0_class_5()).runtimeType.toString(),
|
||||
'(C_110_0_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_6(C_110_0_class_6()).runtimeType.toString(),
|
||||
'(C_110_0_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_110_0_class_7(C_110_0_class_7()).runtimeType.toString(),
|
||||
'(C_110_0_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_1(C_101_1_class_1()).runtimeType.toString(),
|
||||
'(C_101_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_2(C_101_1_class_2()).runtimeType.toString(),
|
||||
'(C_101_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_3(C_101_1_class_3()).runtimeType.toString(),
|
||||
'(C_101_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_4(C_101_1_class_4()).runtimeType.toString(),
|
||||
'(C_101_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_5(C_101_1_class_5()).runtimeType.toString(),
|
||||
'(C_101_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_101_1_class_6(C_101_1_class_6()).runtimeType.toString(),
|
||||
'(C_101_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_1(C_111_1_class_1()).runtimeType.toString(),
|
||||
'(C_111_1_class_1) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_2(C_111_1_class_2()).runtimeType.toString(),
|
||||
'(C_111_1_class_2) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_3(C_111_1_class_3()).runtimeType.toString(),
|
||||
'(C_111_1_class_3) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_4(C_111_1_class_4()).runtimeType.toString(),
|
||||
'(C_111_1_class_4) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_5(C_111_1_class_5()).runtimeType.toString(),
|
||||
'(C_111_1_class_5) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_6(C_111_1_class_6()).runtimeType.toString(),
|
||||
'(C_111_1_class_6) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_7(C_111_1_class_7()).runtimeType.toString(),
|
||||
'(C_111_1_class_7) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_8(C_111_1_class_8()).runtimeType.toString(),
|
||||
'(C_111_1_class_8) => bool');
|
||||
Expect.equals(
|
||||
closureC_111_1_class_9(C_111_1_class_9()).runtimeType.toString(),
|
||||
'(C_111_1_class_9) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_1**_*;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib1.dart';
|
||||
import 'lib2.dart';
|
||||
import 'lib3.dart';
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_100.dart' deferred as b1;
|
||||
|
||||
entryLib1() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_010.dart' deferred as b2;
|
||||
|
||||
entryLib2() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib_001.dart' deferred as b3;
|
||||
|
||||
entryLib3() async {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
void v(Set<String> u, String name, int bit) {
|
||||
|
@ -11,6 +10,254 @@ void v(Set<String> u, String name, int bit) {
|
|||
Expect.equals(name[bit], '1');
|
||||
}
|
||||
|
||||
class C_100 {
|
||||
const C_100();
|
||||
}
|
||||
|
||||
class M_100 {}
|
||||
|
||||
class T_100 {}
|
||||
|
||||
const C_100 iC_100 = const C_100();
|
||||
closureC_100(foo) => (C_100 unused) => iC_100.toString() == foo.toString();
|
||||
|
||||
class C_101 {
|
||||
const C_101();
|
||||
}
|
||||
|
||||
class M_101 {}
|
||||
|
||||
class T_101 {}
|
||||
|
||||
const C_101 iC_101 = const C_101();
|
||||
closureC_101(foo) => (C_101 unused) => iC_101.toString() == foo.toString();
|
||||
|
||||
class C_111 {
|
||||
const C_111();
|
||||
}
|
||||
|
||||
class M_111 {}
|
||||
|
||||
class T_111 {}
|
||||
|
||||
const C_111 iC_111 = const C_111();
|
||||
closureC_111(foo) => (C_111 unused) => iC_111.toString() == foo.toString();
|
||||
|
||||
class C_010 {
|
||||
const C_010();
|
||||
}
|
||||
|
||||
class M_010 {}
|
||||
|
||||
class T_010 {}
|
||||
|
||||
const C_010 iC_010 = const C_010();
|
||||
closureC_010(foo) => (C_010 unused) => iC_010.toString() == foo.toString();
|
||||
|
||||
class C_011 {
|
||||
const C_011();
|
||||
}
|
||||
|
||||
class M_011 {}
|
||||
|
||||
class T_011 {}
|
||||
|
||||
const C_011 iC_011 = const C_011();
|
||||
closureC_011(foo) => (C_011 unused) => iC_011.toString() == foo.toString();
|
||||
|
||||
class C_001 {
|
||||
const C_001();
|
||||
}
|
||||
|
||||
class M_001 {}
|
||||
|
||||
class T_001 {}
|
||||
|
||||
const C_001 iC_001 = const C_001();
|
||||
closureC_001(foo) => (C_001 unused) => iC_001.toString() == foo.toString();
|
||||
|
||||
class C_101_class_1 extends C_100
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements C_101, C_111, C_001 {
|
||||
const C_101_class_1();
|
||||
}
|
||||
|
||||
const C_101_class_1 iC_101_class_1 = const C_101_class_1();
|
||||
closureC_101_class_1(foo) =>
|
||||
(C_101_class_1 unused) => iC_101_class_1.toString() == foo.toString();
|
||||
|
||||
class T_101_type__1 extends T_100
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements T_101, T_111, T_001 {}
|
||||
|
||||
class C_101_class_2 extends C_101
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements C_100, C_111, C_001 {
|
||||
const C_101_class_2();
|
||||
}
|
||||
|
||||
const C_101_class_2 iC_101_class_2 = const C_101_class_2();
|
||||
closureC_101_class_2(foo) =>
|
||||
(C_101_class_2 unused) => iC_101_class_2.toString() == foo.toString();
|
||||
|
||||
class T_101_type__2 extends T_101
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements T_100, T_111, T_001 {}
|
||||
|
||||
class C_101_class_3 extends C_111
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements C_100, C_101, C_001 {
|
||||
const C_101_class_3();
|
||||
}
|
||||
|
||||
const C_101_class_3 iC_101_class_3 = const C_101_class_3();
|
||||
closureC_101_class_3(foo) =>
|
||||
(C_101_class_3 unused) => iC_101_class_3.toString() == foo.toString();
|
||||
|
||||
class T_101_type__3 extends T_111
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements T_100, T_101, T_001 {}
|
||||
|
||||
class C_101_class_4 extends C_001
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements C_100, C_101, C_111 {
|
||||
const C_101_class_4();
|
||||
}
|
||||
|
||||
const C_101_class_4 iC_101_class_4 = const C_101_class_4();
|
||||
closureC_101_class_4(foo) =>
|
||||
(C_101_class_4 unused) => iC_101_class_4.toString() == foo.toString();
|
||||
|
||||
class T_101_type__4 extends T_001
|
||||
with M_100, M_101, M_111, M_001
|
||||
implements T_100, T_101, T_111 {}
|
||||
|
||||
class C_111_class_1 extends C_100
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_101, C_111, C_010, C_011, C_001 {
|
||||
const C_111_class_1();
|
||||
}
|
||||
|
||||
const C_111_class_1 iC_111_class_1 = const C_111_class_1();
|
||||
closureC_111_class_1(foo) =>
|
||||
(C_111_class_1 unused) => iC_111_class_1.toString() == foo.toString();
|
||||
|
||||
class T_111_type__1 extends T_100
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_101, T_111, T_010, T_011, T_001 {}
|
||||
|
||||
class C_111_class_2 extends C_101
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_100, C_111, C_010, C_011, C_001 {
|
||||
const C_111_class_2();
|
||||
}
|
||||
|
||||
const C_111_class_2 iC_111_class_2 = const C_111_class_2();
|
||||
closureC_111_class_2(foo) =>
|
||||
(C_111_class_2 unused) => iC_111_class_2.toString() == foo.toString();
|
||||
|
||||
class T_111_type__2 extends T_101
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_100, T_111, T_010, T_011, T_001 {}
|
||||
|
||||
class C_111_class_3 extends C_111
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_100, C_101, C_010, C_011, C_001 {
|
||||
const C_111_class_3();
|
||||
}
|
||||
|
||||
const C_111_class_3 iC_111_class_3 = const C_111_class_3();
|
||||
closureC_111_class_3(foo) =>
|
||||
(C_111_class_3 unused) => iC_111_class_3.toString() == foo.toString();
|
||||
|
||||
class T_111_type__3 extends T_111
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_100, T_101, T_010, T_011, T_001 {}
|
||||
|
||||
class C_111_class_4 extends C_010
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_100, C_101, C_111, C_011, C_001 {
|
||||
const C_111_class_4();
|
||||
}
|
||||
|
||||
const C_111_class_4 iC_111_class_4 = const C_111_class_4();
|
||||
closureC_111_class_4(foo) =>
|
||||
(C_111_class_4 unused) => iC_111_class_4.toString() == foo.toString();
|
||||
|
||||
class T_111_type__4 extends T_010
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_100, T_101, T_111, T_011, T_001 {}
|
||||
|
||||
class C_111_class_5 extends C_011
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_100, C_101, C_111, C_010, C_001 {
|
||||
const C_111_class_5();
|
||||
}
|
||||
|
||||
const C_111_class_5 iC_111_class_5 = const C_111_class_5();
|
||||
closureC_111_class_5(foo) =>
|
||||
(C_111_class_5 unused) => iC_111_class_5.toString() == foo.toString();
|
||||
|
||||
class T_111_type__5 extends T_011
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_100, T_101, T_111, T_010, T_001 {}
|
||||
|
||||
class C_111_class_6 extends C_001
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements C_100, C_101, C_111, C_010, C_011 {
|
||||
const C_111_class_6();
|
||||
}
|
||||
|
||||
const C_111_class_6 iC_111_class_6 = const C_111_class_6();
|
||||
closureC_111_class_6(foo) =>
|
||||
(C_111_class_6 unused) => iC_111_class_6.toString() == foo.toString();
|
||||
|
||||
class T_111_type__6 extends T_001
|
||||
with M_100, M_101, M_111, M_010, M_011, M_001
|
||||
implements T_100, T_101, T_111, T_010, T_011 {}
|
||||
|
||||
class C_011_class_1 extends C_010
|
||||
with M_010, M_011, M_001
|
||||
implements C_011, C_001 {
|
||||
const C_011_class_1();
|
||||
}
|
||||
|
||||
const C_011_class_1 iC_011_class_1 = const C_011_class_1();
|
||||
closureC_011_class_1(foo) =>
|
||||
(C_011_class_1 unused) => iC_011_class_1.toString() == foo.toString();
|
||||
|
||||
class T_011_type__1 extends T_010
|
||||
with M_010, M_011, M_001
|
||||
implements T_011, T_001 {}
|
||||
|
||||
class C_011_class_2 extends C_011
|
||||
with M_010, M_011, M_001
|
||||
implements C_010, C_001 {
|
||||
const C_011_class_2();
|
||||
}
|
||||
|
||||
const C_011_class_2 iC_011_class_2 = const C_011_class_2();
|
||||
closureC_011_class_2(foo) =>
|
||||
(C_011_class_2 unused) => iC_011_class_2.toString() == foo.toString();
|
||||
|
||||
class T_011_type__2 extends T_011
|
||||
with M_010, M_011, M_001
|
||||
implements T_010, T_001 {}
|
||||
|
||||
class C_011_class_3 extends C_001
|
||||
with M_010, M_011, M_001
|
||||
implements C_010, C_011 {
|
||||
const C_011_class_3();
|
||||
}
|
||||
|
||||
const C_011_class_3 iC_011_class_3 = const C_011_class_3();
|
||||
closureC_011_class_3(foo) =>
|
||||
(C_011_class_3 unused) => iC_011_class_3.toString() == foo.toString();
|
||||
|
||||
class T_011_type__3 extends T_001
|
||||
with M_010, M_011, M_001
|
||||
implements T_010, T_011 {}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
f_100(Set<String> u, int b) => v(u, '100', b);
|
||||
@pragma('dart2js:noInline')
|
||||
|
|
|
@ -3,13 +3,119 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_001) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__3) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_001() {
|
||||
// C_**1;
|
||||
Expect.isFalse(typeTest(C_001()));
|
||||
Expect.isFalse(typeTest(C_101_class_1()));
|
||||
Expect.isFalse(typeTest(C_101_class_2()));
|
||||
Expect.isFalse(typeTest(C_101_class_3()));
|
||||
Expect.isFalse(typeTest(C_101_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_class_6()));
|
||||
Expect.isFalse(typeTest(C_011_class_1()));
|
||||
Expect.isFalse(typeTest(C_011_class_2()));
|
||||
Expect.isFalse(typeTest(C_011_class_3()));
|
||||
|
||||
Expect.isTrue(closureC_001(C_001())(C_001()));
|
||||
Expect.isTrue(closureC_101_class_1(C_101_class_1())(C_101_class_1()));
|
||||
Expect.isTrue(closureC_101_class_2(C_101_class_2())(C_101_class_2()));
|
||||
Expect.isTrue(closureC_101_class_3(C_101_class_3())(C_101_class_3()));
|
||||
Expect.isTrue(closureC_101_class_4(C_101_class_4())(C_101_class_4()));
|
||||
Expect.isTrue(closureC_111_class_1(C_111_class_1())(C_111_class_1()));
|
||||
Expect.isTrue(closureC_111_class_2(C_111_class_2())(C_111_class_2()));
|
||||
Expect.isTrue(closureC_111_class_3(C_111_class_3())(C_111_class_3()));
|
||||
Expect.isTrue(closureC_111_class_4(C_111_class_4())(C_111_class_4()));
|
||||
Expect.isTrue(closureC_111_class_5(C_111_class_5())(C_111_class_5()));
|
||||
Expect.isTrue(closureC_111_class_6(C_111_class_6())(C_111_class_6()));
|
||||
Expect.isTrue(closureC_011_class_1(C_011_class_1())(C_011_class_1()));
|
||||
Expect.isTrue(closureC_011_class_2(C_011_class_2())(C_011_class_2()));
|
||||
Expect.isTrue(closureC_011_class_3(C_011_class_3())(C_011_class_3()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_001(C_001()).runtimeType.toString(), '(C_001) => bool');
|
||||
Expect.equals(closureC_101_class_1(C_101_class_1()).runtimeType.toString(),
|
||||
'(C_101_class_1) => bool');
|
||||
Expect.equals(closureC_101_class_2(C_101_class_2()).runtimeType.toString(),
|
||||
'(C_101_class_2) => bool');
|
||||
Expect.equals(closureC_101_class_3(C_101_class_3()).runtimeType.toString(),
|
||||
'(C_101_class_3) => bool');
|
||||
Expect.equals(closureC_101_class_4(C_101_class_4()).runtimeType.toString(),
|
||||
'(C_101_class_4) => bool');
|
||||
Expect.equals(closureC_111_class_1(C_111_class_1()).runtimeType.toString(),
|
||||
'(C_111_class_1) => bool');
|
||||
Expect.equals(closureC_111_class_2(C_111_class_2()).runtimeType.toString(),
|
||||
'(C_111_class_2) => bool');
|
||||
Expect.equals(closureC_111_class_3(C_111_class_3()).runtimeType.toString(),
|
||||
'(C_111_class_3) => bool');
|
||||
Expect.equals(closureC_111_class_4(C_111_class_4()).runtimeType.toString(),
|
||||
'(C_111_class_4) => bool');
|
||||
Expect.equals(closureC_111_class_5(C_111_class_5()).runtimeType.toString(),
|
||||
'(C_111_class_5) => bool');
|
||||
Expect.equals(closureC_111_class_6(C_111_class_6()).runtimeType.toString(),
|
||||
'(C_111_class_6) => bool');
|
||||
Expect.equals(closureC_011_class_1(C_011_class_1()).runtimeType.toString(),
|
||||
'(C_011_class_1) => bool');
|
||||
Expect.equals(closureC_011_class_2(C_011_class_2()).runtimeType.toString(),
|
||||
'(C_011_class_2) => bool');
|
||||
Expect.equals(closureC_011_class_3(C_011_class_3()).runtimeType.toString(),
|
||||
'(C_011_class_3) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_**1;
|
||||
|
|
|
@ -3,13 +3,98 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_010) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__6) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_011_type__3) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_010() {
|
||||
// C_*1*;
|
||||
Expect.isFalse(typeTest(C_010()));
|
||||
Expect.isFalse(typeTest(C_011()));
|
||||
Expect.isFalse(typeTest(C_111_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_class_6()));
|
||||
Expect.isFalse(typeTest(C_011_class_1()));
|
||||
Expect.isFalse(typeTest(C_011_class_2()));
|
||||
Expect.isFalse(typeTest(C_011_class_3()));
|
||||
|
||||
Expect.isTrue(closureC_010(C_010())(C_010()));
|
||||
Expect.isTrue(closureC_011(C_011())(C_011()));
|
||||
Expect.isTrue(closureC_111_class_1(C_111_class_1())(C_111_class_1()));
|
||||
Expect.isTrue(closureC_111_class_2(C_111_class_2())(C_111_class_2()));
|
||||
Expect.isTrue(closureC_111_class_3(C_111_class_3())(C_111_class_3()));
|
||||
Expect.isTrue(closureC_111_class_4(C_111_class_4())(C_111_class_4()));
|
||||
Expect.isTrue(closureC_111_class_5(C_111_class_5())(C_111_class_5()));
|
||||
Expect.isTrue(closureC_111_class_6(C_111_class_6())(C_111_class_6()));
|
||||
Expect.isTrue(closureC_011_class_1(C_011_class_1())(C_011_class_1()));
|
||||
Expect.isTrue(closureC_011_class_2(C_011_class_2())(C_011_class_2()));
|
||||
Expect.isTrue(closureC_011_class_3(C_011_class_3())(C_011_class_3()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_010(C_010()).runtimeType.toString(), '(C_010) => bool');
|
||||
Expect.equals(
|
||||
closureC_011(C_011()).runtimeType.toString(), '(C_011) => bool');
|
||||
Expect.equals(closureC_111_class_1(C_111_class_1()).runtimeType.toString(),
|
||||
'(C_111_class_1) => bool');
|
||||
Expect.equals(closureC_111_class_2(C_111_class_2()).runtimeType.toString(),
|
||||
'(C_111_class_2) => bool');
|
||||
Expect.equals(closureC_111_class_3(C_111_class_3()).runtimeType.toString(),
|
||||
'(C_111_class_3) => bool');
|
||||
Expect.equals(closureC_111_class_4(C_111_class_4()).runtimeType.toString(),
|
||||
'(C_111_class_4) => bool');
|
||||
Expect.equals(closureC_111_class_5(C_111_class_5()).runtimeType.toString(),
|
||||
'(C_111_class_5) => bool');
|
||||
Expect.equals(closureC_111_class_6(C_111_class_6()).runtimeType.toString(),
|
||||
'(C_111_class_6) => bool');
|
||||
Expect.equals(closureC_011_class_1(C_011_class_1()).runtimeType.toString(),
|
||||
'(C_011_class_1) => bool');
|
||||
Expect.equals(closureC_011_class_2(C_011_class_2()).runtimeType.toString(),
|
||||
'(C_011_class_2) => bool');
|
||||
Expect.equals(closureC_011_class_3(C_011_class_3()).runtimeType.toString(),
|
||||
'(C_011_class_3) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_*1*;
|
||||
|
|
|
@ -3,13 +3,112 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import "package:expect/expect.dart";
|
||||
|
||||
import 'libImport.dart';
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
typeTest(dynamic t) {
|
||||
if (t is T_100) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_101_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__1) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__2) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__3) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__4) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__5) {
|
||||
return true;
|
||||
}
|
||||
if (t is T_111_type__6) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@pragma('dart2js:noInline')
|
||||
g_100() {
|
||||
// C_1**;
|
||||
Expect.isFalse(typeTest(C_100()));
|
||||
Expect.isFalse(typeTest(C_101()));
|
||||
Expect.isFalse(typeTest(C_111()));
|
||||
Expect.isFalse(typeTest(C_101_class_1()));
|
||||
Expect.isFalse(typeTest(C_101_class_2()));
|
||||
Expect.isFalse(typeTest(C_101_class_3()));
|
||||
Expect.isFalse(typeTest(C_101_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_class_1()));
|
||||
Expect.isFalse(typeTest(C_111_class_2()));
|
||||
Expect.isFalse(typeTest(C_111_class_3()));
|
||||
Expect.isFalse(typeTest(C_111_class_4()));
|
||||
Expect.isFalse(typeTest(C_111_class_5()));
|
||||
Expect.isFalse(typeTest(C_111_class_6()));
|
||||
|
||||
Expect.isTrue(closureC_100(C_100())(C_100()));
|
||||
Expect.isTrue(closureC_101(C_101())(C_101()));
|
||||
Expect.isTrue(closureC_111(C_111())(C_111()));
|
||||
Expect.isTrue(closureC_101_class_1(C_101_class_1())(C_101_class_1()));
|
||||
Expect.isTrue(closureC_101_class_2(C_101_class_2())(C_101_class_2()));
|
||||
Expect.isTrue(closureC_101_class_3(C_101_class_3())(C_101_class_3()));
|
||||
Expect.isTrue(closureC_101_class_4(C_101_class_4())(C_101_class_4()));
|
||||
Expect.isTrue(closureC_111_class_1(C_111_class_1())(C_111_class_1()));
|
||||
Expect.isTrue(closureC_111_class_2(C_111_class_2())(C_111_class_2()));
|
||||
Expect.isTrue(closureC_111_class_3(C_111_class_3())(C_111_class_3()));
|
||||
Expect.isTrue(closureC_111_class_4(C_111_class_4())(C_111_class_4()));
|
||||
Expect.isTrue(closureC_111_class_5(C_111_class_5())(C_111_class_5()));
|
||||
Expect.isTrue(closureC_111_class_6(C_111_class_6())(C_111_class_6()));
|
||||
|
||||
Expect.equals(
|
||||
closureC_100(C_100()).runtimeType.toString(), '(C_100) => bool');
|
||||
Expect.equals(
|
||||
closureC_101(C_101()).runtimeType.toString(), '(C_101) => bool');
|
||||
Expect.equals(
|
||||
closureC_111(C_111()).runtimeType.toString(), '(C_111) => bool');
|
||||
Expect.equals(closureC_101_class_1(C_101_class_1()).runtimeType.toString(),
|
||||
'(C_101_class_1) => bool');
|
||||
Expect.equals(closureC_101_class_2(C_101_class_2()).runtimeType.toString(),
|
||||
'(C_101_class_2) => bool');
|
||||
Expect.equals(closureC_101_class_3(C_101_class_3()).runtimeType.toString(),
|
||||
'(C_101_class_3) => bool');
|
||||
Expect.equals(closureC_101_class_4(C_101_class_4()).runtimeType.toString(),
|
||||
'(C_101_class_4) => bool');
|
||||
Expect.equals(closureC_111_class_1(C_111_class_1()).runtimeType.toString(),
|
||||
'(C_111_class_1) => bool');
|
||||
Expect.equals(closureC_111_class_2(C_111_class_2()).runtimeType.toString(),
|
||||
'(C_111_class_2) => bool');
|
||||
Expect.equals(closureC_111_class_3(C_111_class_3()).runtimeType.toString(),
|
||||
'(C_111_class_3) => bool');
|
||||
Expect.equals(closureC_111_class_4(C_111_class_4()).runtimeType.toString(),
|
||||
'(C_111_class_4) => bool');
|
||||
Expect.equals(closureC_111_class_5(C_111_class_5()).runtimeType.toString(),
|
||||
'(C_111_class_5) => bool');
|
||||
Expect.equals(closureC_111_class_6(C_111_class_6()).runtimeType.toString(),
|
||||
'(C_111_class_6) => bool');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// f_1**;
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
import 'lib1.dart';
|
||||
import 'lib2.dart';
|
||||
import 'lib3.dart';
|
||||
|
|
|
@ -8,6 +8,7 @@ import 'dart:io';
|
|||
|
||||
import 'package:expect/expect.dart';
|
||||
import 'package:compiler/compiler_new.dart';
|
||||
import 'package:dart_style/dart_style.dart' show DartFormatter;
|
||||
import '../../helpers/memory_compiler.dart';
|
||||
import '../../../tool/graph_isomorphizer.dart';
|
||||
|
||||
|
@ -42,7 +43,8 @@ void unorderedListEquals(List<String> expected, List<String> actual) {
|
|||
|
||||
void verifyGeneratedFile(
|
||||
String filename, StringBuffer contents, Map<String, String> expectations) {
|
||||
Expect.stringEquals(contents.toString(), expectations[filename]);
|
||||
Expect.stringEquals(
|
||||
DartFormatter().format(contents.toString()), expectations[filename]);
|
||||
}
|
||||
|
||||
GraphIsomorphizer generateFiles(List<String> graphFileLines,
|
||||
|
|
|
@ -37,8 +37,14 @@
|
|||
/// with three bits, each of 100, 010, 001 and 111 must be present in the graph
|
||||
/// file, but 110, 101, and 011 are optional.
|
||||
|
||||
// TODO(joshualitt): This is a good start for a fuzzer. There is still work to
|
||||
// do:
|
||||
// * Emit some classes as const and some not
|
||||
// * Randomize what we emit as we walk the graph so it is more sparse.
|
||||
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
import 'package:dart_style/dart_style.dart' show DartFormatter;
|
||||
|
||||
typedef NameFunc = String Function(List<int>, int);
|
||||
|
||||
|
@ -112,6 +118,18 @@ class GraphIsomorphizer {
|
|||
/// A map of bit positions to lists of bit lists.
|
||||
final Map<int, List<List<int>>> names;
|
||||
|
||||
/// A map of bit positions to lists of class names.
|
||||
final Map<int, List<String>> classNames = {};
|
||||
final Map<int, List<String>> mixerClassNames = {};
|
||||
|
||||
/// A map of bit positions to lists of mixin names.
|
||||
final Map<int, List<String>> mixinNames = {};
|
||||
|
||||
/// A map of bit positions to lists of class names used only as types.
|
||||
final Map<int, List<String>> typeNames = {};
|
||||
final Map<int, List<String>> mixerTypeNames = {};
|
||||
final Map<int, List<String>> closureNames = {};
|
||||
|
||||
/// We will permute bits up until the maximum bit.
|
||||
int maxBit = 0;
|
||||
|
||||
|
@ -135,6 +153,10 @@ class GraphIsomorphizer {
|
|||
out.write('import "package:expect/expect.dart";\n\n');
|
||||
}
|
||||
|
||||
void newline(StringBuffer out) {
|
||||
out.write('\n');
|
||||
}
|
||||
|
||||
/// Generates the header for a file.
|
||||
void generateHeader(StringBuffer out) {
|
||||
if (!skipCopyright) {
|
||||
|
@ -144,11 +166,12 @@ class GraphIsomorphizer {
|
|||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
// This file was autogenerated by the pkg/compiler/tool/graph_isomorphizer.dart.
|
||||
|
||||
""");
|
||||
}
|
||||
}
|
||||
|
||||
/// Generates the root import, where classes, types, mixins, and closures
|
||||
/// live.
|
||||
void generateRootImport(StringBuffer out) {
|
||||
generateHeader(out);
|
||||
importExpect(out);
|
||||
|
@ -161,11 +184,102 @@ class GraphIsomorphizer {
|
|||
" Expect.equals(name[bit], '1');\n" +
|
||||
'}\n\n');
|
||||
|
||||
Set<String> uniques = {};
|
||||
|
||||
// Sort the names to ensure they are in a canonical order.
|
||||
var nameKeys = names.keys.toList();
|
||||
nameKeys.sort();
|
||||
|
||||
// Generate the 'base' classes, mixins, and types which will be combined to
|
||||
// generate hierarchies. Also generate a const instance per class and a closure
|
||||
// to invoke.
|
||||
Set<String> uniques = {};
|
||||
for (var bitPosition in nameKeys) {
|
||||
var bitsList = names[bitPosition];
|
||||
for (var bits in bitsList) {
|
||||
var name = generateBitString(bits);
|
||||
if (!uniques.add(name)) continue;
|
||||
String className = 'C$name';
|
||||
String mixinName = 'M$name';
|
||||
String typeName = 'T$name';
|
||||
(classNames[bitPosition] ??= []).add(className);
|
||||
(mixinNames[bitPosition] ??= []).add(mixinName);
|
||||
(typeNames[bitPosition] ??= []).add(typeName);
|
||||
(mixerClassNames[bitPosition] ??= []).add(className);
|
||||
(mixerTypeNames[bitPosition] ??= []).add(typeName);
|
||||
out.write('class $className { const $className(); }\n');
|
||||
out.write('class $mixinName {}\n');
|
||||
out.write('class $typeName {}\n');
|
||||
out.write('const $className i$className = const $className();\n');
|
||||
out.write('closure$className(foo) => ($className unused) ');
|
||||
out.write('=> i$className.toString() == foo.toString();\n');
|
||||
}
|
||||
}
|
||||
|
||||
// Generate combined classes and types, as well as const instances and
|
||||
// closures.
|
||||
newline(out);
|
||||
uniques = {};
|
||||
for (var bitPosition in nameKeys) {
|
||||
var bitsList = names[bitPosition];
|
||||
for (var bits in bitsList) {
|
||||
var name = generateBitString(bits);
|
||||
var bitCount = bits.reduce((a, b) => a + b);
|
||||
var baseName = 'C$name';
|
||||
if (!uniques.add(baseName)) continue;
|
||||
if (bitCount > 1) {
|
||||
List<String> classes = [];
|
||||
List<String> mixins = [];
|
||||
List<String> types = [];
|
||||
for (int i = 0; i < bits.length; i++) {
|
||||
if (bits[i] == 1) {
|
||||
classes.addAll(classNames[i]);
|
||||
mixins.addAll(mixinNames[i]);
|
||||
types.addAll(typeNames[i]);
|
||||
}
|
||||
}
|
||||
String mixinString = mixins.join(', ');
|
||||
int count = 1;
|
||||
assert(classes.length == types.length);
|
||||
for (int i = 0; i < classes.length; i++) {
|
||||
var cls = classes[i];
|
||||
var type = types[i];
|
||||
List<String> classImpls = [];
|
||||
List<String> typeImpls = [];
|
||||
if (i > 0) {
|
||||
classImpls.addAll(classes.sublist(0, i));
|
||||
typeImpls.addAll(types.sublist(0, i));
|
||||
}
|
||||
if (i < classes.length - 1) {
|
||||
classImpls.addAll(classes.sublist(i + 1));
|
||||
typeImpls.addAll(types.sublist(i + 1));
|
||||
}
|
||||
var classImplementsString = classImpls.join(', ');
|
||||
String className = '${baseName}_class_${count}';
|
||||
out.write('class $className extends $cls with $mixinString ');
|
||||
out.write(
|
||||
'implements $classImplementsString { const $className(); }\n');
|
||||
out.write('const $className i$className = const $className();\n');
|
||||
out.write('closure$className(foo) => ($className unused) ');
|
||||
out.write('=> i$className.toString() == foo.toString();\n');
|
||||
|
||||
var typeImplementsString = typeImpls.join(', ');
|
||||
String typeName = 'T${name}_type__${count}';
|
||||
out.write('class $typeName extends $type with $mixinString ');
|
||||
out.write('implements $typeImplementsString {}\n');
|
||||
for (int i = 0; i < bits.length; i++) {
|
||||
if (bits[i] == 1) {
|
||||
mixerClassNames[i].add(className);
|
||||
mixerTypeNames[i].add(typeName);
|
||||
}
|
||||
}
|
||||
count++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Generate functions.
|
||||
newline(out);
|
||||
uniques = {};
|
||||
for (var name in nameKeys) {
|
||||
var bitsList = names[name];
|
||||
for (var bits in bitsList) {
|
||||
|
@ -186,13 +300,41 @@ class GraphIsomorphizer {
|
|||
generateHeader(out);
|
||||
importExpect(out);
|
||||
out.write("import '$import';\n\n");
|
||||
|
||||
// create type test.
|
||||
noInlineDecorator(out);
|
||||
out.write('g$name() {\n'
|
||||
' Set<String> uniques = {};\n\n'
|
||||
' // f${generateCommentName(bits, bit)};\n');
|
||||
int count = 0;
|
||||
out.write('typeTest(dynamic t) {\n');
|
||||
for (var type in mixerTypeNames[bit]) {
|
||||
out.write(' if (t is $type) { return true; }\n');
|
||||
}
|
||||
out.write(' return false;\n');
|
||||
out.write('}\n\n');
|
||||
|
||||
noInlineDecorator(out);
|
||||
out.write('g$name() {\n');
|
||||
out.write(' // C${generateCommentName(bits, bit)};\n');
|
||||
|
||||
// Construct new instances of each class and pass them to the typeTest
|
||||
for (var cls in mixerClassNames[bit]) {
|
||||
out.write(' Expect.isFalse(typeTest($cls()));\n');
|
||||
}
|
||||
newline(out);
|
||||
|
||||
// Invoke the test closure for each class.
|
||||
for (var cls in mixerClassNames[bit]) {
|
||||
out.write(' Expect.isTrue(closure$cls($cls())($cls()));\n');
|
||||
}
|
||||
newline(out);
|
||||
|
||||
// Verify the runtimeTypes of the closures haven't been mangled.
|
||||
for (var cls in mixerClassNames[bit]) {
|
||||
out.write(' Expect.equals(closure$cls($cls()).runtimeType.toString(), ');
|
||||
out.write("'($cls) => bool');\n");
|
||||
}
|
||||
newline(out);
|
||||
|
||||
// Collect the names so we can sort them and put them in a canonical order.
|
||||
int count = 0;
|
||||
List<String> namesBits = [];
|
||||
names[bit].forEach((nameBits) {
|
||||
var nameString = generateBitString(nameBits);
|
||||
|
@ -200,6 +342,9 @@ class GraphIsomorphizer {
|
|||
count++;
|
||||
});
|
||||
|
||||
out.write(' Set<String> uniques = {};\n\n'
|
||||
' // f${generateCommentName(bits, bit)};\n');
|
||||
|
||||
namesBits.sort();
|
||||
for (var name in namesBits) {
|
||||
out.write(' f$name(uniques, $bit);\n');
|
||||
|
@ -300,7 +445,7 @@ class GraphIsomorphizer {
|
|||
var file = File(this.outDirectory + '/' + filename);
|
||||
file.createSync(recursive: true);
|
||||
var sink = file.openWrite();
|
||||
sink.write(contents);
|
||||
sink.write(DartFormatter().format(contents.toString()));
|
||||
sink.close();
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue