[cfe] Add test for issue 53607
Closes #53607 Change-Id: I5b636d11c65b7fc9ef77a0dccbc4b44090112024 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/335466 Reviewed-by: Jens Johansen <jensj@google.com> Commit-Queue: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
committed by
Commit Queue
parent
e15806ae42
commit
6830cafbff
@@ -0,0 +1,15 @@
|
||||
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
|
||||
// for details. All rights reserved. Use of this source code is governed by b
|
||||
// BSD-style license that can be found in the LICENSE file.
|
||||
|
||||
extension type E._(int i) {
|
||||
E.foo(int i) : this._(i);
|
||||
int get value => i;
|
||||
int get foo => i;
|
||||
}
|
||||
|
||||
void main() {
|
||||
E e = E.foo(1);
|
||||
print(e.value);
|
||||
print(e.foo);
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this = i;
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this;
|
||||
#this = self::E|constructor#_(i);
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static method main() → void {
|
||||
self::E /* = core::int */ e = self::E|constructor#foo(1);
|
||||
core::print(self::E|get#value(e));
|
||||
core::print(self::E|get#foo(e));
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this = i;
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this;
|
||||
#this = self::E|constructor#_(i);
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static method main() → void {
|
||||
self::E /* = core::int */ e = self::E|constructor#foo(1);
|
||||
core::print(self::E|get#value(e));
|
||||
core::print(self::E|get#foo(e));
|
||||
}
|
||||
@@ -0,0 +1,6 @@
|
||||
extension type E._(int i) {
|
||||
E.foo(int i) : this._(i);
|
||||
int get value => i;
|
||||
int get foo => i;
|
||||
}
|
||||
void main() {}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
extension type E._(int i) {
|
||||
E.foo(int i) : this._(i);
|
||||
int get foo => i;
|
||||
int get value => i;
|
||||
}
|
||||
void main() {}
|
||||
@@ -0,0 +1,35 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this = i;
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this;
|
||||
#this = self::E|constructor#_(i);
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static method main() → void {
|
||||
self::E /* = core::int */ e = self::E|constructor#foo(1);
|
||||
core::print(self::E|get#value(e));
|
||||
core::print(self::E|get#foo(e));
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this = i;
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this;
|
||||
#this = self::E|constructor#_(i);
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static method main() → void {
|
||||
self::E /* = core::int */ e = self::E|constructor#foo(1);
|
||||
core::print(self::E|get#value(e));
|
||||
core::print(self::E|get#foo(e));
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */
|
||||
;
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */
|
||||
;
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
;
|
||||
static method main() → void
|
||||
;
|
||||
@@ -0,0 +1,35 @@
|
||||
library;
|
||||
import self as self;
|
||||
import "dart:core" as core;
|
||||
|
||||
extension type E(core::int i) {
|
||||
abstract extension-type-member representation-field get i() → core::int;
|
||||
get value = self::E|get#value;
|
||||
get foo = self::E|get#foo;
|
||||
constructor _ = self::E|constructor#_;
|
||||
constructor tearoff _ = self::E|constructor#_#_#tearOff;
|
||||
constructor foo = self::E|constructor#foo;
|
||||
constructor tearoff foo = self::E|constructor#_#foo#tearOff;
|
||||
}
|
||||
static extension-type-member method E|constructor#_(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this = i;
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#_#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#_(i);
|
||||
static extension-type-member method E|constructor#foo(core::int i) → self::E /* = core::int */ {
|
||||
lowered final self::E /* = core::int */ #this;
|
||||
#this = self::E|constructor#_(i);
|
||||
return #this;
|
||||
}
|
||||
static extension-type-member method E|constructor#_#foo#tearOff(core::int i) → self::E /* = core::int */
|
||||
return self::E|constructor#foo(i);
|
||||
static extension-type-member method E|get#value(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static extension-type-member method E|get#foo(lowered final self::E /* = core::int */ #this) → core::int
|
||||
return #this as{Unchecked} core::int;
|
||||
static method main() → void {
|
||||
self::E /* = core::int */ e = self::E|constructor#foo(1);
|
||||
core::print(self::E|get#value(e));
|
||||
core::print(self::E|get#foo(e));
|
||||
}
|
||||
Reference in New Issue
Block a user