Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit bb6aa5a

Browse files
author
Dart CI
committed
Version 2.19.0-428.0.dev
Merge 16da66f into dev
2 parents 6bb1de7 + 16da66f commit bb6aa5a

File tree

8 files changed

+145
-109
lines changed

8 files changed

+145
-109
lines changed

pkg/analyzer/lib/src/dart/ast/ast.dart

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10967,14 +10967,21 @@ class RestPatternElementImpl extends AstNodeImpl
1096710967
RestPatternElementImpl({
1096810968
required this.operator,
1096910969
required this.pattern,
10970-
});
10970+
}) {
10971+
_becomeParentOf(pattern);
10972+
}
1097110973

1097210974
@override
1097310975
Token get beginToken => operator;
1097410976

1097510977
@override
1097610978
Token get endToken => pattern?.endToken ?? operator;
1097710979

10980+
@override
10981+
ChildEntities get _childEntities => ChildEntities()
10982+
..addToken('operator', operator)
10983+
..addNode('pattern', pattern);
10984+
1097810985
@override
1097910986
E? accept<E>(AstVisitor<E> visitor) {
1098010987
return visitor.visitRestPatternElement(this);

pkg/analyzer/lib/src/generated/resolver.dart

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -911,9 +911,10 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
911911
}
912912

913913
@override
914-
DartPattern? getRestPatternElementPattern(covariant DartPatternImpl node) {
915-
// TODO(scheglov): implement getRestPatternElementPattern
916-
throw UnimplementedError();
914+
DartPattern? getRestPatternElementPattern(
915+
covariant RestPatternElementImpl element,
916+
) {
917+
return element.pattern;
917918
}
918919

919920
@override
@@ -1038,11 +1039,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
10381039
@override
10391040
void handleListPatternRestElement(
10401041
DartPattern container,
1041-
covariant DartPattern restElement,
1042-
) {
1043-
// TODO(scheglov): implement handleListPatternRestElement
1044-
throw UnimplementedError();
1045-
}
1042+
covariant RestPatternElementImpl restElement,
1043+
) {}
10461044

10471045
@override
10481046
void handleMapPatternEntry(DartPattern container, AstNode entryElement) {
@@ -1145,9 +1143,8 @@ class ResolverVisitor extends ThrowingAstVisitor<void>
11451143
}
11461144

11471145
@override
1148-
bool isRestPatternElement(covariant DartPatternImpl node) {
1149-
// TODO(scheglov): implement isRestPatternElement
1150-
return false;
1146+
bool isRestPatternElement(AstNode node) {
1147+
return node is RestPatternElementImpl;
11511148
}
11521149

11531150
@override

pkg/analyzer/test/generated/patterns_parser_test.dart

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6706,6 +6706,7 @@ ListPattern
67066706
leftBracket: [
67076707
elements
67086708
RestPatternElement
6709+
operator: ...
67096710
rightBracket: ]
67106711
''');
67116712
}
@@ -6725,6 +6726,10 @@ ListPattern
67256726
leftBracket: [
67266727
elements
67276728
RestPatternElement
6729+
operator: ...
6730+
pattern: VariablePattern
6731+
keyword: var
6732+
name: y
67286733
rightBracket: ]
67296734
''');
67306735
}

pkg/analyzer/test/src/dart/resolution/list_pattern_test.dart

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,33 @@ ListPattern
101101
''');
102102
}
103103

104+
test_matchList_noTypeArguments_restElement() async {
105+
await assertNoErrorsInCode(r'''
106+
void f(List<int> x) {
107+
if (x case [0, ...var rest]) {}
108+
}
109+
''');
110+
final node = findNode.singleGuardedPattern.pattern;
111+
assertResolvedNodeText(node, r'''
112+
ListPattern
113+
leftBracket: [
114+
elements
115+
ConstantPattern
116+
expression: IntegerLiteral
117+
literal: 0
118+
staticType: int
119+
RestPatternElement
120+
operator: ...
121+
pattern: VariablePattern
122+
keyword: var
123+
name: rest
124+
declaredElement: hasImplicitType rest@46
125+
type: List<int>
126+
rightBracket: ]
127+
requiredType: List<int>
128+
''');
129+
}
130+
104131
test_matchList_noTypeArguments_variable_untyped() async {
105132
await assertNoErrorsInCode(r'''
106133
void f(List<int> x) {

pkg/compiler/test/dump_info/data/deferred/main.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -326,12 +326,12 @@ import 'lib.dart' deferred as lib;
326326
"functionKind": 2
327327
}],
328328
holding=[
329-
{"id":"function/dart:_js_helper::loadDeferredLibrary","mask":null},
330-
{"id":"function/dart:_rti::_setArrayType","mask":null},
331-
{"id":"function/dart:_rti::findType","mask":null},
329+
{"id":"function/dart:_js_helper::loadDeferredLibrary"},
330+
{"id":"function/dart:_rti::_setArrayType"},
331+
{"id":"function/dart:_rti::findType"},
332332
{"id":"function/dart:async::_Future.then","mask":"[exact=_Future]"},
333-
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call","mask":null},
334-
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call","mask":null}]
333+
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call"},
334+
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call"}]
335335
*/
336336
/*canary.member: main:
337337
closure=[{

pkg/compiler/test/dump_info/data/deferred_future/main.dart

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -303,18 +303,18 @@ import 'lib2.dart' as lib2;
303303
"functionKind": 0
304304
}],
305305
holding=[
306-
{"id":"function/dart:_js_helper::checkDeferredIsLoaded","mask":null},
307-
{"id":"function/dart:_js_helper::loadDeferredLibrary","mask":null},
308-
{"id":"function/dart:_rti::findType","mask":null},
309-
{"id":"function/dart:async::StreamIterator.StreamIterator","mask":null},
310-
{"id":"function/dart:async::_asyncAwait","mask":null},
311-
{"id":"function/dart:async::_asyncRethrow","mask":null},
312-
{"id":"function/dart:async::_asyncReturn","mask":null},
313-
{"id":"function/dart:async::_asyncStartSync","mask":null},
314-
{"id":"function/dart:async::_makeAsyncAwaitCompleter","mask":null},
315-
{"id":"function/dart:async::_wrapJsFunctionForAsync","mask":null},
306+
{"id":"function/dart:_js_helper::checkDeferredIsLoaded"},
307+
{"id":"function/dart:_js_helper::loadDeferredLibrary"},
308+
{"id":"function/dart:_rti::findType"},
309+
{"id":"function/dart:async::StreamIterator.StreamIterator"},
310+
{"id":"function/dart:async::_asyncAwait"},
311+
{"id":"function/dart:async::_asyncRethrow"},
312+
{"id":"function/dart:async::_asyncReturn"},
313+
{"id":"function/dart:async::_asyncStartSync"},
314+
{"id":"function/dart:async::_makeAsyncAwaitCompleter"},
315+
{"id":"function/dart:async::_wrapJsFunctionForAsync"},
316316
{"id":"function/memory:sdk/tests/web/native/lib2.dart::A.method","mask":"inlined"},
317-
{"id":"function/memory:sdk/tests/web/native/lib2.dart::A.method","mask":null}]
317+
{"id":"function/memory:sdk/tests/web/native/lib2.dart::A.method"}]
318318
*/
319319
/*canary.member: main:
320320
function=[{

pkg/compiler/test/dump_info/data_new/mixin_with_tearoff_test.dart

Lines changed: 80 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -157,41 +157,41 @@ class Mixin {
157157
"functionKind": 2
158158
}],
159159
holding=[
160-
{"id":"function/dart:_rti::Rti._bind","mask":null},
161-
{"id":"function/dart:_rti::Rti._eval","mask":null},
162-
{"id":"function/dart:_rti::_arrayInstanceType","mask":null},
163-
{"id":"function/dart:_rti::_asBool","mask":null},
164-
{"id":"function/dart:_rti::_asBoolQ","mask":null},
165-
{"id":"function/dart:_rti::_asBoolS","mask":null},
166-
{"id":"function/dart:_rti::_asDouble","mask":null},
167-
{"id":"function/dart:_rti::_asDoubleQ","mask":null},
168-
{"id":"function/dart:_rti::_asDoubleS","mask":null},
169-
{"id":"function/dart:_rti::_asInt","mask":null},
170-
{"id":"function/dart:_rti::_asIntQ","mask":null},
171-
{"id":"function/dart:_rti::_asIntS","mask":null},
172-
{"id":"function/dart:_rti::_asNum","mask":null},
173-
{"id":"function/dart:_rti::_asNumQ","mask":null},
174-
{"id":"function/dart:_rti::_asNumS","mask":null},
175-
{"id":"function/dart:_rti::_asObject","mask":null},
176-
{"id":"function/dart:_rti::_asString","mask":null},
177-
{"id":"function/dart:_rti::_asStringQ","mask":null},
178-
{"id":"function/dart:_rti::_asStringS","mask":null},
179-
{"id":"function/dart:_rti::_asTop","mask":null},
180-
{"id":"function/dart:_rti::_generalAsCheckImplementation","mask":null},
181-
{"id":"function/dart:_rti::_generalIsTestImplementation","mask":null},
182-
{"id":"function/dart:_rti::_generalNullableAsCheckImplementation","mask":null},
183-
{"id":"function/dart:_rti::_generalNullableIsTestImplementation","mask":null},
184-
{"id":"function/dart:_rti::_installSpecializedAsCheck","mask":null},
185-
{"id":"function/dart:_rti::_installSpecializedIsTest","mask":null},
186-
{"id":"function/dart:_rti::_instanceType","mask":null},
187-
{"id":"function/dart:_rti::_isBool","mask":null},
188-
{"id":"function/dart:_rti::_isInt","mask":null},
189-
{"id":"function/dart:_rti::_isNum","mask":null},
190-
{"id":"function/dart:_rti::_isObject","mask":null},
191-
{"id":"function/dart:_rti::_isString","mask":null},
192-
{"id":"function/dart:_rti::_isTop","mask":null},
193-
{"id":"function/dart:_rti::findType","mask":null},
194-
{"id":"function/dart:_rti::instanceType","mask":null}]
160+
{"id":"function/dart:_rti::Rti._bind"},
161+
{"id":"function/dart:_rti::Rti._eval"},
162+
{"id":"function/dart:_rti::_arrayInstanceType"},
163+
{"id":"function/dart:_rti::_asBool"},
164+
{"id":"function/dart:_rti::_asBoolQ"},
165+
{"id":"function/dart:_rti::_asBoolS"},
166+
{"id":"function/dart:_rti::_asDouble"},
167+
{"id":"function/dart:_rti::_asDoubleQ"},
168+
{"id":"function/dart:_rti::_asDoubleS"},
169+
{"id":"function/dart:_rti::_asInt"},
170+
{"id":"function/dart:_rti::_asIntQ"},
171+
{"id":"function/dart:_rti::_asIntS"},
172+
{"id":"function/dart:_rti::_asNum"},
173+
{"id":"function/dart:_rti::_asNumQ"},
174+
{"id":"function/dart:_rti::_asNumS"},
175+
{"id":"function/dart:_rti::_asObject"},
176+
{"id":"function/dart:_rti::_asString"},
177+
{"id":"function/dart:_rti::_asStringQ"},
178+
{"id":"function/dart:_rti::_asStringS"},
179+
{"id":"function/dart:_rti::_asTop"},
180+
{"id":"function/dart:_rti::_generalAsCheckImplementation"},
181+
{"id":"function/dart:_rti::_generalIsTestImplementation"},
182+
{"id":"function/dart:_rti::_generalNullableAsCheckImplementation"},
183+
{"id":"function/dart:_rti::_generalNullableIsTestImplementation"},
184+
{"id":"function/dart:_rti::_installSpecializedAsCheck"},
185+
{"id":"function/dart:_rti::_installSpecializedIsTest"},
186+
{"id":"function/dart:_rti::_instanceType"},
187+
{"id":"function/dart:_rti::_isBool"},
188+
{"id":"function/dart:_rti::_isInt"},
189+
{"id":"function/dart:_rti::_isNum"},
190+
{"id":"function/dart:_rti::_isObject"},
191+
{"id":"function/dart:_rti::_isString"},
192+
{"id":"function/dart:_rti::_isTop"},
193+
{"id":"function/dart:_rti::findType"},
194+
{"id":"function/dart:_rti::instanceType"}]
195195
*/
196196
void method(int t) {}
197197
}
@@ -245,42 +245,42 @@ class Mixin {
245245
"functionKind": 2
246246
}],
247247
holding=[
248-
{"id":"function/dart:_rti::Rti._bind","mask":null},
249-
{"id":"function/dart:_rti::Rti._eval","mask":null},
250-
{"id":"function/dart:_rti::_arrayInstanceType","mask":null},
251-
{"id":"function/dart:_rti::_asBool","mask":null},
252-
{"id":"function/dart:_rti::_asBoolQ","mask":null},
253-
{"id":"function/dart:_rti::_asBoolS","mask":null},
254-
{"id":"function/dart:_rti::_asDouble","mask":null},
255-
{"id":"function/dart:_rti::_asDoubleQ","mask":null},
256-
{"id":"function/dart:_rti::_asDoubleS","mask":null},
257-
{"id":"function/dart:_rti::_asInt","mask":null},
258-
{"id":"function/dart:_rti::_asIntQ","mask":null},
259-
{"id":"function/dart:_rti::_asIntS","mask":null},
260-
{"id":"function/dart:_rti::_asNum","mask":null},
261-
{"id":"function/dart:_rti::_asNumQ","mask":null},
262-
{"id":"function/dart:_rti::_asNumS","mask":null},
263-
{"id":"function/dart:_rti::_asObject","mask":null},
264-
{"id":"function/dart:_rti::_asString","mask":null},
265-
{"id":"function/dart:_rti::_asStringQ","mask":null},
266-
{"id":"function/dart:_rti::_asStringS","mask":null},
267-
{"id":"function/dart:_rti::_asTop","mask":null},
268-
{"id":"function/dart:_rti::_generalAsCheckImplementation","mask":null},
269-
{"id":"function/dart:_rti::_generalIsTestImplementation","mask":null},
270-
{"id":"function/dart:_rti::_generalNullableAsCheckImplementation","mask":null},
271-
{"id":"function/dart:_rti::_generalNullableIsTestImplementation","mask":null},
272-
{"id":"function/dart:_rti::_installSpecializedAsCheck","mask":null},
273-
{"id":"function/dart:_rti::_installSpecializedIsTest","mask":null},
274-
{"id":"function/dart:_rti::_instanceType","mask":null},
275-
{"id":"function/dart:_rti::_isBool","mask":null},
276-
{"id":"function/dart:_rti::_isInt","mask":null},
277-
{"id":"function/dart:_rti::_isNum","mask":null},
278-
{"id":"function/dart:_rti::_isObject","mask":null},
279-
{"id":"function/dart:_rti::_isString","mask":null},
280-
{"id":"function/dart:_rti::_isTop","mask":null},
281-
{"id":"function/dart:_rti::findType","mask":null},
282-
{"id":"function/dart:_rti::instanceType","mask":null},
283-
{"id":"function/memory:sdk/tests/web/native/main.dart::Mixin.method","mask":null}]
248+
{"id":"function/dart:_rti::Rti._bind"},
249+
{"id":"function/dart:_rti::Rti._eval"},
250+
{"id":"function/dart:_rti::_arrayInstanceType"},
251+
{"id":"function/dart:_rti::_asBool"},
252+
{"id":"function/dart:_rti::_asBoolQ"},
253+
{"id":"function/dart:_rti::_asBoolS"},
254+
{"id":"function/dart:_rti::_asDouble"},
255+
{"id":"function/dart:_rti::_asDoubleQ"},
256+
{"id":"function/dart:_rti::_asDoubleS"},
257+
{"id":"function/dart:_rti::_asInt"},
258+
{"id":"function/dart:_rti::_asIntQ"},
259+
{"id":"function/dart:_rti::_asIntS"},
260+
{"id":"function/dart:_rti::_asNum"},
261+
{"id":"function/dart:_rti::_asNumQ"},
262+
{"id":"function/dart:_rti::_asNumS"},
263+
{"id":"function/dart:_rti::_asObject"},
264+
{"id":"function/dart:_rti::_asString"},
265+
{"id":"function/dart:_rti::_asStringQ"},
266+
{"id":"function/dart:_rti::_asStringS"},
267+
{"id":"function/dart:_rti::_asTop"},
268+
{"id":"function/dart:_rti::_generalAsCheckImplementation"},
269+
{"id":"function/dart:_rti::_generalIsTestImplementation"},
270+
{"id":"function/dart:_rti::_generalNullableAsCheckImplementation"},
271+
{"id":"function/dart:_rti::_generalNullableIsTestImplementation"},
272+
{"id":"function/dart:_rti::_installSpecializedAsCheck"},
273+
{"id":"function/dart:_rti::_installSpecializedIsTest"},
274+
{"id":"function/dart:_rti::_instanceType"},
275+
{"id":"function/dart:_rti::_isBool"},
276+
{"id":"function/dart:_rti::_isInt"},
277+
{"id":"function/dart:_rti::_isNum"},
278+
{"id":"function/dart:_rti::_isObject"},
279+
{"id":"function/dart:_rti::_isString"},
280+
{"id":"function/dart:_rti::_isTop"},
281+
{"id":"function/dart:_rti::findType"},
282+
{"id":"function/dart:_rti::instanceType"},
283+
{"id":"function/memory:sdk/tests/web/native/main.dart::Mixin.method"}]
284284
*/
285285
class Clazz = Super<int> with Mixin;
286286

@@ -415,17 +415,17 @@ class Subclass extends Clazz {
415415
"functionKind": 2
416416
}],
417417
holding=[
418-
{"id":"function/dart:_js_helper::closureFromTearOff","mask":null},
419-
{"id":"function/dart:_rti::_setArrayType","mask":null},
420-
{"id":"function/dart:_rti::findType","mask":null},
421-
{"id":"function/memory:sdk/tests/web/native/main.dart::Clazz.method","mask":null},
418+
{"id":"function/dart:_js_helper::closureFromTearOff"},
419+
{"id":"function/dart:_rti::_setArrayType"},
420+
{"id":"function/dart:_rti::findType"},
421+
{"id":"function/memory:sdk/tests/web/native/main.dart::Clazz.method"},
422422
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.Subclass","mask":"inlined"},
423-
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.Subclass","mask":null},
423+
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.Subclass"},
424424
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.test","mask":"inlined"},
425-
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.test","mask":null},
426-
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call","mask":null},
427-
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call","mask":null},
428-
{"id":"function/package:expect/expect.dart::Expect.throws","mask":null}]
425+
{"id":"function/memory:sdk/tests/web/native/main.dart::Subclass.test"},
426+
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call"},
427+
{"id":"function/memory:sdk/tests/web/native/main.dart::main.main_closure.call"},
428+
{"id":"function/package:expect/expect.dart::Expect.throws"}]
429429
*/
430430
main() {
431431
Super<Object> s = new Subclass()..test();

tools/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,5 @@ CHANNEL dev
2727
MAJOR 2
2828
MINOR 19
2929
PATCH 0
30-
PRERELEASE 427
30+
PRERELEASE 428
3131
PRERELEASE_PATCH 0

0 commit comments

Comments
 (0)