[cfe] Build PatternVariableDeclaration in BodyBuilder

Change-Id: Ic55dbc03bf2cf4865275b186266c0f420263d406
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/273744
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
This commit is contained in:
Johnni Winther 2022-12-13 17:03:13 +00:00 committed by Commit Queue
parent e44cece2ca
commit e6d59342ff
157 changed files with 1331 additions and 18 deletions

View file

@ -8490,6 +8490,27 @@ class BodyBuilder extends StackListenerImpl
push(pattern);
}
}
@override
void handlePatternVariableDeclarationStatement(
Token keyword, Token equals, Token semicolon) {
debugEvent('PatternVariableDeclarationStatement');
assert(checkState(keyword, [
unionOfKinds([
ValueKinds.Expression,
ValueKinds.Generator,
ValueKinds.ProblemBuilder,
]),
ValueKinds.Pattern,
ValueKinds.AnnotationListOrNull,
]));
Expression initializer = popForValue();
Pattern pattern = toPattern(pop());
// TODO(johnniwinther,cstefantsova): Handle metadata.
pop(NullValue.Metadata) as List<Expression>?;
push(new PatternVariableDeclaration(pattern, initializer,
offset: keyword.charOffset, isFinal: keyword.lexeme == 'final'));
}
}
abstract class EnsureLoaded {

View file

@ -4742,38 +4742,29 @@ class WildcardPattern extends Pattern {
class PatternVariableDeclaration extends InternalStatement {
final Pattern pattern;
final Expression initializer;
final bool isFinal;
PatternVariableDeclaration(this.pattern, this.initializer,
{required int offset}) {
{required int offset, required this.isFinal}) {
fileOffset = offset;
}
@override
StatementInferenceResult acceptInference(InferenceVisitorImpl visitor) {
throw new UnimplementedError("PatternVariableDeclaration.acceptInference");
}
@override
R accept<R>(StatementVisitor<R> visitor) {
if (visitor is Printer || visitor is Precedence || visitor is Transformer) {
// Allow visitors needed for toString and replaceWith.
return visitor.defaultStatement(this);
}
return unsupported(
"${runtimeType}.accept on ${visitor.runtimeType}", -1, null);
}
@override
R accept1<R, A>(StatementVisitor1<R, A> visitor, A arg) {
return unsupported(
"${runtimeType}.accept1 on ${visitor.runtimeType}", -1, null);
return visitor.visitPatternVariableDeclaration(this);
}
@override
void toTextInternal(AstPrinter printer) {
if (isFinal) {
printer.write('final ');
} else {
printer.write('var ');
}
pattern.toTextInternal(printer);
printer.write(" = ");
printer.writeExpression(initializer);
printer.write(';');
}
@override

View file

@ -8103,6 +8103,12 @@ class InferenceVisitorImpl extends InferenceVisitorBase
return const StatementInferenceResult();
}
StatementInferenceResult visitPatternVariableDeclaration(
PatternVariableDeclaration node) {
return new StatementInferenceResult.single(
new ExpressionStatement(new InvalidExpression('$node')));
}
@override
ExpressionInferenceResult visitVariableGet(
covariant VariableGetImpl node, DartType typeContext) {

View file

@ -129,6 +129,7 @@ void main() {
_testIfCaseStatement();
_testPatternSwitchStatement();
_testSwitchExpression();
_testPatternVariableDeclaration();
});
}
@ -1312,3 +1313,19 @@ if (0 case 1 when 2) return;''');
'''
if (0 case 1 when 2) return 3; else return 4;''');
}
void _testPatternVariableDeclaration() {
testStatement(
new PatternVariableDeclaration(
new ExpressionPattern(new IntLiteral(0)), new IntLiteral(1),
isFinal: false, offset: TreeNode.noOffset),
'''
var 0 = 1;''');
testStatement(
new PatternVariableDeclaration(
new ExpressionPattern(new IntLiteral(0)), new IntLiteral(1),
isFinal: true, offset: TreeNode.noOffset),
'''
final 0 = 1;''');
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
late var (_) = x;
}

View file

@ -0,0 +1,38 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Undefined name '_'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Expected an identifier, but got ')'.
// Try inserting an identifier before ')'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Unexpected token ';'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:16: Error: Expected an identifier, but got '='.
// Try inserting an identifier before '='.
// late var (_) = x;
// ^
//
import self as self;
static method f(dynamic x) → dynamic {}

View file

@ -0,0 +1,38 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Undefined name '_'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Expected an identifier, but got ')'.
// Try inserting an identifier before ')'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Unexpected token ';'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:16: Error: Expected an identifier, but got '='.
// Try inserting an identifier before '='.
// late var (_) = x;
// ^
//
import self as self;
static method f(dynamic x) → dynamic {}

View file

@ -0,0 +1,38 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Undefined name '_'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Expected an identifier, but got ')'.
// Try inserting an identifier before ')'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Unexpected token ';'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:16: Error: Expected an identifier, but got '='.
// Try inserting an identifier before '='.
// late var (_) = x;
// ^
//
import self as self;
static method f(dynamic x) → dynamic {}

View file

@ -0,0 +1,38 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Undefined name '_'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Expected an identifier, but got ')'.
// Try inserting an identifier before ')'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Unexpected token ';'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:16: Error: Expected an identifier, but got '='.
// Try inserting an identifier before '='.
// late var (_) = x;
// ^
//
import self as self;
static method f(dynamic x) → dynamic {}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,38 @@
library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected an identifier, but got '('.
// Try inserting an identifier before '('.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:12: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Expected ';' after this.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:13: Error: Undefined name '_'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Expected an identifier, but got ')'.
// Try inserting an identifier before ')'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:14: Error: Unexpected token ';'.
// late var (_) = x;
// ^
//
// pkg/front_end/testcases/patterns/patternVariableDeclarationStatement_disallowsLate.dart:6:16: Error: Expected an identifier, but got '='.
// Try inserting an identifier before '='.
// late var (_) = x;
// ^
//
import self as self;
static method f(dynamic x) → dynamic {}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
final C(f: a) = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
var C(f: a) = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <dummy-pattern> = x;)";
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
var [a] = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <<implicit-type-argument>>[var a] = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <<implicit-type-argument>>[var a] = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <<implicit-type-argument>>[var a] = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <<implicit-type-argument>>[var a] = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var <<implicit-type-argument>>[var a] = x;)";
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
var {'a': a} = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var {\"a\": var a} = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var {\"a\": var a} = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var {\"a\": var a} = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var {\"a\": var a} = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var {\"a\": var a} = x;)";
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
var (a) = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var var a = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var var a = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var var a = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var var a = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var var a = x;)";
}

View file

@ -0,0 +1,7 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
f(x) {
var (a,) = x;
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var (var a) = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var (var a) = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var (var a) = x;)";
}

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var (var a) = x;)";
}

View file

@ -0,0 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,6 @@
library /*isNonNullableByDefault*/;
import self as self;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(var (var a) = x;)";
}

View file

@ -0,0 +1,10 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
const annotation = 0;
f(x) {
@annotation
final C(f: a) = x;
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,7 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = 0;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <dummy-pattern> = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,10 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
const annotation = 0;
f(x) {
@annotation
final [a] = x;
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <<implicit-type-argument>>[var a] = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <<implicit-type-argument>>[var a] = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <<implicit-type-argument>>[var a] = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <<implicit-type-argument>>[var a] = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,7 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = 0;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final <<implicit-type-argument>>[var a] = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,10 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
const annotation = 0;
f(x) {
@annotation
final {'a': a} = x;
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final {\"a\": var a} = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final {\"a\": var a} = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final {\"a\": var a} = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final {\"a\": var a} = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,7 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = 0;
static method f(dynamic x) → dynamic
;

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final {\"a\": var a} = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,10 @@
// Copyright (c) 2022, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
const annotation = 0;
f(x) {
@annotation
final (a) = x;
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final var a = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final var a = x;)";
}
constants {
#C1 = 0
}

View file

@ -0,0 +1,12 @@
library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static const field core::int annotation = #C1;
static method f(dynamic x) → dynamic {
invalid-expression "PatternVariableDeclaration(final var a = x;)";
}
constants {
#C1 = 0
}

Some files were not shown because too many files have changed in this diff Show more