Skip to content

Commit 9f56e28

Browse files
Mixin Applications with a Vengeance
Change-Id: I213f99234f29abd7e2ec03dc8451ed6dd16f3d03 Reviewed-on: https://dart-review.googlesource.com/45021 Reviewed-by: Kevin Millikin <[email protected]>
1 parent 3f71dc5 commit 9f56e28

File tree

75 files changed

+524
-437
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+524
-437
lines changed

pkg/front_end/lib/src/fasta/kernel/kernel_library_builder.dart

Lines changed: 175 additions & 257 deletions
Large diffs are not rendered by default.

pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ class F extends core::Object implements self::B {
3939
: super core::Object::•()
4040
;
4141
}
42-
abstract class _Object&B = core::Object with self::B {
42+
abstract class _G&Object&B = core::Object with self::B {
4343
}
44-
class G extends self::_Object&B {
44+
class G extends self::_G&Object&B {
4545
field dynamic x = null;
4646
synthetic constructor •() → void
4747
: super core::Object::•()

pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ class F extends core::Object implements self::B {
3333
synthetic constructor •() → void
3434
;
3535
}
36-
abstract class _Object&B = core::Object with self::B {
36+
abstract class _G&Object&B = core::Object with self::B {
3737
}
38-
class G extends self::_Object&B {
38+
class G extends self::_G&Object&B {
3939
field dynamic x;
4040
synthetic constructor •() → void
4141
;

pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ class F extends core::Object implements self::B {
3939
: super core::Object::•()
4040
;
4141
}
42-
abstract class _Object&B = core::Object with self::B {
42+
abstract class _G&Object&B = core::Object with self::B {
4343
}
44-
class G extends self::_Object&B {
44+
class G extends self::_G&Object&B {
4545
field core::int x = null;
4646
synthetic constructor •() → void
4747
: super core::Object::•()

pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ class F extends core::Object implements self::B {
3838
: super core::Object::•()
3939
;
4040
}
41-
abstract class _Object&B = core::Object with self::B {
41+
abstract class _G&Object&B = core::Object with self::B {
4242
}
43-
class G extends self::_Object&B {
43+
class G extends self::_G&Object&B {
4444
field dynamic x = null;
4545
synthetic constructor •() → void
4646
: super core::Object::•()

pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ class F extends core::Object implements self::B {
3333
synthetic constructor •() → void
3434
;
3535
}
36-
abstract class _Object&B = core::Object with self::B {
36+
abstract class _G&Object&B = core::Object with self::B {
3737
}
38-
class G extends self::_Object&B {
38+
class G extends self::_G&Object&B {
3939
field dynamic x;
4040
synthetic constructor •() → void
4141
;

pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ class F extends core::Object implements self::B {
3838
: super core::Object::•()
3939
;
4040
}
41-
abstract class _Object&B = core::Object with self::B {
41+
abstract class _G&Object&B = core::Object with self::B {
4242
}
43-
class G extends self::_Object&B {
43+
class G extends self::_G&Object&B {
4444
field core::int x = null;
4545
synthetic constructor •() → void
4646
: super core::Object::•()

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ class M1 extends core::Object implements self::I<core::int> {
1414
synthetic constructor •() → void
1515
;
1616
}
17-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
17+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
1818
}
19-
class A extends self::_M1&M0 {
19+
class A extends self::_A&M1&M0 {
2020
synthetic constructor •() → void
2121
;
2222
}

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<core::int, core::String> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::String> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ class M1 extends core::Object implements self::I<core::int> {
1414
synthetic constructor •() → void
1515
;
1616
}
17-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
17+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
1818
}
19-
class A extends self::_M1&M0 {
19+
class A extends self::_A&M1&M0 {
2020
synthetic constructor •() → void
2121
;
2222
}

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<core::int, core::int> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::int> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ class M1 extends core::Object implements self::I<core::int> {
1414
synthetic constructor •() → void
1515
;
1616
}
17-
abstract class _M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
17+
abstract class _A&M1&M0 = self::M1 with self::M0<dynamic, dynamic> {
1818
}
19-
class A extends self::_M1&M0 {
19+
class A extends self::_A&M1&M0 {
2020
synthetic constructor •() → void
2121
;
2222
}

pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1 extends core::Object implements self::I<core::int> {
1717
: super core::Object::•()
1818
;
1919
}
20-
abstract class _M1&M0 = self::M1 with self::M0<core::int, core::Comparable<dynamic>> {
20+
abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::Comparable<dynamic>> {
2121
}
22-
class A extends self::_M1&M0 {
22+
class A extends self::_A&M1&M0 {
2323
synthetic constructor •() → void
2424
: super self::M1::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.direct.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ class J<X extends core::Object> extends core::Object {
1212
: super core::Object::•()
1313
;
1414
}
15-
abstract class _I&J^#T0^#T1<#T0 extends core::Object, #T1 extends core::Object> = self::I<self::_I&J^#T0^#T1::#T0> with self::J<self::_I&J^#T0^#T1::#T1> {
15+
abstract class _M0&I&J<X extends core::Object, Y extends core::Object> = self::I<self::_M0&I&J::X> with self::J<self::_M0&I&J::Y> {
1616
}
17-
class M0<X extends core::Object, Y extends core::Object> extends self::_I&J^#T0^#T1<self::M0::X, self::M0::Y> {
17+
class M0<X extends core::Object, Y extends core::Object> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
1818
synthetic constructor •() → void
1919
: super self::I::•()
2020
;
@@ -29,9 +29,9 @@ class M2 extends self::M1 implements self::J<core::double> {
2929
: super self::M1::•()
3030
;
3131
}
32-
abstract class _M2&M0 = self::M2 with self::M0<dynamic, dynamic> {
32+
abstract class _A&M2&M0 = self::M2 with self::M0<dynamic, dynamic> {
3333
}
34-
class A extends self::_M2&M0 {
34+
class A extends self::_A&M2&M0 {
3535
synthetic constructor •() → void
3636
: super self::M2::•()
3737
;

pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.outline.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ class J<X extends core::Object> extends core::Object {
1010
synthetic constructor •() → void
1111
;
1212
}
13-
abstract class _I&J^#T0^#T1<#T0 extends core::Object, #T1 extends core::Object> = self::I<self::_I&J^#T0^#T1::#T0> with self::J<self::_I&J^#T0^#T1::#T1> {
13+
abstract class _M0&I&J<X extends core::Object, Y extends core::Object> = self::I<self::_M0&I&J::X> with self::J<self::_M0&I&J::Y> {
1414
}
15-
class M0<X extends core::Object, Y extends core::Object> extends self::_I&J^#T0^#T1<self::M0::X, self::M0::Y> {
15+
class M0<X extends core::Object, Y extends core::Object> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
1616
synthetic constructor •() → void
1717
;
1818
}
@@ -24,9 +24,9 @@ class M2 extends self::M1 implements self::J<core::double> {
2424
synthetic constructor •() → void
2525
;
2626
}
27-
abstract class _M2&M0 = self::M2 with self::M0<dynamic, dynamic> {
27+
abstract class _A&M2&M0 = self::M2 with self::M0<dynamic, dynamic> {
2828
}
29-
class A extends self::_M2&M0 {
29+
class A extends self::_A&M2&M0 {
3030
synthetic constructor •() → void
3131
;
3232
}

pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.strong.expect

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ class J<X extends core::Object> extends core::Object {
1212
: super core::Object::•()
1313
;
1414
}
15-
abstract class _I&J^#T0^#T1<#T0 extends core::Object, #T1 extends core::Object> = self::I<self::_I&J^#T0^#T1::#T0> with self::J<self::_I&J^#T0^#T1::#T1> {
15+
abstract class _M0&I&J<X extends core::Object, Y extends core::Object> = self::I<self::_M0&I&J::X> with self::J<self::_M0&I&J::Y> {
1616
}
17-
class M0<X extends core::Object, Y extends core::Object> extends self::_I&J^#T0^#T1<self::M0::X, self::M0::Y> {
17+
class M0<X extends core::Object, Y extends core::Object> extends self::_M0&I&J<self::M0::X, self::M0::Y> {
1818
synthetic constructor •() → void
1919
: super self::I::•()
2020
;
@@ -29,9 +29,9 @@ class M2 extends self::M1 implements self::J<core::double> {
2929
: super self::M1::•()
3030
;
3131
}
32-
abstract class _M2&M0 = self::M2 with self::M0<core::int, core::double> {
32+
abstract class _A&M2&M0 = self::M2 with self::M0<core::int, core::double> {
3333
}
34-
class A extends self::_M2&M0 {
34+
class A extends self::_A&M2&M0 {
3535
synthetic constructor •() → void
3636
: super self::M2::•()
3737
;

pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ class M2<T extends core::Object> extends self::M1<core::Map<self::M2::T, self::M
2222
: super self::M1::•()
2323
;
2424
}
25-
abstract class _M2&M0^#U0^<#U0 extends core::Object> = self::M2<self::_M2&M0^#U0^::#U0> with self::M0<dynamic> {
25+
abstract class _A&M2&M0 = self::M2<core::int> with self::M0<dynamic> {
2626
}
27-
class A extends self::_M2&M0^#U0^<core::int> {
27+
class A extends self::_A&M2&M0 {
2828
synthetic constructor •() → void
2929
: super self::M2::•()
3030
;

pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ class M2<T extends core::Object> extends self::M1<core::Map<self::M2::T, self::M
1818
synthetic constructor •() → void
1919
;
2020
}
21-
abstract class _M2&M0^#U0^<#U0 extends core::Object> = self::M2<self::_M2&M0^#U0^::#U0> with self::M0<dynamic> {
21+
abstract class _A&M2&M0 = self::M2<core::int> with self::M0<dynamic> {
2222
}
23-
class A extends self::_M2&M0^#U0^<core::int> {
23+
class A extends self::_A&M2&M0 {
2424
synthetic constructor •() → void
2525
;
2626
}

pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ class M2<T extends core::Object> extends self::M1<core::Map<self::M2::T, self::M
2222
: super self::M1::•()
2323
;
2424
}
25-
abstract class _M2&M0^#U0^<#U0 extends core::Object> = self::M2<self::_M2&M0^#U0^::#U0> with self::M0<core::Map<self::_M2&M0^#U0^::#U0, self::_M2&M0^#U0^::#U0>> {
25+
abstract class _A&M2&M0 = self::M2<core::int> with self::M0<core::Map<core::int, core::int>> {
2626
}
27-
class A extends self::_M2&M0^#U0^<core::int> {
27+
class A extends self::_A&M2&M0 {
2828
synthetic constructor •() → void
2929
: super self::M2::•()
3030
;

pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.direct.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1<T extends core::Object> extends self::I<self::M1::T> {
1717
: super self::I::•()
1818
;
1919
}
20-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<dynamic> {
20+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<dynamic> {
2121
}
22-
class A extends self::_M0&M1^#U0^<core::int> {
22+
class A extends self::_A&M0&M1 {
2323
synthetic constructor •() → void
2424
: super self::M0::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.outline.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ class M1<T extends core::Object> extends self::I<self::M1::T> {
1414
synthetic constructor •() → void
1515
;
1616
}
17-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<dynamic> {
17+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<dynamic> {
1818
}
19-
class A extends self::_M0&M1^#U0^<core::int> {
19+
class A extends self::_A&M0&M1 {
2020
synthetic constructor •() → void
2121
;
2222
}

pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.strong.expect

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ class M1<T extends core::Object> extends self::I<self::M1::T> {
1717
: super self::I::•()
1818
;
1919
}
20-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<self::_M0&M1^#U0^::#U0> {
20+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> {
2121
}
22-
class A extends self::_M0&M1^#U0^<core::int> {
22+
class A extends self::_A&M0&M1 {
2323
synthetic constructor •() → void
2424
: super self::M0::•()
2525
;

pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.direct.expect

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class M2<T extends core::Object> extends self::I<self::M2::T> {
2222
: super self::I::•()
2323
;
2424
}
25-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<dynamic> {
25+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<dynamic> {
2626
}
27-
abstract class __M0&M1&M2^#U0^^<#U0 extends core::Object> = self::_M0&M1^#U0^<self::__M0&M1&M2^#U0^^::#U0> with self::M2<dynamic> {
27+
abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<dynamic> {
2828
}
29-
class A extends self::__M0&M1&M2^#U0^^<core::int> {
29+
class A extends self::_A&M0&M1&M2 {
3030
synthetic constructor •() → void
3131
: super self::M0::•()
3232
;

pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.outline.expect

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@ class M2<T extends core::Object> extends self::I<self::M2::T> {
1818
synthetic constructor •() → void
1919
;
2020
}
21-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<dynamic> {
21+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<dynamic> {
2222
}
23-
abstract class __M0&M1&M2^#U0^^<#U0 extends core::Object> = self::_M0&M1^#U0^<self::__M0&M1&M2^#U0^^::#U0> with self::M2<dynamic> {
23+
abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<dynamic> {
2424
}
25-
class A extends self::__M0&M1&M2^#U0^^<core::int> {
25+
class A extends self::_A&M0&M1&M2 {
2626
synthetic constructor •() → void
2727
;
2828
}

pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.strong.expect

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,11 @@ class M2<T extends core::Object> extends self::I<self::M2::T> {
2222
: super self::I::•()
2323
;
2424
}
25-
abstract class _M0&M1^#U0^<#U0 extends core::Object> = self::M0<self::_M0&M1^#U0^::#U0> with self::M1<self::_M0&M1^#U0^::#U0> {
25+
abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> {
2626
}
27-
abstract class __M0&M1&M2^#U0^^<#U0 extends core::Object> = self::_M0&M1^#U0^<self::__M0&M1&M2^#U0^^::#U0> with self::M2<self::__M0&M1&M2^#U0^^::#U0> {
27+
abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int> {
2828
}
29-
class A extends self::__M0&M1&M2^#U0^^<core::int> {
29+
class A extends self::_A&M0&M1&M2 {
3030
synthetic constructor •() → void
3131
: super self::M0::•()
3232
;

pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.direct.expect

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@ class M1<T extends core::Object> extends self::I<self::M1::T> {
1717
: super self::I::•()
1818
;
1919
}
20-
abstract class _Object&M0 = core::Object with self::M0<dynamic> {
20+
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> {
2121
}
22-
abstract class __Object&M0&M1^^^#U0<#U0 extends core::Object> = self::_Object&M0 with self::M1<self::__Object&M0&M1^^^#U0::#U0> {
22+
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> {
2323
}
24-
class A extends self::__Object&M0&M1^^^#U0<core::int> {
24+
class A extends self::_A&Object&M0&M1 {
2525
synthetic constructor •() → void
2626
: super core::Object::•()
2727
;

pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.outline.expect

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@ class M1<T extends core::Object> extends self::I<self::M1::T> {
1414
synthetic constructor •() → void
1515
;
1616
}
17-
abstract class _Object&M0 = core::Object with self::M0<dynamic> {
17+
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> {
1818
}
19-
abstract class __Object&M0&M1^^^#U0<#U0 extends core::Object> = self::_Object&M0 with self::M1<self::__Object&M0&M1^^^#U0::#U0> {
19+
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> {
2020
}
21-
class A extends self::__Object&M0&M1^^^#U0<core::int> {
21+
class A extends self::_A&Object&M0&M1 {
2222
synthetic constructor •() → void
2323
;
2424
}

0 commit comments

Comments
 (0)