Skip to content

Commit bba1aec

Browse files
committed
Version 2.11.0-213.4.beta
* Cherry-pick aa329dc to beta * Cherry-pick 32dfefb to beta * Cherry-pick 13d2937 to beta
2 parents 7cdfa7b + bdf0a2a commit bba1aec

19 files changed

+993
-44
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ class TypeBuilderComputer implements DartTypeVisitor<TypeBuilder> {
155155
}
156156
for (int i = 0; i < namedParameters.length; i++) {
157157
NamedType parameter = namedParameters[i];
158-
TypeBuilder type = positionalParameters[i].accept(this);
158+
TypeBuilder type = parameter.type.accept(this);
159159
formals[i + positionalParameters.length] = new FormalParameterBuilder(
160160
null, 0, type, parameter.name, null, -1, null)
161161
..kind = FormalParameterKind.optionalNamed;
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import 'main_lib.dart';
2+
3+
void main() {
4+
int f({int x}) => null;
5+
Registry().register(f);
6+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
library;
2+
import self as self;
3+
4+
import "org-dartlang-testcase:///main_lib.dart";
5+
6+
static method main() → void
7+
;
8+
9+
library;
10+
import self as self2;
11+
import "dart:core" as core;
12+
13+
class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
14+
synthetic constructor •() → self2::DynamicDispatchRegistry<self2::DynamicDispatchRegistry::T*>*
15+
;
16+
method register(generic-covariant-impl self2::DynamicDispatchRegistry::T* function) → self2::DynamicDispatchRegistry::T*
17+
;
18+
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
19+
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
20+
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
21+
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
22+
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
23+
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
24+
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
25+
abstract member-signature method toString() → core::String*; -> core::Object::toString
26+
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
27+
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
28+
}
29+
class Registry extends self2::DynamicDispatchRegistry<({x: core::int*}) →* core::int*> {
30+
synthetic constructor •() → self2::Registry*
31+
;
32+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
library;
2+
import self as self;
3+
import "dart:core" as core;
4+
import "main_lib.dart" as mai;
5+
6+
import "org-dartlang-testcase:///main_lib.dart";
7+
8+
static method main() → void {
9+
function f({core::int* x = #C1}) → core::int*
10+
return null;
11+
new mai::Registry::•().{mai::DynamicDispatchRegistry::register}(f);
12+
}
13+
14+
library;
15+
import self as mai;
16+
import "dart:core" as core;
17+
18+
class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
19+
synthetic constructor •() → mai::DynamicDispatchRegistry<mai::DynamicDispatchRegistry::T*>*
20+
: super core::Object::•()
21+
;
22+
method register(generic-covariant-impl mai::DynamicDispatchRegistry::T* function) → mai::DynamicDispatchRegistry::T*
23+
return null;
24+
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
25+
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
26+
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
27+
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
28+
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
29+
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
30+
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
31+
abstract member-signature method toString() → core::String*; -> core::Object::toString
32+
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
33+
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
34+
}
35+
class Registry extends mai::DynamicDispatchRegistry<({x: core::int*}) →* core::int*> {
36+
synthetic constructor •() → mai::Registry*
37+
: super mai::DynamicDispatchRegistry::•()
38+
;
39+
}
40+
41+
constants {
42+
#C1 = null
43+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
library;
2+
import self as self;
3+
import "dart:core" as core;
4+
import "main_lib.dart" as mai;
5+
6+
import "org-dartlang-testcase:///main_lib.dart";
7+
8+
static method main() → void {
9+
function f({core::int* x = #C1}) → core::int*
10+
return null;
11+
new mai::Registry::•().{mai::DynamicDispatchRegistry::register}(f);
12+
}
13+
14+
library;
15+
import self as mai;
16+
import "dart:core" as core;
17+
18+
class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
19+
synthetic constructor •() → mai::DynamicDispatchRegistry<mai::DynamicDispatchRegistry::T*>*
20+
: super core::Object::•()
21+
;
22+
method register(generic-covariant-impl mai::DynamicDispatchRegistry::T* function) → mai::DynamicDispatchRegistry::T*
23+
return null;
24+
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
25+
abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
26+
abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
27+
abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
28+
abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
29+
abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
30+
abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
31+
abstract member-signature method toString() → core::String*; -> core::Object::toString
32+
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
33+
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
34+
}
35+
class Registry extends mai::DynamicDispatchRegistry<({x: core::int*}) →* core::int*> {
36+
synthetic constructor •() → mai::Registry*
37+
: super mai::DynamicDispatchRegistry::•()
38+
;
39+
}
40+
41+
constants {
42+
#C1 = null
43+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import 'main_lib.dart';
2+
3+
void main() {}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import 'main_lib.dart';
2+
3+
void main() {}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class DynamicDispatchRegistry<T extends Function> {
2+
T register(T function) => null;
3+
}
4+
5+
class Registry extends DynamicDispatchRegistry<int Function({int x})> {}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
main_lib.dart

0 commit comments

Comments
 (0)