Version 2.14.0-200.0.dev
Merge commit '83f43c024bc0cbd6a06e4a4b775bd4a3039351a3' into 'dev'
diff --git a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
index 760fd21..982c6e5 100644
--- a/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
+++ b/pkg/analysis_server/test/services/completion/dart/local_reference_contributor_test.dart
@@ -339,7 +339,6 @@
assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER);
assertNotSuggested('A');
assertNotSuggested('Object');
- assertNotSuggested('main');
assertNotSuggested('baz');
assertNotSuggested('print');
}
diff --git a/pkg/analysis_server/test/src/services/completion/dart/completion_test.dart b/pkg/analysis_server/test/src/services/completion/dart/completion_test.dart
index bce4ad4..939baea 100644
--- a/pkg/analysis_server/test/src/services/completion/dart/completion_test.dart
+++ b/pkg/analysis_server/test/src/services/completion/dart/completion_test.dart
@@ -10,7 +10,9 @@
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(ArgumentListCompletionTest);
+ defineReflectiveTests(AssertStatementTest);
defineReflectiveTests(ConstructorCompletionTest);
+ defineReflectiveTests(ExpressionFunctionBodyTest);
defineReflectiveTests(ExtensionCompletionTest);
defineReflectiveTests(PropertyAccessorCompletionTest);
defineReflectiveTests(RedirectedConstructorCompletionTest);
@@ -21,7 +23,23 @@
@reflectiveTest
class ArgumentListCompletionTest extends CompletionTestCase {
- Future<void> test_functionWithVoidReturnType() async {
+ Future<void> test_functionWithVoidReturnType_optionalNamed() async {
+ addTestFile('''
+void f(C c) {
+ c.m(handler: ^);
+}
+
+void g() {}
+
+class C {
+ void m({void Function()? handler}) {}
+}
+''');
+ await getSuggestions();
+ assertHasCompletion('g');
+ }
+
+ Future<void> test_functionWithVoidReturnType_requiredPositional() async {
addTestFile('''
void f(C c) {
c.m(^);
@@ -39,6 +57,22 @@
}
@reflectiveTest
+class AssertStatementTest extends CompletionTestCase {
+ @failingTest
+ Future<void> test_message() async {
+ addTestFile('''
+void f() {
+ assert(true, ^);
+}
+
+const c = <int>[];
+''');
+ await getSuggestions();
+ assertHasCompletion('c');
+ }
+}
+
+@reflectiveTest
class ConstructorCompletionTest extends CompletionTestCase {
Future<void> test_constructor_abstract() async {
addTestFile('''
@@ -56,6 +90,45 @@
}
@reflectiveTest
+class ExpressionFunctionBodyTest extends CompletionTestCase {
+ Future<void> test_voidReturn_localFunction() async {
+ addTestFile('''
+class C {
+ void m() {
+ void f() => ^;
+ }
+}
+
+void g() {}
+''');
+ await getSuggestions();
+ assertHasCompletion('g');
+ }
+
+ Future<void> test_voidReturn_method() async {
+ addTestFile('''
+class C {
+ void m() => ^;
+}
+
+void g() {}
+''');
+ await getSuggestions();
+ assertHasCompletion('g');
+ }
+
+ Future<void> test_voidReturn_topLevelFunction() async {
+ addTestFile('''
+void f() => ^;
+
+void g() {}
+''');
+ await getSuggestions();
+ assertHasCompletion('g');
+ }
+}
+
+@reflectiveTest
class ExtensionCompletionTest extends CompletionTestCase {
Future<void> test_explicitTarget_getter_sameUnit() async {
addTestFile('''
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 99e984b..9a0e0a0 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -82,7 +82,7 @@
/// TODO(scheglov) Clean up the list of implicitly analyzed files.
class AnalysisDriver implements AnalysisDriverGeneric {
/// The version of data format, should be incremented on every format change.
- static const int DATA_VERSION = 145;
+ static const int DATA_VERSION = 146;
/// The number of exception contexts allowed to write. Once this field is
/// zero, we stop writing any new exception contexts in this process.
diff --git a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
index a9d231b..61cbd65 100644
--- a/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/ast/to_source_visitor.dart
@@ -497,6 +497,7 @@
@override
void visitFieldFormalParameter(FieldFormalParameter node) {
safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' ');
+ safelyVisitTokenWithSuffix(node.requiredKeyword, " ");
safelyVisitTokenWithSuffix(node.covariantKeyword, ' ');
safelyVisitTokenWithSuffix(node.keyword, " ");
safelyVisitNodeWithSuffix(node.type, " ");
@@ -638,6 +639,7 @@
@override
void visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' ');
+ safelyVisitTokenWithSuffix(node.requiredKeyword, ' ');
safelyVisitTokenWithSuffix(node.covariantKeyword, ' ');
safelyVisitNodeWithSuffix(node.returnType, " ");
safelyVisitNode(node.identifier);
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 5088179..3686719 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -1079,7 +1079,7 @@
var argumentList = readNode() as ArgumentList;
var node = astFactory.superConstructorInvocation(
Tokens.super_(),
- Tokens.period(),
+ constructorName != null ? Tokens.period() : null,
constructorName,
argumentList,
);
diff --git a/pkg/analyzer/lib/src/summary2/informative_data.dart b/pkg/analyzer/lib/src/summary2/informative_data.dart
index d6bb7cb..9020587 100644
--- a/pkg/analyzer/lib/src/summary2/informative_data.dart
+++ b/pkg/analyzer/lib/src/summary2/informative_data.dart
@@ -263,6 +263,8 @@
info.constantOffsets,
(applier) {
applier.applyToMetadata(element);
+ applier.applyToFormalParameters(element);
+ applier.applyToConstructorInitializers(element);
},
);
},
@@ -394,6 +396,7 @@
(applier) {
applier.applyToMetadata(element);
applier.applyToTypeParameters(element.typeParameters);
+ applier.applyToFormalParameters(element);
},
);
}
@@ -488,6 +491,7 @@
(applier) {
applier.applyToMetadata(element);
applier.applyToTypeParameters(element.typeParameters);
+ applier.applyToFormalParameters(element);
},
);
},
@@ -1119,6 +1123,7 @@
_writeOffsets(
metadata: node.metadata,
typeParameters: node.functionExpression.typeParameters,
+ formalParameters: node.functionExpression.parameters,
);
});
@@ -1192,6 +1197,8 @@
_writeFormalParameters(node.parameters);
_writeOffsets(
metadata: node.metadata,
+ formalParameters: node.parameters,
+ constructorInitializers: node.initializers,
);
});
}
@@ -1298,6 +1305,7 @@
_writeOffsets(
metadata: node.metadata,
typeParameters: node.typeParameters,
+ formalParameters: node.parameters,
);
},
);
@@ -1308,16 +1316,35 @@
TypeParameterList? typeParameters,
Expression? constantInitializer,
List<EnumConstantDeclaration>? enumConstants,
+ FormalParameterList? formalParameters,
+ List<ConstructorInitializer>? constructorInitializers,
}) {
var collector = _OffsetsCollector();
metadata?.accept(collector);
- typeParameters?.typeParameters.accept(collector);
+ if (typeParameters != null) {
+ for (var typeParameter in typeParameters.typeParameters) {
+ typeParameter.metadata.accept(collector);
+ }
+ }
constantInitializer?.accept(collector);
if (enumConstants != null) {
for (var enumConstant in enumConstants) {
enumConstant.metadata.accept(collector);
}
}
+ if (formalParameters != null) {
+ for (var parameter in formalParameters.parameters) {
+ parameter.metadata.accept(collector);
+ if (parameter is DefaultFormalParameter) {
+ parameter.defaultValue?.accept(collector);
+ }
+ }
+ }
+ if (constructorInitializers != null) {
+ for (var constructorInitializer in constructorInitializers) {
+ constructorInitializer.accept(collector);
+ }
+ }
sink.writeUint30List(collector.offsets);
}
@@ -1493,12 +1520,25 @@
}
}
+ void applyToConstructorInitializers(ConstructorElementImpl element) {
+ for (var initializer in element.constantInitializers) {
+ initializer.accept(this);
+ }
+ }
+
void applyToEnumConstants(List<FieldElement> constants) {
for (var constant in constants) {
applyToMetadata(constant);
}
}
+ void applyToFormalParameters(ExecutableElement element) {
+ for (var parameter in element.parameters) {
+ applyToMetadata(parameter);
+ applyToConstantInitializer(parameter);
+ }
+ }
+
void applyToMetadata(Element element) {
for (var annotation in element.metadata) {
var node = (annotation as ElementAnnotationImpl).annotationAst;
@@ -1538,11 +1578,58 @@
}
@override
+ void visitAsExpression(AsExpression node) {
+ _tokenOrNull(node.asOperator);
+ super.visitAsExpression(node);
+ }
+
+ @override
+ void visitAssertInitializer(AssertInitializer node) {
+ _tokenOrNull(node.assertKeyword);
+ _tokenOrNull(node.leftParenthesis);
+ _tokenOrNull(node.rightParenthesis);
+ super.visitAssertInitializer(node);
+ }
+
+ @override
+ void visitAssignmentExpression(AssignmentExpression node) {
+ _tokenOrNull(node.operator);
+ super.visitAssignmentExpression(node);
+ }
+
+ @override
+ void visitBinaryExpression(BinaryExpression node) {
+ _tokenOrNull(node.operator);
+ super.visitBinaryExpression(node);
+ }
+
+ @override
void visitBooleanLiteral(BooleanLiteral node) {
_tokenOrNull(node.literal);
}
@override
+ void visitConditionalExpression(ConditionalExpression node) {
+ _tokenOrNull(node.question);
+ _tokenOrNull(node.colon);
+ super.visitConditionalExpression(node);
+ }
+
+ @override
+ void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
+ _tokenOrNull(node.thisKeyword);
+ _tokenOrNull(node.equals);
+ super.visitConstructorFieldInitializer(node);
+ }
+
+ @override
+ void visitConstructorName(ConstructorName node) {
+ node.type.accept(this);
+ _tokenOrNull(node.period);
+ node.name?.accept(this);
+ }
+
+ @override
void visitDoubleLiteral(DoubleLiteral node) {
_tokenOrNull(node.literal);
}
@@ -1557,7 +1644,8 @@
@override
void visitInstanceCreationExpression(InstanceCreationExpression node) {
_tokenOrNull(node.keyword);
- super.visitInstanceCreationExpression(node);
+ node.constructorName.accept(this);
+ node.argumentList.accept(this);
}
@override
@@ -1566,6 +1654,34 @@
}
@override
+ void visitIsExpression(IsExpression node) {
+ _tokenOrNull(node.isOperator);
+ super.visitIsExpression(node);
+ }
+
+ @override
+ void visitListLiteral(ListLiteral node) {
+ _tokenOrNull(node.constKeyword);
+ _tokenOrNull(node.leftBracket);
+ _tokenOrNull(node.rightBracket);
+ super.visitListLiteral(node);
+ }
+
+ @override
+ void visitMethodInvocation(MethodInvocation node) {
+ node.target?.accept(this);
+ _tokenOrNull(node.operator);
+ node.methodName.accept(this);
+ node.typeArguments?.accept(this);
+ node.argumentList.accept(this);
+ }
+
+ @override
+ void visitNullLiteral(NullLiteral node) {
+ _tokenOrNull(node.literal);
+ }
+
+ @override
void visitParenthesizedExpression(ParenthesizedExpression node) {
_tokenOrNull(node.leftParenthesis);
_tokenOrNull(node.rightParenthesis);
@@ -1573,12 +1689,48 @@
}
@override
+ void visitPostfixExpression(PostfixExpression node) {
+ _tokenOrNull(node.operator);
+ super.visitPostfixExpression(node);
+ }
+
+ @override
+ void visitPrefixedIdentifier(PrefixedIdentifier node) {
+ node.prefix.accept(this);
+ _tokenOrNull(node.period);
+ node.identifier.accept(this);
+ }
+
+ @override
void visitPrefixExpression(PrefixExpression node) {
_tokenOrNull(node.operator);
super.visitPrefixExpression(node);
}
@override
+ void visitPropertyAccess(PropertyAccess node) {
+ node.target?.accept(this);
+ _tokenOrNull(node.operator);
+ node.propertyName.accept(this);
+ }
+
+ @override
+ void visitRedirectingConstructorInvocation(
+ RedirectingConstructorInvocation node) {
+ _tokenOrNull(node.thisKeyword);
+ _tokenOrNull(node.period);
+ super.visitRedirectingConstructorInvocation(node);
+ }
+
+ @override
+ void visitSetOrMapLiteral(SetOrMapLiteral node) {
+ _tokenOrNull(node.constKeyword);
+ _tokenOrNull(node.leftBracket);
+ _tokenOrNull(node.rightBracket);
+ super.visitSetOrMapLiteral(node);
+ }
+
+ @override
void visitSimpleIdentifier(SimpleIdentifier node) {
_tokenOrNull(node.token);
}
@@ -1589,11 +1741,41 @@
}
@override
+ void visitSpreadElement(SpreadElement node) {
+ _tokenOrNull(node.spreadOperator);
+ super.visitSpreadElement(node);
+ }
+
+ @override
+ void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
+ _tokenOrNull(node.superKeyword);
+ _tokenOrNull(node.period);
+ super.visitSuperConstructorInvocation(node);
+ }
+
+ @override
+ void visitSuperExpression(SuperExpression node) {
+ _tokenOrNull(node.superKeyword);
+ }
+
+ @override
+ void visitThisExpression(ThisExpression node) {
+ _tokenOrNull(node.thisKeyword);
+ }
+
+ @override
void visitThrowExpression(ThrowExpression node) {
_tokenOrNull(node.throwKeyword);
super.visitThrowExpression(node);
}
+ @override
+ void visitTypeArgumentList(TypeArgumentList node) {
+ _tokenOrNull(node.leftBracket);
+ _tokenOrNull(node.rightBracket);
+ super.visitTypeArgumentList(node);
+ }
+
void _tokenOrNull(Token? token) {
if (token != null) {
handleToken(token);
diff --git a/pkg/analyzer/test/src/summary/element_text.dart b/pkg/analyzer/test/src/summary/element_text.dart
index 1a369ce..d0f0792 100644
--- a/pkg/analyzer/test/src/summary/element_text.dart
+++ b/pkg/analyzer/test/src/summary/element_text.dart
@@ -197,7 +197,7 @@
// final int foo;
// set foo(int newValue) {}
// }
- assert(accessor.isSetter, isTrue);
+ expect(accessor.isSetter, isTrue);
}
expect(accessor.variable, same(property));
diff --git a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
index a3a772a..519b2e3 100644
--- a/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
+++ b/pkg/analyzer/test/src/summary/resolved_ast_printer.dart
@@ -355,9 +355,12 @@
_writeNextCodeLine(node);
_writeln('ConstructorName');
_withIndent(() {
- _writeNode('name', node.name);
- _writeElement('staticElement', node.staticElement);
- _writeNode('type', node.type);
+ var properties = _Properties();
+ properties.addNode('name', node.name);
+ properties.addToken('period', node.period);
+ properties.addElement('staticElement', node.staticElement);
+ properties.addNode('type', node.type);
+ _writeProperties(properties);
});
}
@@ -1143,7 +1146,9 @@
_withIndent(() {
_writeNode('argumentList', node.argumentList);
_writeNode('constructorName', node.constructorName);
+ _writeToken('period', node.period);
_writeElement('staticElement', node.staticElement);
+ _writeToken('thisKeyword', node.thisKeyword);
});
}
@@ -1169,6 +1174,8 @@
var properties = _Properties();
properties.addNodeList('elements', node.elements);
properties.addRaw('isMap', node.isMap);
+ properties.addToken('leftBracket', node.leftBracket);
+ properties.addToken('rightBracket', node.rightBracket);
_addTypedLiteral(properties, node);
_writeProperties(properties);
});
@@ -1223,7 +1230,7 @@
void visitSpreadElement(SpreadElement node) {
_writeln('SpreadElement');
_withIndent(() {
- _writeNode('expressions', node.expression);
+ _writeNode('expression', node.expression);
_writeToken('spreadOperator', node.spreadOperator);
});
}
@@ -1247,7 +1254,9 @@
_withIndent(() {
_writeNode('argumentList', node.argumentList);
_writeNode('constructorName', node.constructorName);
+ _writeToken('period', node.period);
_writeElement('staticElement', node.staticElement);
+ _writeToken('superKeyword', node.superKeyword);
});
}
@@ -1512,8 +1521,11 @@
}
void _addAssertion(_Properties properties, Assertion node) {
+ properties.addToken('assertKeyword', node.assertKeyword);
properties.addNode('condition', node.condition);
+ properties.addToken('leftParenthesis', node.leftParenthesis);
properties.addNode('message', node.message);
+ properties.addToken('rightParenthesis', node.rightParenthesis);
_addAstNode(properties, node);
}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
index 738afb8..acba031 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_ast2_test.dart
@@ -27,7 +27,7 @@
main() {
defineReflectiveSuite(() {
defineReflectiveTests(ResynthesizeAst2Test);
- // defineReflectiveTests(ApplyCheckElementTextReplacements);
+ defineReflectiveTests(ApplyCheckElementTextReplacements);
});
}
diff --git a/pkg/analyzer/test/src/summary/resynthesize_common.dart b/pkg/analyzer/test/src/summary/resynthesize_common.dart
index a48ad06..abeb718 100644
--- a/pkg/analyzer/test/src/summary/resynthesize_common.dart
+++ b/pkg/analyzer/test/src/summary/resynthesize_common.dart
@@ -143,6 +143,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @32
constructors
synthetic @-1
@@ -180,6 +181,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @35
constructors
synthetic @-1
@@ -216,6 +218,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @43
constructors
synthetic @-1
@@ -252,6 +255,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @48
constructors
synthetic @-1
@@ -288,6 +292,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @87
constructors
synthetic @-1
@@ -321,6 +326,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
class A @42
constructors
synthetic @-1
@@ -365,6 +371,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @39
constructors
synthetic @-1
@@ -401,6 +408,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @29
constructors
synthetic @-1
@@ -434,6 +442,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @26
constructors
synthetic @-1
@@ -478,6 +487,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: package:test/a.dart::@class::Base::@constructor::•
+ superKeyword: super @0
synthetic const named @-1
constantInitializers
SuperConstructorInvocation
@@ -488,7 +498,9 @@
staticElement: package:test/a.dart::@class::Base::@constructor::named
staticType: null
token: named @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::named
+ superKeyword: super @0
''');
}
@@ -535,6 +547,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: package:test/a.dart::@class::Base::@constructor::•
+ superKeyword: super @0
synthetic noArgs @-1
constantInitializers
SuperConstructorInvocation
@@ -545,7 +558,9 @@
staticElement: package:test/a.dart::@class::Base::@constructor::noArgs
staticType: null
token: noArgs @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::noArgs
+ superKeyword: super @0
synthetic requiredArg @-1
parameters
requiredPositional x @-1
@@ -564,14 +579,16 @@
staticElement: package:test/a.dart::@class::Base::@constructor::requiredArg
staticType: null
token: requiredArg @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::requiredArg
+ superKeyword: super @0
synthetic positionalArg @-1
parameters
optionalPositional x @-1
type: bool
constantInitializer
BooleanLiteral
- literal: true @0
+ literal: true @127
staticType: bool
constantInitializers
SuperConstructorInvocation
@@ -587,14 +604,16 @@
staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg
staticType: null
token: positionalArg @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg
+ superKeyword: super @0
synthetic positionalArg2 @-1
parameters
optionalPositional final x @-1
type: bool
constantInitializer
BooleanLiteral
- literal: true @0
+ literal: true @167
staticType: bool
constantInitializers
SuperConstructorInvocation
@@ -610,14 +629,16 @@
staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg2
staticType: null
token: positionalArg2 @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::positionalArg2
+ superKeyword: super @0
synthetic namedArg @-1
parameters
optionalNamed x @-1
type: int
constantInitializer
IntegerLiteral
- literal: 42 @0
+ literal: 42 @200
staticType: int
constantInitializers
SuperConstructorInvocation
@@ -633,14 +654,16 @@
staticElement: package:test/a.dart::@class::Base::@constructor::namedArg
staticType: null
token: namedArg @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::namedArg
+ superKeyword: super @0
synthetic namedArg2 @-1
parameters
optionalNamed final x @-1
type: bool
constantInitializer
BooleanLiteral
- literal: true @0
+ literal: true @233
staticType: bool
constantInitializers
SuperConstructorInvocation
@@ -656,7 +679,9 @@
staticElement: package:test/a.dart::@class::Base::@constructor::namedArg2
staticType: null
token: namedArg2 @-1
+ period: . @0
staticElement: package:test/a.dart::@class::Base::@constructor::namedArg2
+ superKeyword: super @0
''');
}
@@ -717,7 +742,9 @@
staticElement: self::@class::Base::@constructor::ctor
staticType: null
token: ctor @-1
+ period: . @0
staticElement: self::@class::Base::@constructor::ctor
+ superKeyword: super @0
''');
}
@@ -781,7 +808,9 @@
staticElement: self::@class::Base::@constructor::ctor
staticType: null
token: ctor @-1
+ period: . @0
staticElement: self::@class::Base::@constructor::ctor
+ superKeyword: super @0
''');
}
@@ -811,6 +840,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @26
constructors
synthetic @-1
@@ -1374,7 +1404,7 @@
type: int
constantInitializer
IntegerLiteral
- literal: 42 @0
+ literal: 42 @28
staticType: int
accessors
synthetic get x @14
@@ -1430,7 +1460,7 @@
type: int
constantInitializer
IntegerLiteral
- literal: 42 @0
+ literal: 42 @29
staticType: int
accessors
synthetic get x @14
@@ -1727,7 +1757,7 @@
staticElement: self::@class::Annotation::@constructor::named
staticType: null
token: named @103
- period: . @0
+ period: . @102
prefix: SimpleIdentifier
staticElement: self::@class::Annotation
staticType: null
@@ -4196,6 +4226,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
class alias HasDocComment @91
documentationComment: /// Comment 1.\n/// Comment 2.
codeOffset: 55
@@ -4212,6 +4243,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
class alias HasAnnotation @142
metadata
Annotation
@@ -4238,6 +4270,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
class alias AnnotationThenComment @223
documentationComment: /// Comment 1.\n/// Comment 2.
metadata
@@ -4265,6 +4298,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
class alias CommentThenAnnotation @312
documentationComment: /// Comment 1.\n/// Comment 2.
metadata
@@ -4292,6 +4326,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
class alias CommentAroundAnnotation @401
documentationComment: /// Comment 2.
metadata
@@ -4319,6 +4354,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
''',
withCodeRanges: true);
}
@@ -5548,7 +5584,7 @@
type: int
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @14
staticType: int
optionalNamed b @21
type: int
@@ -5556,7 +5592,7 @@
type: int
constantInitializer
IntegerLiteral
- literal: 2 @0
+ literal: 2 @32
staticType: int
returnType: dynamic
''');
@@ -5577,14 +5613,14 @@
metadata
Annotation
arguments: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
- atSign.offset: 0
+ leftParenthesis: ( @12
+ rightParenthesis: ) @13
+ atSign.offset: 5
element: dart:core::@class::Object::@constructor::•
name: SimpleIdentifier
staticElement: dart:core::@class::Object
staticType: null
- token: Object @-1
+ token: Object @6
requiredPositional b @26
type: int
requiredPositional c @43
@@ -5592,14 +5628,14 @@
metadata
Annotation
arguments: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
- atSign.offset: 0
+ leftParenthesis: ( @36
+ rightParenthesis: ) @37
+ atSign.offset: 29
element: dart:core::@class::Object::@constructor::•
name: SimpleIdentifier
staticElement: dart:core::@class::Object
staticType: null
- token: Object @-1
+ token: Object @30
returnType: dynamic
''');
}
@@ -5991,7 +6027,7 @@
type: int
constantInitializer
AsExpression
- asOperator: as @0
+ asOperator: as @29
expression: SimpleIdentifier
staticElement: self::@getter::a
staticType: num
@@ -6035,7 +6071,7 @@
staticElement: <null>
staticType: null
token: a @24
- operator: += @0
+ operator: += @26
readElement: self::@getter::a
readType: int
rightHandSide: IntegerLiteral
@@ -6070,7 +6106,7 @@
CascadeExpression
cascadeSections
PropertyAccess
- operator: .. @0
+ operator: .. @11
propertyName: SimpleIdentifier
staticElement: dart:core::@class::int::@getter::isEven
staticType: bool
@@ -6084,7 +6120,7 @@
staticElement: dart:core::@class::int::@method::abs
staticType: int Function()
token: abs @21
- operator: .. @0
+ operator: .. @19
staticInvokeType: int Function()
staticType: int
staticType: int
@@ -6124,7 +6160,7 @@
staticElement: self::@class::C::@getter::f1
staticType: int
token: f1 @63
- period: . @0
+ period: . @62
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -6139,7 +6175,7 @@
staticElement: self::@class::C::@getter::f2
staticType: int
token: f2 @74
- period: . @0
+ period: . @73
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -6235,6 +6271,7 @@
substitution: {T: dynamic}
staticType: null
token: named @126
+ period: . @125
staticElement: ConstructorMember
base: self::@class::C::@constructor::named
substitution: {T: int}
@@ -6312,8 +6349,8 @@
IntegerLiteral
literal: 0 @11
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @10
+ rightBracket: ] @12
staticType: List<int>
static const b @21
type: int
@@ -6435,11 +6472,11 @@
staticType: null
token: int @155
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @154
+ rightBracket: > @158
staticType: P2<int>
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @140
+ rightBracket: ] @163
staticType: List<P<dynamic>>
accessors
synthetic static get values @131
@@ -6467,7 +6504,7 @@
leftOperand: IntegerLiteral
literal: 1 @29
staticType: int
- operator: + @0
+ operator: + @31
rightOperand: MethodInvocation
argumentList: ArgumentList
leftParenthesis: ( @36
@@ -6544,7 +6581,7 @@
leftOperand: IntegerLiteral
literal: 1 @10
staticType: int
- operator: + @0
+ operator: + @12
rightOperand: MethodInvocation
argumentList: ArgumentList
leftParenthesis: ( @17
@@ -6590,7 +6627,7 @@
staticElement: self::@getter::a
staticType: int
token: a @32
- operator: + @0
+ operator: + @34
rightOperand: IntegerLiteral
literal: 5 @36
staticType: int
@@ -6652,6 +6689,7 @@
substitution: {K: int, V: String}
staticType: null
token: named @76
+ period: . @75
staticElement: ConstructorMember
base: self::@class::C::@constructor::named
substitution: {K: int, V: String}
@@ -6675,8 +6713,8 @@
staticType: null
token: String @68
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @62
+ rightBracket: > @74
keyword: const @55
staticType: C<int, String>
accessors
@@ -6721,6 +6759,7 @@
substitution: {K: int, V: String}
staticType: null
token: named @48
+ period: . @47
staticElement: ConstructorMember
base: a.dart::@class::C::@constructor::named
substitution: {K: int, V: String}
@@ -6744,8 +6783,8 @@
staticType: null
token: String @40
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @34
+ rightBracket: > @46
keyword: const @27
staticType: C<int, String>
accessors
@@ -6790,6 +6829,7 @@
substitution: {K: int, V: String}
staticType: null
token: named @55
+ period: . @54
staticElement: ConstructorMember
base: a.dart::@class::C::@constructor::named
substitution: {K: int, V: String}
@@ -6799,7 +6839,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -6821,8 +6861,8 @@
staticType: null
token: String @47
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @41
+ rightBracket: > @53
keyword: const @32
staticType: C<int, String>
accessors
@@ -6927,8 +6967,8 @@
staticType: null
token: String @54
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @48
+ rightBracket: > @60
keyword: const @41
staticType: C<int, String>
accessors
@@ -6984,8 +7024,8 @@
staticType: null
token: String @40
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @34
+ rightBracket: > @46
keyword: const @27
staticType: C<int, String>
accessors
@@ -7027,7 +7067,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7049,8 +7089,8 @@
staticType: null
token: String @47
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @41
+ rightBracket: > @53
keyword: const @32
staticType: C<int, String>
accessors
@@ -7126,6 +7166,7 @@
staticElement: self::@class::C::@constructor::named
staticType: null
token: named @91
+ period: . @90
staticElement: self::@class::C::@constructor::named
type: TypeName
name: SimpleIdentifier
@@ -7169,6 +7210,7 @@
staticElement: a.dart::@class::C::@constructor::named
staticType: null
token: named @35
+ period: . @34
staticElement: a.dart::@class::C::@constructor::named
type: TypeName
name: SimpleIdentifier
@@ -7212,6 +7254,7 @@
staticElement: a.dart::@class::C::@constructor::named
staticType: null
token: named @42
+ period: . @41
staticElement: a.dart::@class::C::@constructor::named
type: TypeName
name: PrefixedIdentifier
@@ -7219,7 +7262,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7260,6 +7303,7 @@
staticElement: <null>
staticType: null
token: named @29
+ period: . @28
staticElement: <null>
type: TypeName
name: SimpleIdentifier
@@ -7298,7 +7342,7 @@
staticElement: <null>
staticType: null
token: named @18
- period: . @0
+ period: . @17
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -7341,6 +7385,7 @@
staticElement: <null>
staticType: null
token: named @42
+ period: . @41
staticElement: <null>
type: TypeName
name: PrefixedIdentifier
@@ -7348,7 +7393,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7388,6 +7433,7 @@
staticElement: <null>
staticType: null
token: named @42
+ period: . @41
staticElement: <null>
type: TypeName
name: PrefixedIdentifier
@@ -7395,7 +7441,7 @@
staticElement: <null>
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7431,6 +7477,7 @@
staticElement: <null>
staticType: null
token: named @20
+ period: . @19
staticElement: <null>
type: TypeName
name: PrefixedIdentifier
@@ -7438,7 +7485,7 @@
staticElement: <null>
staticType: null
token: C @18
- period: . @0
+ period: . @17
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -7482,6 +7529,7 @@
staticElement: <null>
staticType: null
token: named @32
+ period: . @31
staticElement: <null>
type: TypeName
name: SimpleIdentifier
@@ -7605,7 +7653,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7679,7 +7727,7 @@
staticElement: <null>
staticType: null
token: C @40
- period: . @0
+ period: . @39
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7718,7 +7766,7 @@
staticElement: <null>
staticType: null
token: C @18
- period: . @0
+ period: . @17
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -7757,7 +7805,7 @@
staticElement: self::@getter::a
staticType: int
token: a @23
- isOperator: is @0
+ isOperator: is @25
staticType: bool
type: TypeName
name: SimpleIdentifier
@@ -7801,7 +7849,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @59
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -7812,7 +7860,7 @@
staticElement: self::@class::C::@getter::F
staticType: String
token: F @58
- period: . @0
+ period: . @57
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -7845,7 +7893,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @34
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -7856,7 +7904,7 @@
staticElement: a.dart::@class::C::@getter::F
staticType: String
token: F @33
- period: . @0
+ period: . @32
prefix: SimpleIdentifier
staticElement: a.dart::@class::C
staticType: null
@@ -7889,14 +7937,14 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @41
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
token: length @42
staticType: int
target: PropertyAccess
- operator: . @0
+ operator: . @39
propertyName: SimpleIdentifier
staticElement: a.dart::@class::C::@getter::F
staticType: String
@@ -7907,7 +7955,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @38
- period: . @0
+ period: . @37
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -7932,7 +7980,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @15
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -7968,7 +8016,7 @@
staticElement: dart:core::@class::String::@getter::length
staticType: int
token: length @36
- period: . @0
+ period: . @35
prefix: SimpleIdentifier
staticElement: self::@getter::S
staticType: String
@@ -8005,7 +8053,7 @@
staticElement: dart:core::@class::String::@getter::length
staticType: int
token: length @29
- period: . @0
+ period: . @28
prefix: SimpleIdentifier
staticElement: a.dart::@getter::S
staticType: String
@@ -8036,7 +8084,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @35
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -8047,7 +8095,7 @@
staticElement: a.dart::@getter::S
staticType: String
token: S @34
- period: . @0
+ period: . @33
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -8086,7 +8134,7 @@
staticElement: self::@class::C::@method::length
staticType: int Function()
token: length @53
- period: . @0
+ period: . @52
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -8111,7 +8159,7 @@
type: Object
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IfElement
condition: BooleanLiteral
@@ -8120,8 +8168,8 @@
thenStatement: IntegerLiteral
literal: 1 @39
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @28
+ rightBracket: ] @40
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8131,8 +8179,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -8151,7 +8199,7 @@
type: Object
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IfElement
condition: BooleanLiteral
@@ -8163,8 +8211,8 @@
thenStatement: IntegerLiteral
literal: 1 @39
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @28
+ rightBracket: ] @47
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8174,8 +8222,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -8197,13 +8245,13 @@
type: Object
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IntegerLiteral
literal: 1 @24
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @23
+ rightBracket: ] @25
staticType: List<int>
accessors
synthetic static get x @13
@@ -8223,16 +8271,16 @@
type: Object
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: ListLiteral
+ expression: ListLiteral
elements
IntegerLiteral
literal: 1 @38
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @37
+ rightBracket: ] @39
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8242,11 +8290,11 @@
staticType: null
token: int @33
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ... @0
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: < @32
+ rightBracket: > @36
+ spreadOperator: ... @29
+ leftBracket: [ @28
+ rightBracket: ] @40
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8256,8 +8304,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -8276,16 +8324,16 @@
type: Object
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: ListLiteral
+ expression: ListLiteral
elements
IntegerLiteral
literal: 1 @39
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @38
+ rightBracket: ] @40
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8295,11 +8343,11 @@
staticType: null
token: int @34
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ...? @0
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: < @33
+ rightBracket: > @37
+ spreadOperator: ...? @29
+ leftBracket: [ @28
+ rightBracket: ] @41
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -8309,8 +8357,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -8329,7 +8377,7 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IfElement
condition: BooleanLiteral
@@ -8343,6 +8391,8 @@
literal: 2 @47
staticType: int
isMap: true
+ leftBracket: { @33
+ rightBracket: } @48
staticType: Map<int, int>
typeArguments: TypeArgumentList
arguments
@@ -8358,8 +8408,8 @@
staticType: null
token: int @29
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @32
accessors
synthetic static get x @13
returnType: Object
@@ -8393,7 +8443,7 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SetOrMapLiteral
key: IntegerLiteral
@@ -8403,6 +8453,8 @@
literal: 1.0 @27
staticType: double
isMap: true
+ leftBracket: { @23
+ rightBracket: } @30
staticType: Map<int, double>
accessors
synthetic static get x @13
@@ -8422,10 +8474,10 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: SetOrMapLiteral
+ expression: SetOrMapLiteral
elements
SetOrMapLiteral
key: IntegerLiteral
@@ -8435,6 +8487,8 @@
literal: 2 @51
staticType: int
isMap: true
+ leftBracket: { @47
+ rightBracket: } @52
staticType: Map<int, int>
typeArguments: TypeArgumentList
arguments
@@ -8450,10 +8504,12 @@
staticType: null
token: int @43
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ... @0
+ leftBracket: < @37
+ rightBracket: > @46
+ spreadOperator: ... @34
isMap: true
+ leftBracket: { @33
+ rightBracket: } @53
staticType: Map<int, int>
typeArguments: TypeArgumentList
arguments
@@ -8469,8 +8525,8 @@
staticType: null
token: int @29
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @32
accessors
synthetic static get x @13
returnType: Object
@@ -8489,10 +8545,10 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: SetOrMapLiteral
+ expression: SetOrMapLiteral
elements
SetOrMapLiteral
key: IntegerLiteral
@@ -8502,6 +8558,8 @@
literal: 2 @52
staticType: int
isMap: true
+ leftBracket: { @48
+ rightBracket: } @53
staticType: Map<int, int>
typeArguments: TypeArgumentList
arguments
@@ -8517,10 +8575,12 @@
staticType: null
token: int @44
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ...? @0
+ leftBracket: < @38
+ rightBracket: > @47
+ spreadOperator: ...? @34
isMap: true
+ leftBracket: { @33
+ rightBracket: } @54
staticType: Map<int, int>
typeArguments: TypeArgumentList
arguments
@@ -8536,8 +8596,8 @@
staticType: null
token: int @29
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @32
accessors
synthetic static get x @13
returnType: Object
@@ -8581,8 +8641,8 @@
staticType: null
token: int @30
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @29
+ rightBracket: > @33
accessors
synthetic static get b @24
returnType: int
@@ -8622,7 +8682,7 @@
SimpleIdentifier
staticElement: self::@function::foo
staticType: int Function()
- token: foo @-1
+ token: foo @40
accessors
synthetic get x @18
returnType: dynamic
@@ -8655,11 +8715,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @40
staticType: int
- operator: + @0
+ operator: + @42
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @44
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8693,11 +8753,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @41
staticType: int
- operator: + @0
+ operator: + @43
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @45
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8734,11 +8794,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @36
staticType: int
- operator: + @0
+ operator: + @38
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @40
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8752,11 +8812,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @65
staticType: int
- operator: + @0
+ operator: + @67
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @69
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8769,11 +8829,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @103
staticType: int
- operator: + @0
+ operator: + @105
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @107
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8791,11 +8851,11 @@
constantInitializer
BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @183
staticType: int
- operator: + @0
+ operator: + @185
rightOperand: IntegerLiteral
- literal: 2 @0
+ literal: 2 @187
staticType: int
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
@@ -8832,7 +8892,7 @@
staticElement: <null>
staticType: null
token: a @23
- operator: ++ @0
+ operator: ++ @24
readElement: self::@getter::a
readType: int
staticElement: dart:core::@class::num::@method::+
@@ -8870,7 +8930,7 @@
staticElement: self::@getter::a
staticType: int?
token: a @28
- operator: ! @0
+ operator: ! @29
staticElement: <null>
staticType: int
accessors
@@ -9021,7 +9081,7 @@
staticElement: self::@class::C::@getter::F
staticType: int
token: F @51
- period: . @0
+ period: . @50
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -9058,7 +9118,7 @@
staticElement: a.dart::@class::C::@getter::F
staticType: int
token: F @29
- period: . @0
+ period: . @28
prefix: SimpleIdentifier
staticElement: a.dart::@class::C
staticType: null
@@ -9091,7 +9151,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @35
propertyName: SimpleIdentifier
staticElement: a.dart::@class::C::@getter::F
staticType: int
@@ -9102,7 +9162,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @34
- period: . @0
+ period: . @33
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9146,7 +9206,7 @@
staticElement: self::@class::C::@method::m
staticType: int Function(int, String)
token: m @63
- period: . @0
+ period: . @62
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -9183,7 +9243,7 @@
staticElement: a.dart::@class::C::@method::m
staticType: int Function(int, String)
token: m @29
- period: . @0
+ period: . @28
prefix: SimpleIdentifier
staticElement: a.dart::@class::C
staticType: null
@@ -9216,7 +9276,7 @@
type: int Function(int, String)
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @35
propertyName: SimpleIdentifier
staticElement: a.dart::@class::C::@method::m
staticType: int Function(int, String)
@@ -9227,7 +9287,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @34
- period: . @0
+ period: . @33
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9270,7 +9330,7 @@
staticElement: self::@extension::E::@method::f
staticType: void Function()
token: f @65
- period: . @0
+ period: . @64
prefix: SimpleIdentifier
staticElement: self::@extension::E
staticType: null
@@ -9388,7 +9448,7 @@
staticElement: a.dart::@function::foo
staticType: dynamic Function()
token: foo @34
- period: . @0
+ period: . @33
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9424,7 +9484,7 @@
staticElement: self::@getter::A
staticType: int
token: A @23
- operator: + @0
+ operator: + @25
rightOperand: IntegerLiteral
literal: 2 @27
staticType: int
@@ -9461,7 +9521,7 @@
staticElement: a.dart::@getter::A
staticType: int
token: A @27
- operator: + @0
+ operator: + @29
rightOperand: IntegerLiteral
literal: 2 @31
staticType: int
@@ -9497,14 +9557,14 @@
staticElement: a.dart::@getter::A
staticType: int
token: A @34
- period: . @0
+ period: . @33
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
token: p @32
staticElement: a.dart::@getter::A
staticType: int
- operator: + @0
+ operator: + @36
rightOperand: IntegerLiteral
literal: 2 @38
staticType: int
@@ -9752,7 +9812,7 @@
staticElement: a.dart::@class::C
staticType: Type
token: C @39
- period: . @0
+ period: . @38
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9767,7 +9827,7 @@
staticElement: a.dart::@enum::E
staticType: Type
token: E @58
- period: . @0
+ period: . @57
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9782,7 +9842,7 @@
staticElement: a.dart::@typeAlias::F
staticType: Type
token: F @90
- period: . @0
+ period: . @89
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9866,7 +9926,7 @@
staticElement: <null>
staticType: dynamic
token: foo @23
- period: . @0
+ period: . @22
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -9897,7 +9957,7 @@
type: dynamic
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @37
propertyName: SimpleIdentifier
staticElement: <null>
staticType: dynamic
@@ -9908,7 +9968,7 @@
staticElement: foo.dart::@class::C
staticType: null
token: C @36
- period: . @0
+ period: . @35
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -9933,7 +9993,7 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IfElement
condition: BooleanLiteral
@@ -9943,6 +10003,8 @@
literal: 1 @39
staticType: int
isMap: false
+ leftBracket: { @28
+ rightBracket: } @40
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -9952,8 +10014,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -9986,12 +10048,14 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
IntegerLiteral
literal: 1 @24
staticType: int
isMap: false
+ leftBracket: { @23
+ rightBracket: } @25
staticType: Set<int>
accessors
synthetic static get x @13
@@ -10011,15 +10075,17 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: SetOrMapLiteral
+ expression: SetOrMapLiteral
elements
IntegerLiteral
literal: 1 @38
staticType: int
isMap: false
+ leftBracket: { @37
+ rightBracket: } @39
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -10029,10 +10095,12 @@
staticType: null
token: int @33
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ... @0
+ leftBracket: < @32
+ rightBracket: > @36
+ spreadOperator: ... @29
isMap: false
+ leftBracket: { @28
+ rightBracket: } @40
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -10042,8 +10110,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -10062,15 +10130,17 @@
type: Object
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @17
elements
SpreadElement
- expressions: SetOrMapLiteral
+ expression: SetOrMapLiteral
elements
IntegerLiteral
literal: 1 @39
staticType: int
isMap: false
+ leftBracket: { @38
+ rightBracket: } @40
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -10080,10 +10150,12 @@
staticType: null
token: int @34
type: int
- leftBracket: < @0
- rightBracket: > @0
- spreadOperator: ...? @0
+ leftBracket: < @33
+ rightBracket: > @37
+ spreadOperator: ...? @29
isMap: false
+ leftBracket: { @28
+ rightBracket: } @41
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -10093,8 +10165,8 @@
staticType: null
token: int @24
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @23
+ rightBracket: > @27
accessors
synthetic static get x @13
returnType: Object
@@ -10133,7 +10205,7 @@
leftOperand: IntegerLiteral
literal: 1 @15
staticType: int
- operator: == @0
+ operator: == @17
rightOperand: IntegerLiteral
literal: 2 @20
staticType: int
@@ -10147,7 +10219,7 @@
leftOperand: BooleanLiteral
literal: true @36
staticType: bool
- operator: && @0
+ operator: && @41
rightOperand: BooleanLiteral
literal: false @44
staticType: bool
@@ -10161,7 +10233,7 @@
leftOperand: BooleanLiteral
literal: false @63
staticType: bool
- operator: || @0
+ operator: || @69
rightOperand: BooleanLiteral
literal: true @72
staticType: bool
@@ -10175,7 +10247,7 @@
leftOperand: IntegerLiteral
literal: 1 @94
staticType: int
- operator: ^ @0
+ operator: ^ @96
rightOperand: IntegerLiteral
literal: 2 @98
staticType: int
@@ -10189,7 +10261,7 @@
leftOperand: IntegerLiteral
literal: 1 @117
staticType: int
- operator: & @0
+ operator: & @119
rightOperand: IntegerLiteral
literal: 2 @121
staticType: int
@@ -10203,7 +10275,7 @@
leftOperand: IntegerLiteral
literal: 1 @139
staticType: int
- operator: | @0
+ operator: | @141
rightOperand: IntegerLiteral
literal: 2 @143
staticType: int
@@ -10217,7 +10289,7 @@
leftOperand: IntegerLiteral
literal: 1 @168
staticType: int
- operator: << @0
+ operator: << @170
rightOperand: IntegerLiteral
literal: 2 @173
staticType: int
@@ -10231,7 +10303,7 @@
leftOperand: IntegerLiteral
literal: 1 @199
staticType: int
- operator: >> @0
+ operator: >> @201
rightOperand: IntegerLiteral
literal: 2 @204
staticType: int
@@ -10245,7 +10317,7 @@
leftOperand: IntegerLiteral
literal: 1 @220
staticType: int
- operator: + @0
+ operator: + @222
rightOperand: IntegerLiteral
literal: 2 @224
staticType: int
@@ -10259,7 +10331,7 @@
leftOperand: IntegerLiteral
literal: 1 @245
staticType: int
- operator: - @0
+ operator: - @247
rightOperand: IntegerLiteral
literal: 2 @249
staticType: int
@@ -10273,7 +10345,7 @@
leftOperand: IntegerLiteral
literal: 1 @270
staticType: int
- operator: * @0
+ operator: * @272
rightOperand: IntegerLiteral
literal: 2 @274
staticType: int
@@ -10287,7 +10359,7 @@
leftOperand: IntegerLiteral
literal: 1 @293
staticType: int
- operator: / @0
+ operator: / @295
rightOperand: IntegerLiteral
literal: 2 @297
staticType: int
@@ -10301,7 +10373,7 @@
leftOperand: IntegerLiteral
literal: 1 @321
staticType: int
- operator: ~/ @0
+ operator: ~/ @323
rightOperand: IntegerLiteral
literal: 2 @326
staticType: int
@@ -10315,7 +10387,7 @@
leftOperand: IntegerLiteral
literal: 1 @345
staticType: int
- operator: % @0
+ operator: % @347
rightOperand: IntegerLiteral
literal: 2 @349
staticType: int
@@ -10329,7 +10401,7 @@
leftOperand: IntegerLiteral
literal: 1 @369
staticType: int
- operator: > @0
+ operator: > @371
rightOperand: IntegerLiteral
literal: 2 @373
staticType: int
@@ -10343,7 +10415,7 @@
leftOperand: IntegerLiteral
literal: 1 @398
staticType: int
- operator: >= @0
+ operator: >= @400
rightOperand: IntegerLiteral
literal: 2 @403
staticType: int
@@ -10357,7 +10429,7 @@
leftOperand: IntegerLiteral
literal: 1 @420
staticType: int
- operator: < @0
+ operator: < @422
rightOperand: IntegerLiteral
literal: 2 @424
staticType: int
@@ -10371,7 +10443,7 @@
leftOperand: IntegerLiteral
literal: 1 @446
staticType: int
- operator: <= @0
+ operator: <= @448
rightOperand: IntegerLiteral
literal: 2 @451
staticType: int
@@ -10430,13 +10502,13 @@
type: int
constantInitializer
ConditionalExpression
- colon: : @0
+ colon: : @35
condition: ParenthesizedExpression
expression: BinaryExpression
leftOperand: IntegerLiteral
literal: 1 @22
staticType: int
- operator: == @0
+ operator: == @24
rightOperand: IntegerLiteral
literal: 2 @27
staticType: int
@@ -10449,7 +10521,7 @@
elseExpression: IntegerLiteral
literal: 22 @37
staticType: int
- question: ? @0
+ question: ? @30
staticType: int
thenExpression: IntegerLiteral
literal: 11 @32
@@ -10472,13 +10544,13 @@
type: int
constantInitializer
ConditionalExpression
- colon: : @0
+ colon: : @33
condition: ParenthesizedExpression
expression: BinaryExpression
leftOperand: IntegerLiteral
literal: 1 @20
staticType: int
- operator: == @0
+ operator: == @22
rightOperand: IntegerLiteral
literal: 2 @25
staticType: int
@@ -10491,7 +10563,7 @@
elseExpression: IntegerLiteral
literal: 22 @35
staticType: int
- question: ? @0
+ question: ? @28
staticType: int
thenExpression: IntegerLiteral
literal: 11 @30
@@ -10517,7 +10589,7 @@
leftOperand: IntegerLiteral
literal: 1 @16
staticType: int
- operator: ?? @0
+ operator: ?? @18
rightOperand: DoubleLiteral
literal: 2.0 @21
staticType: double
@@ -10554,7 +10626,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @14
staticType: null
static const vBoolFalse @26
type: bool
@@ -10710,7 +10782,7 @@
ListLiteral
elements
PropertyAccess
- operator: ?. @0
+ operator: ?. @49
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -10720,8 +10792,8 @@
staticElement: self::@getter::a
staticType: String?
token: a @48
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @44
+ rightBracket: ] @59
staticType: List<int?>
accessors
synthetic static get a @14
@@ -10750,7 +10822,7 @@
leftOperand: IntegerLiteral
literal: 1 @16
staticType: int
- operator: + @0
+ operator: + @18
rightOperand: IntegerLiteral
literal: 2 @20
staticType: int
@@ -10760,7 +10832,7 @@
leftParenthesis: ( @15
rightParenthesis: ) @21
staticType: int
- operator: * @0
+ operator: * @23
rightOperand: IntegerLiteral
literal: 3 @25
staticType: int
@@ -10776,7 +10848,7 @@
leftOperand: IntegerLiteral
literal: 1 @45
staticType: int
- operator: + @0
+ operator: + @47
rightOperand: IntegerLiteral
literal: 2 @49
staticType: int
@@ -10793,7 +10865,7 @@
type: int
constantInitializer
PropertyAccess
- operator: . @0
+ operator: . @83
propertyName: SimpleIdentifier
staticElement: dart:core::@class::String::@getter::length
staticType: int
@@ -10803,7 +10875,7 @@
expression: BinaryExpression
leftOperand: SimpleStringLiteral
literal: 'aaa' @69
- operator: + @0
+ operator: + @75
rightOperand: SimpleStringLiteral
literal: 'bbb' @77
staticElement: dart:core::@class::String::@method::+
@@ -10840,7 +10912,7 @@
leftOperand: IntegerLiteral
literal: 1 @18
staticType: int
- operator: != @0
+ operator: != @20
rightOperand: IntegerLiteral
literal: 2 @23
staticType: int
@@ -10902,7 +10974,7 @@
constantInitializer
SuperExpression
staticType: dynamic
- superKeyword: super @0
+ superKeyword: super @15
accessors
synthetic static get vSuper @6
returnType: dynamic
@@ -10922,7 +10994,7 @@
constantInitializer
ThisExpression
staticType: dynamic
- thisKeyword: this @0
+ thisKeyword: this @14
accessors
synthetic static get vThis @6
returnType: dynamic
@@ -10991,9 +11063,9 @@
type: List<Null>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @14
+ leftBracket: [ @26
+ rightBracket: ] @27
staticType: List<Null>
typeArguments: TypeArgumentList
arguments
@@ -11003,13 +11075,13 @@
staticType: null
token: Null @21
type: Null
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @20
+ rightBracket: > @25
static const vDynamic @36
type: List<dynamic>
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @47
elements
IntegerLiteral
literal: 1 @63
@@ -11020,8 +11092,8 @@
IntegerLiteral
literal: 3 @69
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @62
+ rightBracket: ] @70
staticType: List<dynamic>
typeArguments: TypeArgumentList
arguments
@@ -11031,13 +11103,13 @@
staticType: null
token: dynamic @54
type: dynamic
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @53
+ rightBracket: > @61
static const vInterfaceNoTypeParameters @79
type: List<int>
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @108
elements
IntegerLiteral
literal: 1 @120
@@ -11048,8 +11120,8 @@
IntegerLiteral
literal: 3 @126
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @119
+ rightBracket: ] @127
staticType: List<int>
typeArguments: TypeArgumentList
arguments
@@ -11059,15 +11131,15 @@
staticType: null
token: int @115
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @114
+ rightBracket: > @118
static const vInterfaceNoTypeArguments @136
type: List<List<dynamic>>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @164
+ leftBracket: [ @176
+ rightBracket: ] @177
staticType: List<List<dynamic>>
typeArguments: TypeArgumentList
arguments
@@ -11077,15 +11149,15 @@
staticType: null
token: List @171
type: List<dynamic>
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @170
+ rightBracket: > @175
static const vInterfaceWithTypeArguments @186
type: List<List<String>>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @216
+ leftBracket: [ @236
+ rightBracket: ] @237
staticType: List<List<String>>
typeArguments: TypeArgumentList
arguments
@@ -11103,17 +11175,17 @@
staticType: null
token: String @228
type: String
- leftBracket: < @0
- rightBracket: > @0
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @227
+ rightBracket: > @234
+ leftBracket: < @222
+ rightBracket: > @235
static const vInterfaceWithTypeArguments2 @246
type: List<Map<int, List<String>>>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @277
+ leftBracket: [ @307
+ rightBracket: ] @308
staticType: List<Map<int, List<String>>>
typeArguments: TypeArgumentList
arguments
@@ -11145,12 +11217,12 @@
staticType: null
token: String @298
type: String
- leftBracket: < @0
- rightBracket: > @0
- leftBracket: < @0
- rightBracket: > @0
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @297
+ rightBracket: > @304
+ leftBracket: < @287
+ rightBracket: > @305
+ leftBracket: < @283
+ rightBracket: > @306
accessors
synthetic static get vNull @6
returnType: List<Null>
@@ -11183,9 +11255,9 @@
type: List<C>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @27
+ leftBracket: [ @36
+ rightBracket: ] @37
staticType: List<C>
typeArguments: TypeArgumentList
arguments
@@ -11195,8 +11267,8 @@
staticType: null
token: C @34
type: C
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @33
+ rightBracket: > @35
accessors
synthetic static get v @23
returnType: List<C>
@@ -11219,9 +11291,9 @@
type: List<C>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @32
+ leftBracket: [ @43
+ rightBracket: ] @44
staticType: List<C>
typeArguments: TypeArgumentList
arguments
@@ -11231,7 +11303,7 @@
staticElement: a.dart::@class::C
staticType: null
token: C @41
- period: . @0
+ period: . @40
prefix: SimpleIdentifier
staticElement: self::@prefix::p
staticType: null
@@ -11239,8 +11311,8 @@
staticElement: a.dart::@class::C
staticType: null
type: C
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @38
+ rightBracket: > @42
accessors
synthetic static get v @28
returnType: List<C>
@@ -11268,9 +11340,9 @@
type: List<int Function(String)>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @36
+ leftBracket: [ @45
+ rightBracket: ] @46
staticType: List<int Function(String)>
typeArguments: TypeArgumentList
arguments
@@ -11280,8 +11352,8 @@
staticType: null
token: F @43
type: int Function(String)
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @42
+ rightBracket: > @44
accessors
synthetic static get v @32
returnType: List<int Function(String)>
@@ -11303,8 +11375,10 @@
type: Map<dynamic, int>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @18
isMap: true
+ leftBracket: { @38
+ rightBracket: } @39
staticType: Map<dynamic, int>
typeArguments: TypeArgumentList
arguments
@@ -11320,14 +11394,16 @@
staticType: null
token: int @34
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @24
+ rightBracket: > @37
static const vDynamic2 @48
type: Map<int, dynamic>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @60
isMap: true
+ leftBracket: { @80
+ rightBracket: } @81
staticType: Map<int, dynamic>
typeArguments: TypeArgumentList
arguments
@@ -11343,14 +11419,16 @@
staticType: null
token: dynamic @72
type: dynamic
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @66
+ rightBracket: > @79
static const vInterface @90
type: Map<int, String>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @103
isMap: true
+ leftBracket: { @122
+ rightBracket: } @123
staticType: Map<int, String>
typeArguments: TypeArgumentList
arguments
@@ -11366,14 +11444,16 @@
staticType: null
token: String @115
type: String
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @109
+ rightBracket: > @121
static const vInterfaceWithTypeArguments @132
type: Map<int, List<String>>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @162
isMap: true
+ leftBracket: { @187
+ rightBracket: } @188
staticType: Map<int, List<String>>
typeArguments: TypeArgumentList
arguments
@@ -11397,10 +11477,10 @@
staticType: null
token: String @179
type: String
- leftBracket: < @0
- rightBracket: > @0
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @178
+ rightBracket: > @185
+ leftBracket: < @168
+ rightBracket: > @186
accessors
synthetic static get vDynamic1 @6
returnType: Map<dynamic, int>
@@ -11427,8 +11507,10 @@
type: Set<dynamic>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @18
isMap: false
+ leftBracket: { @33
+ rightBracket: } @34
staticType: Set<dynamic>
typeArguments: TypeArgumentList
arguments
@@ -11438,14 +11520,16 @@
staticType: null
token: dynamic @25
type: dynamic
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @24
+ rightBracket: > @32
static const vInterface @43
type: Set<int>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @56
isMap: false
+ leftBracket: { @67
+ rightBracket: } @68
staticType: Set<int>
typeArguments: TypeArgumentList
arguments
@@ -11455,14 +11539,16 @@
staticType: null
token: int @63
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @62
+ rightBracket: > @66
static const vInterfaceWithTypeArguments @77
type: Set<List<String>>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @107
isMap: false
+ leftBracket: { @127
+ rightBracket: } @128
staticType: Set<List<String>>
typeArguments: TypeArgumentList
arguments
@@ -11480,10 +11566,10 @@
staticType: null
token: String @119
type: String
- leftBracket: < @0
- rightBracket: > @0
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @118
+ rightBracket: > @125
+ leftBracket: < @113
+ rightBracket: > @126
accessors
synthetic static get vDynamic1 @6
returnType: Set<dynamic>
@@ -11506,7 +11592,7 @@
type: List<int>
constantInitializer
ListLiteral
- constKeyword: const @0
+ constKeyword: const @10
elements
IntegerLiteral
literal: 1 @17
@@ -11517,8 +11603,8 @@
IntegerLiteral
literal: 3 @23
staticType: int
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @16
+ rightBracket: ] @24
staticType: List<int>
accessors
synthetic static get v @6
@@ -11538,7 +11624,7 @@
type: Map<int, String>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @10
elements
SetOrMapLiteral
key: IntegerLiteral
@@ -11559,6 +11645,8 @@
value: SimpleStringLiteral
literal: 'ccc' @40
isMap: true
+ leftBracket: { @16
+ rightBracket: } @45
staticType: Map<int, String>
accessors
synthetic static get v @6
@@ -11578,7 +11666,7 @@
type: Set<int>
constantInitializer
SetOrMapLiteral
- constKeyword: const @0
+ constKeyword: const @10
elements
IntegerLiteral
literal: 0 @17
@@ -11590,6 +11678,8 @@
literal: 2 @23
staticType: int
isMap: false
+ leftBracket: { @16
+ rightBracket: } @24
staticType: Set<int>
accessors
synthetic static get v @6
@@ -11711,7 +11801,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @51
staticType: null
constructors
synthetic @-1
@@ -11791,18 +11881,21 @@
type: int
constantInitializers
AssertInitializer
+ assertKeyword: assert @29
condition: BinaryExpression
leftOperand: SimpleIdentifier
staticElement: x@24
staticType: int
- token: x @-1
- operator: >= @0
+ token: x @36
+ operator: >= @38
rightOperand: IntegerLiteral
- literal: 42 @0
+ literal: 42 @41
staticType: int
staticElement: dart:core::@class::num::@method::>=
staticInvokeType: null
staticType: bool
+ leftParenthesis: ( @35
+ rightParenthesis: ) @43
''');
}
@@ -11824,20 +11917,23 @@
type: int
constantInitializers
AssertInitializer
+ assertKeyword: assert @29
condition: BinaryExpression
leftOperand: SimpleIdentifier
staticElement: x@24
staticType: int
- token: x @-1
- operator: >= @0
+ token: x @36
+ operator: >= @38
rightOperand: IntegerLiteral
- literal: 42 @0
+ literal: 42 @41
staticType: int
staticElement: dart:core::@class::num::@method::>=
staticInvokeType: null
staticType: bool
+ leftParenthesis: ( @35
message: SimpleStringLiteral
- literal: 'foo' @0
+ literal: 'foo' @45
+ rightParenthesis: ) @50
''');
}
@@ -11860,14 +11956,14 @@
const @29
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @37
expression: IntegerLiteral
- literal: 42 @0
+ literal: 42 @39
staticType: int
fieldName: SimpleIdentifier
staticElement: self::@class::C::@field::x
staticType: null
- token: x @-1
+ token: x @35
accessors
synthetic get x @18
returnType: dynamic
@@ -11895,21 +11991,21 @@
const @29
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @37
expression: MethodInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @42
+ rightParenthesis: ) @43
methodName: SimpleIdentifier
staticElement: self::@function::foo
staticType: int Function()
- token: foo @-1
+ token: foo @39
staticInvokeType: int Function()
staticType: int
fieldName: SimpleIdentifier
staticElement: self::@class::C::@field::x
staticType: null
- token: x @-1
+ token: x @35
accessors
synthetic get x @18
returnType: dynamic
@@ -11941,19 +12037,19 @@
type: int
constantInitializer
IntegerLiteral
- literal: 0 @0
+ literal: 0 @45
staticType: int
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @54
expression: SimpleIdentifier
staticElement: self::@class::A::@constructor::•::@parameter::f
staticType: int
- token: f @-1
+ token: f @56
fieldName: SimpleIdentifier
staticElement: self::@class::A::@field::_f
staticType: null
- token: _f @-1
+ token: _f @51
accessors
synthetic get _f @22
returnType: int
@@ -11982,23 +12078,23 @@
type: int
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @42
expression: BinaryExpression
leftOperand: IntegerLiteral
- literal: 1 @0
+ literal: 1 @44
staticType: int
- operator: + @0
+ operator: + @46
rightOperand: SimpleIdentifier
staticElement: p@35
staticType: int
- token: p @-1
+ token: p @48
staticElement: dart:core::@class::num::@method::+
staticInvokeType: null
staticType: int
fieldName: SimpleIdentifier
staticElement: self::@class::C::@field::x
staticType: null
- token: x @-1
+ token: x @40
accessors
synthetic get x @18
returnType: dynamic
@@ -12041,8 +12137,8 @@
arguments
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @97
+ rightParenthesis: ) @98
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::A::@constructor::•
@@ -12051,7 +12147,7 @@
name: SimpleIdentifier
staticElement: self::@class::A
staticType: null
- token: A @-1
+ token: A @84
type: A<dynamic Function()>
typeArguments: TypeArgumentList
arguments
@@ -12063,12 +12159,13 @@
functionKeyword: Function @0
parameters: FormalParameterList
type: dynamic Function()
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @85
+ rightBracket: > @96
staticType: A<dynamic Function()>
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @83
+ rightParenthesis: ) @99
staticElement: self::@class::B::@constructor::•
+ thisKeyword: this @79
redirectedConstructor: self::@class::B::@constructor::•
''');
}
@@ -12101,13 +12198,14 @@
argumentList: ArgumentList
arguments
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @84
+ leftBracket: [ @90
+ rightBracket: ] @91
staticType: List<String>
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @83
+ rightParenthesis: ) @92
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @78
''');
}
@@ -12141,15 +12239,17 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 42 @0
+ literal: 42 @78
staticType: int
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @77
+ rightParenthesis: ) @80
constructorName: SimpleIdentifier
staticElement: self::@class::A::@constructor::aaa
staticType: null
- token: aaa @-1
+ token: aaa @74
+ period: . @73
staticElement: self::@class::A::@constructor::aaa
+ superKeyword: super @68
''');
}
@@ -12178,13 +12278,15 @@
constantInitializers
SuperConstructorInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @68
+ rightParenthesis: ) @69
constructorName: SimpleIdentifier
staticElement: self::@class::A::@constructor::_
staticType: null
- token: _ @-1
+ token: _ @67
+ period: . @66
staticElement: self::@class::A::@constructor::_
+ superKeyword: super @61
''');
}
@@ -12220,24 +12322,26 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 1 @0
+ literal: 1 @83
staticType: int
NamedExpression
name: Label
label: SimpleIdentifier
staticElement: self::@class::A::@constructor::aaa::@parameter::b
staticType: null
- token: b @-1
+ token: b @86
expression: IntegerLiteral
- literal: 2 @0
+ literal: 2 @89
staticType: int
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @82
+ rightParenthesis: ) @90
constructorName: SimpleIdentifier
staticElement: self::@class::A::@constructor::aaa
staticType: null
- token: aaa @-1
+ token: aaa @79
+ period: . @78
staticElement: self::@class::A::@constructor::aaa
+ superKeyword: super @73
''');
}
@@ -12271,11 +12375,12 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 42 @0
+ literal: 42 @74
staticType: int
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @73
+ rightParenthesis: ) @76
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @68
''');
}
@@ -12304,13 +12409,14 @@
argumentList: ArgumentList
arguments
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @67
+ leftBracket: [ @73
+ rightBracket: ] @74
staticType: List<String>
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @66
+ rightParenthesis: ) @75
staticElement: self::@class::A::@constructor::•
+ thisKeyword: this @62
redirectedConstructor: self::@class::A::@constructor::•
''');
}
@@ -12334,17 +12440,19 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 1 @0
+ literal: 1 @35
staticType: int
SimpleStringLiteral
- literal: 'bbb' @0
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ literal: 'bbb' @38
+ leftParenthesis: ( @34
+ rightParenthesis: ) @43
constructorName: SimpleIdentifier
staticElement: self::@class::C::@constructor::named
staticType: null
- token: named @-1
+ token: named @29
+ period: . @28
staticElement: self::@class::C::@constructor::named
+ thisKeyword: this @24
redirectedConstructor: self::@class::C::@constructor::named
const named @56
periodOffset: 55
@@ -12376,24 +12484,26 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 1 @0
+ literal: 1 @35
staticType: int
NamedExpression
name: Label
label: SimpleIdentifier
staticElement: self::@class::C::@constructor::named::@parameter::b
staticType: null
- token: b @-1
+ token: b @38
expression: IntegerLiteral
- literal: 2 @0
+ literal: 2 @41
staticType: int
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @34
+ rightParenthesis: ) @42
constructorName: SimpleIdentifier
staticElement: self::@class::C::@constructor::named
staticType: null
- token: named @-1
+ token: named @29
+ period: . @28
staticElement: self::@class::C::@constructor::named
+ thisKeyword: this @24
redirectedConstructor: self::@class::C::@constructor::named
const named @55
periodOffset: 54
@@ -12427,13 +12537,14 @@
argumentList: ArgumentList
arguments
IntegerLiteral
- literal: 1 @0
+ literal: 1 @35
staticType: int
SimpleStringLiteral
- literal: 'bbb' @0
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ literal: 'bbb' @38
+ leftParenthesis: ( @34
+ rightParenthesis: ) @43
staticElement: self::@class::C::@constructor::•
+ thisKeyword: this @30
redirectedConstructor: self::@class::C::@constructor::•
const @54
parameters
@@ -13132,13 +13243,15 @@
constantInitializers
RedirectingConstructorInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @53
+ rightParenthesis: ) @54
constructorName: SimpleIdentifier
staticElement: self::@class::C::@constructor::named
staticType: null
- token: named @-1
+ token: named @48
+ period: . @47
staticElement: self::@class::C::@constructor::named
+ thisKeyword: this @43
redirectedConstructor: self::@class::C::@constructor::named
''');
}
@@ -13166,13 +13279,15 @@
constantInitializers
RedirectingConstructorInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @56
+ rightParenthesis: ) @57
constructorName: SimpleIdentifier
staticElement: self::@class::C::@constructor::named
staticType: null
- token: named @-1
+ token: named @51
+ period: . @50
staticElement: self::@class::C::@constructor::named
+ thisKeyword: this @46
redirectedConstructor: self::@class::C::@constructor::named
''');
}
@@ -13217,9 +13332,10 @@
constantInitializers
RedirectingConstructorInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @47
+ rightParenthesis: ) @48
staticElement: self::@class::C::@constructor::•
+ thisKeyword: this @43
redirectedConstructor: self::@class::C::@constructor::•
''');
}
@@ -13247,9 +13363,10 @@
constantInitializers
RedirectingConstructorInvocation
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @50
+ rightParenthesis: ) @51
staticElement: self::@class::C::@constructor::•
+ thisKeyword: this @46
redirectedConstructor: self::@class::C::@constructor::•
''');
}
@@ -13297,25 +13414,25 @@
const @29
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @37
expression: InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @46
+ rightParenthesis: ) @47
constructorName: ConstructorName
staticElement: self::@class::D::@constructor::•
type: TypeName
name: SimpleIdentifier
staticElement: self::@class::D
staticType: null
- token: D @-1
+ token: D @45
type: D
- keyword: const @0
+ keyword: const @39
staticType: D
fieldName: SimpleIdentifier
staticElement: self::@class::C::@field::x
staticType: null
- token: x @-1
+ token: x @35
accessors
synthetic get x @18
returnType: dynamic
@@ -13327,25 +13444,25 @@
const @81
constantInitializers
ConstructorFieldInitializer
- equals: = @0
+ equals: = @89
expression: InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @98
+ rightParenthesis: ) @99
constructorName: ConstructorName
staticElement: self::@class::C::@constructor::•
type: TypeName
name: SimpleIdentifier
staticElement: self::@class::C
staticType: null
- token: C @-1
+ token: C @97
type: C
- keyword: const @0
+ keyword: const @91
staticType: C
fieldName: SimpleIdentifier
staticElement: self::@class::D::@field::x
staticType: null
- token: x @-1
+ token: x @87
accessors
synthetic get x @70
returnType: dynamic
@@ -13411,9 +13528,9 @@
type: List<T>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @36
+ leftBracket: [ @42
+ rightBracket: ] @43
staticType: List<Never>
returnType: dynamic
''');
@@ -13443,9 +13560,9 @@
type: List<T*>*
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @36
+ leftBracket: [ @42
+ rightBracket: ] @43
staticType: List<Null*>*
returnType: dynamic
''');
@@ -13485,7 +13602,7 @@
SimpleIdentifier
staticElement: self::@function::defaultF
staticType: void Function(dynamic)
- token: defaultF @-1
+ token: defaultF @93
accessors
synthetic get f @71
returnType: void Function(dynamic)
@@ -13544,8 +13661,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @72
+ rightParenthesis: ) @73
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::A::@constructor::•
@@ -13554,7 +13671,7 @@
name: SimpleIdentifier
staticElement: self::@class::A
staticType: null
- token: A @-1
+ token: A @59
type: A<dynamic Function()>
typeArguments: TypeArgumentList
arguments
@@ -13566,9 +13683,9 @@
functionKeyword: Function @0
parameters: FormalParameterList
type: dynamic Function()
- leftBracket: < @0
- rightBracket: > @0
- keyword: const @0
+ leftBracket: < @60
+ rightBracket: > @71
+ keyword: const @53
staticType: A<dynamic Function()>
returnType: void
''');
@@ -13629,12 +13746,12 @@
base: dart:core::@class::Comparable::@method::compare
substitution: {}
staticType: int* Function(Comparable<dynamic>*, Comparable<dynamic>*)*
- token: compare @-1
- period: . @0
+ token: compare @43
+ period: . @42
prefix: SimpleIdentifier
staticElement: dart:core::@class::Comparable
staticType: null
- token: Comparable @-1
+ token: Comparable @32
staticElement: MethodMember
base: dart:core::@class::Comparable::@method::compare
substitution: {}
@@ -13672,7 +13789,7 @@
SimpleIdentifier
staticElement: self::@extension::E::@method::f
staticType: void Function()
- token: f @-1
+ token: f @79
returnType: void
''');
}
@@ -13709,8 +13826,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @81
+ rightParenthesis: ) @82
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13719,9 +13836,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @80
type: B<int, double>
- keyword: const @0
+ keyword: const @74
staticType: B<int, double>
returnType: void
''');
@@ -13758,8 +13875,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @68
+ rightParenthesis: ) @69
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13768,9 +13885,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @67
type: B<Never>
- keyword: const @0
+ keyword: const @61
staticType: B<Never>
''');
}
@@ -13817,8 +13934,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @133
+ rightParenthesis: ) @134
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13827,9 +13944,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @132
type: B<Never>
- keyword: const @0
+ keyword: const @126
staticType: B<Never>
''');
}
@@ -13877,8 +13994,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @133
+ rightParenthesis: ) @134
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13887,9 +14004,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @132
type: B<Null*>*
- keyword: const @0
+ keyword: const @126
staticType: B<Null*>*
''');
}
@@ -13926,8 +14043,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @68
+ rightParenthesis: ) @69
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13936,9 +14053,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @67
type: B<Null*>*
- keyword: const @0
+ keyword: const @61
staticType: B<Null*>*
''');
}
@@ -13970,8 +14087,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @57
+ rightParenthesis: ) @58
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -13980,9 +14097,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @56
type: B<Never>
- keyword: const @0
+ keyword: const @50
staticType: B<Never>
returnType: void
''');
@@ -14020,8 +14137,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @69
+ rightParenthesis: ) @70
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -14030,9 +14147,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @68
type: B<Never>
- keyword: const @0
+ keyword: const @62
staticType: B<Never>
returnType: void
''');
@@ -14075,8 +14192,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @84
+ rightParenthesis: ) @85
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -14085,9 +14202,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @83
type: B<Never, Never>
- keyword: const @0
+ keyword: const @77
staticType: B<Never, Never>
returnType: void
''');
@@ -14126,8 +14243,8 @@
constantInitializer
InstanceCreationExpression
argumentList: ArgumentList
- leftParenthesis: ( @0
- rightParenthesis: ) @0
+ leftParenthesis: ( @69
+ rightParenthesis: ) @70
constructorName: ConstructorName
staticElement: ConstructorMember
base: self::@class::B::@constructor::•
@@ -14136,9 +14253,9 @@
name: SimpleIdentifier
staticElement: self::@class::B
staticType: null
- token: B @-1
+ token: B @68
type: B<Never>
- keyword: const @0
+ keyword: const @62
staticType: B<Never>
returnType: void
''');
@@ -14222,6 +14339,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
class alias X @48
supertype: B
mixins
@@ -14234,6 +14352,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::B::@constructor::•
+ superKeyword: super @0
mixins
mixin M @68
superclassConstraints
@@ -14802,6 +14921,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: dart:core::@class::Object::@constructor::•
+ superKeyword: super @0
enums
enum E @5
fields
@@ -15562,8 +15682,8 @@
token: int @58
type: int
type: int Function(double)
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @57
+ rightBracket: > @80
keyword: const @50
staticType: A<int Function(double)>
constructors
@@ -15750,8 +15870,8 @@
staticElement: self::@getter::a
staticType: int
token: a @112
- leftBracket: [ @0
- rightBracket: ] @0
+ leftBracket: [ @111
+ rightBracket: ] @113
staticType: List<int>
constructors
const @94
@@ -16069,9 +16189,9 @@
type: List<int>
constantInitializer
ListLiteral
- constKeyword: const @0
- leftBracket: [ @0
- rightBracket: ] @0
+ constKeyword: const @35
+ leftBracket: [ @41
+ rightBracket: ] @42
staticType: List<int>
constructors
const @53
@@ -16247,7 +16367,7 @@
type: int
constantInitializer
IntegerLiteral
- literal: 42 @0
+ literal: 42 @20
staticType: int
returnType: void
''');
@@ -17156,8 +17276,8 @@
token: int @32
type: int
type: int Function(String)
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @31
+ rightBracket: > @54
constructors
synthetic @-1
''');
@@ -17230,8 +17350,8 @@
token: int @32
type: int
type: int Function(String)
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @31
+ rightBracket: > @54
type: int
accessors
synthetic static get v @62
@@ -17320,8 +17440,8 @@
token: String @41
type: String
type: String Function({int? a})
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @40
+ rightBracket: > @66
staticType: A<String Function({int? a})>
accessors
synthetic static get v @35
@@ -17405,8 +17525,8 @@
token: String @41
type: String
type: String Function([int?])
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @40
+ rightBracket: > @66
staticType: A<String Function([int?])>
accessors
synthetic static get v @35
@@ -17491,8 +17611,8 @@
token: String @41
type: String
type: String Function({required int a})
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @40
+ rightBracket: > @74
staticType: A<String Function({required int a})>
accessors
synthetic static get v @35
@@ -17569,8 +17689,8 @@
token: String @41
type: String
type: String Function(int)
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @40
+ rightBracket: > @63
staticType: A<String Function(int)>
accessors
synthetic static get v @35
@@ -17626,6 +17746,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
mixins
mixin M @20
superclassConstraints
@@ -17888,6 +18009,7 @@
staticElement: self::@class::C::@constructor::named
staticType: null
token: named @67
+ period: . @66
staticElement: self::@class::C::@constructor::named
type: TypeName
name: SimpleIdentifier
@@ -20521,7 +20643,7 @@
staticElement: package:test/a.dart::@class::A
staticType: null
token: A @25
- period: . @0
+ period: . @24
prefix: SimpleIdentifier
staticElement: self::@prefix::a
staticType: null
@@ -20561,7 +20683,7 @@
staticElement: package:test/a.dart::@class::A::@constructor::named
staticType: null
token: named @20
- period: . @0
+ period: . @19
prefix: SimpleIdentifier
staticElement: package:test/a.dart::@class::A
staticType: null
@@ -20626,7 +20748,7 @@
SimpleIdentifier
staticElement: <null>
staticType: dynamic
- token: V @-1
+ token: V @43
returnType: dynamic
''');
}
@@ -20656,7 +20778,7 @@
SimpleIdentifier
staticElement: a.dart::@function::V
staticType: dynamic Function()
- token: V @-1
+ token: V @26
returnType: dynamic
''');
}
@@ -20690,7 +20812,7 @@
SimpleIdentifier
staticElement: self::@getter::V
staticType: dynamic
- token: V @-1
+ token: V @9
returnType: dynamic
V @16
returnType: dynamic
@@ -21026,6 +21148,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::C::@constructor::•
+ superKeyword: super @0
class C @29
constructors
synthetic @-1
@@ -21358,13 +21481,13 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static const b @22
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
accessors
synthetic static get a @6
@@ -21401,6 +21524,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @45
constructors
synthetic @-1
@@ -21412,7 +21536,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -21458,7 +21582,7 @@
staticElement: self::@class::A::@constructor::named
staticType: null
token: named @39
- period: . @0
+ period: . @38
prefix: SimpleIdentifier
staticElement: self::@class::A
staticType: null
@@ -21516,7 +21640,7 @@
substitution: {T: int}
staticType: null
token: named @41
- period: . @0
+ period: . @40
prefix: SimpleIdentifier
staticElement: self::@class::A
staticType: null
@@ -21580,8 +21704,8 @@
staticType: null
token: int @38
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @37
+ rightBracket: > @41
constructors
synthetic @-1
''');
@@ -21636,8 +21760,8 @@
staticType: null
token: int @38
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @37
+ rightBracket: > @41
constructors
synthetic @-1
''');
@@ -21682,7 +21806,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -21738,7 +21862,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -21790,7 +21914,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -21805,8 +21929,8 @@
staticType: null
token: int @33
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @32
+ rightBracket: > @36
constructors
synthetic @-1
''');
@@ -21852,7 +21976,9 @@
staticElement: self::@class::A::@constructor::named
staticType: null
token: named @-1
+ period: . @0
staticElement: self::@class::A::@constructor::named
+ superKeyword: super @0
class D @85
metadata
Annotation
@@ -21870,7 +21996,7 @@
substitution: {T: dynamic}
staticType: null
token: named @71
- period: . @0
+ period: . @70
prefix: SimpleIdentifier
staticElement: self::@class::C
staticType: null
@@ -22018,8 +22144,8 @@
staticType: null
token: int @32
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @31
+ rightBracket: > @35
constructors
synthetic @-1
''');
@@ -22053,7 +22179,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -22103,7 +22229,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -22149,7 +22275,7 @@
staticElement: package:test/foo.dart::@class::A
staticType: null
token: A @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -22164,8 +22290,8 @@
staticType: null
token: int @33
type: int
- leftBracket: < @0
- rightBracket: > @0
+ leftBracket: < @32
+ rightBracket: > @36
constructors
synthetic @-1
''');
@@ -22206,6 +22332,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
class D @73
metadata
Annotation
@@ -22250,7 +22377,7 @@
arguments: ArgumentList
arguments
NullLiteral
- literal: null @0
+ literal: null @27
staticType: null
leftParenthesis: ( @26
rightParenthesis: ) @31
@@ -22290,7 +22417,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22320,7 +22447,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22536,7 +22663,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @32
staticType: null
accessors
synthetic static get a @28
@@ -22653,7 +22780,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22694,7 +22821,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22725,12 +22852,12 @@
type: dynamic
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 39
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @40
accessors
synthetic get x @32
returnType: dynamic
@@ -22744,7 +22871,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22770,15 +22897,15 @@
type: dynamic
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 36
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @37
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @48
staticType: null
accessors
synthetic get x @30
@@ -22793,7 +22920,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22815,7 +22942,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22844,7 +22971,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
synthetic static f @-1
type: dynamic
@@ -22874,7 +23001,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
synthetic static f @-1
type: dynamic
@@ -22920,7 +23047,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22938,7 +23065,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22950,12 +23077,12 @@
type: dynamic Function()
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 18
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @19
returnType: dynamic
''');
}
@@ -22970,7 +23097,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -22982,15 +23109,15 @@
type: dynamic Function()
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 19
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @20
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @28
staticType: null
returnType: dynamic
''');
@@ -23031,13 +23158,13 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static const b @22
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
accessors
synthetic static get a @6
@@ -23299,7 +23426,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @24
staticType: null
accessors
synthetic static get a @20
@@ -23336,7 +23463,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -23384,13 +23511,13 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static const b @22
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
accessors
synthetic static get a @6
@@ -23442,13 +23569,13 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static const b @22
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
accessors
synthetic static get a @6
@@ -23495,7 +23622,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -23612,13 +23739,13 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static const b @22
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
accessors
synthetic static get a @6
@@ -23704,12 +23831,12 @@
type: int
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 37
element: self::@getter::foo
name: SimpleIdentifier
staticElement: self::@getter::foo
staticType: null
- token: foo @-1
+ token: foo @38
topLevelVariables
static const foo @6
type: int
@@ -23808,12 +23935,12 @@
type: int
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 55
element: self::@getter::foo
name: SimpleIdentifier
staticElement: self::@getter::foo
staticType: null
- token: foo @-1
+ token: foo @56
returnType: void
topLevelVariables
static const foo @6
@@ -23931,6 +24058,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
mixins
mixin M @33
superclassConstraints
@@ -24192,7 +24320,7 @@
const foo = 0;
@foo
-void f<@foo T>(@foo int a) {}
+void f<@foo T>({@foo int? a = 42}) {}
''');
// TODO(scheglov) Enhance to show metadata on formal parameters?
checkElementText(library, r'''
@@ -24229,16 +24357,20 @@
staticType: null
token: foo @29
parameters
- requiredPositional a @45
- type: int
+ optionalNamed a @47
+ type: int?
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 37
element: self::@getter::foo
name: SimpleIdentifier
staticElement: self::@getter::foo
staticType: null
- token: foo @-1
+ token: foo @38
+ constantInitializer
+ IntegerLiteral
+ literal: 42 @51
+ staticType: int
returnType: void
''');
}
@@ -24401,7 +24533,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @41
staticType: null
accessors
synthetic static get a @37
@@ -24455,7 +24587,7 @@
staticElement: a.dart::@getter::b
staticType: null
token: b @25
- period: . @0
+ period: . @24
prefix: SimpleIdentifier
staticElement: self::@prefix::a
staticType: null
@@ -24477,7 +24609,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24489,12 +24621,12 @@
type: dynamic
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 18
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @19
returnType: dynamic
''');
}
@@ -24521,19 +24653,19 @@
type: dynamic
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 31
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @32
returnType: dynamic
topLevelVariables
static const a @6
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24555,7 +24687,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
synthetic static foo @-1
type: int
@@ -24588,7 +24720,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24600,15 +24732,15 @@
type: dynamic
metadata
Annotation
- atSign.offset: 0
+ atSign.offset: 19
element: self::@getter::a
name: SimpleIdentifier
staticElement: self::@getter::a
staticType: null
- token: a @-1
+ token: a @20
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @26
staticType: null
returnType: dynamic
''');
@@ -24624,7 +24756,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
static v @23
metadata
@@ -24674,7 +24806,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24715,6 +24847,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::D::@constructor::•
+ superKeyword: super @0
class D @48
constructors
synthetic @-1
@@ -24726,7 +24859,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24744,7 +24877,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24791,7 +24924,7 @@
type: dynamic
constantInitializer
NullLiteral
- literal: null @0
+ literal: null @10
staticType: null
accessors
synthetic static get a @6
@@ -24879,7 +25012,7 @@
staticElement: self::@class::A::@getter::x
staticType: null
token: x @37
- period: . @0
+ period: . @36
prefix: SimpleIdentifier
staticElement: self::@class::A
staticType: null
@@ -24912,7 +25045,7 @@
staticElement: self::@enum::E::@getter::b
staticType: null
token: b @20
- period: . @0
+ period: . @19
prefix: SimpleIdentifier
staticElement: self::@enum::E
staticType: null
@@ -24974,7 +25107,7 @@
staticElement: self::@extension::E::@getter::x
staticType: null
token: x @48
- period: . @0
+ period: . @47
prefix: SimpleIdentifier
staticElement: self::@extension::E
staticType: null
@@ -25031,7 +25164,7 @@
staticElement: package:test/foo.dart::@extension::E
staticType: null
token: E @31
- period: . @0
+ period: . @30
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -27181,7 +27314,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @30
staticType: int
named @39
periodOffset: 38
@@ -27191,7 +27324,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @49
staticType: int
''');
}
@@ -27223,7 +27356,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @44
staticType: int
named @53
periodOffset: 52
@@ -27233,7 +27366,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @68
staticType: int
accessors
synthetic get x @16
@@ -27269,7 +27402,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @40
staticType: int
returnType: void
static named @61
@@ -27278,7 +27411,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @71
staticType: int
returnType: void
''');
@@ -27302,7 +27435,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @21
staticType: int
returnType: void
named @33
@@ -27311,7 +27444,7 @@
type: dynamic
constantInitializer
IntegerLiteral
- literal: 1 @0
+ literal: 1 @43
staticType: int
returnType: void
''');
@@ -28154,6 +28287,7 @@
leftParenthesis: ( @0
rightParenthesis: ) @0
staticElement: self::@class::A::@constructor::•
+ superKeyword: super @0
class C @78
fields
a @88
@@ -31865,7 +31999,7 @@
arguments
SuperExpression
staticType: dynamic
- superKeyword: super @0
+ superKeyword: super @30
leftParenthesis: ( @29
rightParenthesis: ) @35
atSign.offset: 27
@@ -31905,7 +32039,7 @@
arguments
ThisExpression
staticType: dynamic
- thisKeyword: this @0
+ thisKeyword: this @30
leftParenthesis: ( @29
rightParenthesis: ) @34
atSign.offset: 27
@@ -31939,7 +32073,7 @@
staticElement: <null>
staticType: null
token: bar @5
- period: . @0
+ period: . @4
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -31971,7 +32105,7 @@
staticElement: <null>
staticType: null
token: foo @8
- period: . @0
+ period: . @7
prefix: SimpleIdentifier
staticElement: dart:core::@class::String
staticType: null
@@ -31999,7 +32133,7 @@
staticElement: <null>
staticType: null
token: bar @5
- period: . @0
+ period: . @4
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -32031,7 +32165,7 @@
staticElement: <null>
staticType: null
token: bar @33
- period: . @0
+ period: . @32
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -32067,7 +32201,7 @@
staticElement: <null>
staticType: null
token: bar @5
- period: . @0
+ period: . @4
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -32106,7 +32240,7 @@
staticElement: <null>
staticType: null
token: bar @33
- period: . @0
+ period: . @32
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -32145,7 +32279,7 @@
staticElement: dart:async::@class::Future
staticType: null
token: Future @33
- period: . @0
+ period: . @32
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
@@ -32177,7 +32311,7 @@
staticElement: <null>
staticType: null
token: bar @5
- period: . @0
+ period: . @4
prefix: SimpleIdentifier
staticElement: <null>
staticType: null
@@ -32212,7 +32346,7 @@
staticElement: <null>
staticType: null
token: bar @33
- period: . @0
+ period: . @32
prefix: SimpleIdentifier
staticElement: self::@prefix::foo
staticType: null
diff --git a/pkg/analyzer/test/src/summary/top_level_inference_test.dart b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
index 217f91b..3225233 100644
--- a/pkg/analyzer/test/src/summary/top_level_inference_test.dart
+++ b/pkg/analyzer/test/src/summary/top_level_inference_test.dart
@@ -3476,7 +3476,7 @@
type: int
constantInitializer
SimpleStringLiteral
- literal: 'hello' @0
+ literal: 'hello' @37
accessors
synthetic get f @16
returnType: int
diff --git a/pkg/analyzer/test/verify_diagnostics_test.dart b/pkg/analyzer/test/verify_diagnostics_test.dart
index 5b35e41..1ccaa65 100644
--- a/pkg/analyzer/test/verify_diagnostics_test.dart
+++ b/pkg/analyzer/test/verify_diagnostics_test.dart
@@ -40,6 +40,8 @@
'CompileTimeErrorCode.BUILT_IN_IDENTIFIER_AS_TYPE',
// Produces two diagnostics when it should only produce one.
'CompileTimeErrorCode.CONST_DEFERRED_CLASS',
+ // Produces two diagnostics when it should only produce one.
+ 'CompileTimeErrorCode.CONST_WITH_NON_CONSTANT_ARGUMENT',
// The mock SDK doesn't define any internal libraries.
'CompileTimeErrorCode.EXPORT_INTERNAL_LIBRARY',
// Has code in the example section that needs to be skipped (because it's
diff --git a/pkg/analyzer/tool/diagnostics/diagnostics.md b/pkg/analyzer/tool/diagnostics/diagnostics.md
index 2579b39..85c48aa 100644
--- a/pkg/analyzer/tool/diagnostics/diagnostics.md
+++ b/pkg/analyzer/tool/diagnostics/diagnostics.md
@@ -523,22 +523,24 @@
### ambiguous_set_or_map_literal_both
-_This literal contains both 'Map' and 'Iterable' elements, which makes it
-impossible to determine whether the literal is a map or a set._
+_The literal can't be either a map or a set because it contains at least one
+literal map entry or a spread operator spreading a 'Map', and at least one element which is neither of these._
#### Description
Because map and set literals use the same delimiters (`{` and `}`), the
analyzer looks at the type arguments and the elements to determine which
kind of literal you meant. When there are no type arguments, then the
-analyzer uses the types of the elements. If all of the expressions have the
-type `Iterable`, then it's a set literal; if they all have the type `Map`,
-then it's a map literal.
+analyzer uses the types of the elements. If all of the elements are literal
+map entries and all of the spread operators are spreading a `Map` then it's
+a `Map`. If none of the elements are literal map entries and all of the
+spread operators are spreading an `Iterable`, then it's a `Set`. If neither
+of those is true then it's ambiguous.
-The analyzer produces this diagnostic when some of the elements have the
-type `Iterable` and others have the type `Map`, making it impossible for
-the analyzer to determine whether you are writing a map literal or a set
-literal.
+The analyzer produces this diagnostic when at least one element is a
+literal map entry or a spread operator spreading a `Map`, and at least one
+element is neither of these, making it impossible for the analyzer to
+determine whether you are writing a map literal or a set literal.
#### Examples
diff --git a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
index 34a34f9..14ea739 100644
--- a/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
+++ b/pkg/analyzer_plugin/lib/src/utilities/completion/optype.dart
@@ -584,8 +584,9 @@
optype.includeReturnValueSuggestions = true;
optype.includeTypeNameSuggestions = true;
var parent = node.parent;
+ DartType? type;
if (parent is FunctionExpression) {
- var type = parent.staticType;
+ type = parent.staticType;
if (type is FunctionType) {
if (type.returnType.isVoid) {
// TODO(brianwilkerson) Determine whether the return type can ever
@@ -605,6 +606,11 @@
}
}
}
+ } else if (parent is MethodDeclaration) {
+ type = parent.declaredElement?.returnType;
+ if (type != null && type.isVoid) {
+ optype.includeVoidReturnSuggestions = true;
+ }
}
}
}
@@ -1033,20 +1039,23 @@
// Check for named parameters in constructor calls.
var grandparent = node.parent?.parent;
+ Element? element;
if (grandparent is ConstructorReferenceNode) {
- var element = grandparent.staticElement;
- if (element != null) {
- var parameters = element.parameters;
- var parameterElement = parameters.firstWhereOrNull((e) {
- if (e is DefaultFieldFormalParameterElementImpl) {
- return e.field?.name == node.name.label.name;
- }
- return e.isNamed && e.name == node.name.label.name;
- });
- // Suggest tear-offs.
- if (parameterElement?.type is FunctionType) {
- optype.includeVoidReturnSuggestions = true;
+ element = grandparent.staticElement;
+ } else if (grandparent is MethodInvocation) {
+ element = grandparent.methodName.staticElement;
+ }
+ if (element is ExecutableElement) {
+ var parameters = element.parameters;
+ var parameterElement = parameters.firstWhereOrNull((e) {
+ if (e is DefaultFieldFormalParameterElementImpl) {
+ return e.field?.name == node.name.label.name;
}
+ return e.isNamed && e.name == node.name.label.name;
+ });
+ // Suggest tear-offs.
+ if (parameterElement?.type is FunctionType) {
+ optype.includeVoidReturnSuggestions = true;
}
}
}
diff --git a/pkg/dev_compiler/lib/src/kernel/compiler.dart b/pkg/dev_compiler/lib/src/kernel/compiler.dart
index 90beb07..51181ce 100644
--- a/pkg/dev_compiler/lib/src/kernel/compiler.dart
+++ b/pkg/dev_compiler/lib/src/kernel/compiler.dart
@@ -2792,6 +2792,20 @@
// FutureOr<T?>? --> FutureOr<T?>
return futureOr.withDeclaredNullability(Nullability.nonNullable);
}
+ // The following is not part of the normalization spec but this is a
+ // convenient place to perform this change of nullability consistently. This
+ // only applies at compile-time and is not needed in the runtime version of
+ // the FutureOr normalization.
+ // FutureOr<T%>% --> FutureOr<T%>
+ //
+ // If the type argument has undetermined nullability the CFE propagates
+ // it to the FutureOr type as well. In this case we can represent the
+ // FutureOr type without any nullability wrappers and rely on the runtime to
+ // handle the nullability of the instantiated type appropriately.
+ if (futureOr.nullability == Nullability.undetermined &&
+ typeArgument.nullability == Nullability.undetermined) {
+ return futureOr.withDeclaredNullability(Nullability.nonNullable);
+ }
return futureOr;
}
diff --git a/pkg/kernel/lib/transformations/track_widget_constructor_locations.dart b/pkg/kernel/lib/transformations/track_widget_constructor_locations.dart
index 83bd899..74461fa 100644
--- a/pkg/kernel/lib/transformations/track_widget_constructor_locations.dart
+++ b/pkg/kernel/lib/transformations/track_widget_constructor_locations.dart
@@ -7,7 +7,7 @@
import '../ast.dart';
import '../target/changed_structure_notifier.dart';
-// Parameter name used to track were widget constructor calls were made from.
+// Parameter name used to track where widget constructor calls were made from.
//
// The parameter name contains a randomly generated hex string to avoid
// collision with user generated parameters.
@@ -332,8 +332,7 @@
final Uri importUri = library.importUri;
// ignore: unnecessary_null_comparison
if (importUri != null && importUri.scheme == 'package') {
- if (importUri.path == 'flutter/src/widgets/framework.dart' ||
- importUri.path == 'flutter_web/src/widgets/framework.dart') {
+ if (importUri.path == 'flutter/src/widgets/framework.dart') {
for (Class class_ in library.classes) {
if (class_.name == 'Widget') {
_widgetClass = class_;
@@ -341,9 +340,7 @@
}
}
} else {
- if (importUri.path == 'flutter/src/widgets/widget_inspector.dart' ||
- importUri.path ==
- 'flutter_web/src/widgets/widget_inspector.dart') {
+ if (importUri.path == 'flutter/src/widgets/widget_inspector.dart') {
for (Class class_ in library.classes) {
if (class_.name == '_HasCreationLocation') {
_hasCreationLocationClass = class_;
diff --git a/runtime/vm/heap/marker.cc b/runtime/vm/heap/marker.cc
index 3a79f14..f6a984c 100644
--- a/runtime/vm/heap/marker.cc
+++ b/runtime/vm/heap/marker.cc
@@ -212,6 +212,10 @@
}
}
+ bool WaitForWork(RelaxedAtomic<uintptr_t>* num_busy) {
+ return work_list_.WaitForWork(num_busy);
+ }
+
void AbandonWork() {
work_list_.AbandonWork();
deferred_work_list_.AbandonWork();
@@ -552,23 +556,7 @@
do {
do {
visitor_->DrainMarkingStack();
-
- // I can't find more work right now. If no other task is busy,
- // then there will never be more work (NB: 1 is *before* decrement).
- if (num_busy_->fetch_sub(1u) == 1) break;
-
- // Wait for some work to appear.
- // TODO(40695): Replace busy-waiting with a solution using Monitor,
- // and redraw the boundaries between stack/visitor/task as needed.
- while (marking_stack_->IsEmpty() && num_busy_->load() > 0) {
- }
-
- // If no tasks are busy, there will never be more work.
- if (num_busy_->load() == 0) break;
-
- // I saw some work; get busy and compete for it.
- num_busy_->fetch_add(1u);
- } while (true);
+ } while (visitor_->WaitForWork(num_busy_));
// Wait for all markers to stop.
barrier_->Sync();
#if defined(DEBUG)
diff --git a/runtime/vm/heap/pointer_block.cc b/runtime/vm/heap/pointer_block.cc
index 2814465..daedab8 100644
--- a/runtime/vm/heap/pointer_block.cc
+++ b/runtime/vm/heap/pointer_block.cc
@@ -41,7 +41,7 @@
}
template <int BlockSize>
-BlockStack<BlockSize>::BlockStack() : mutex_() {}
+BlockStack<BlockSize>::BlockStack() : monitor_() {}
template <int BlockSize>
BlockStack<BlockSize>::~BlockStack() {
@@ -50,7 +50,7 @@
template <int BlockSize>
void BlockStack<BlockSize>::Reset() {
- MutexLocker local_mutex_locker(&mutex_);
+ MonitorLocker local_mutex_locker(&monitor_);
{
// Empty all blocks and move them to the global cache.
MutexLocker global_mutex_locker(global_mutex_);
@@ -70,7 +70,7 @@
template <int BlockSize>
typename BlockStack<BlockSize>::Block* BlockStack<BlockSize>::TakeBlocks() {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
while (!partial_.IsEmpty()) {
full_.Push(partial_.Pop());
}
@@ -81,15 +81,45 @@
void BlockStack<BlockSize>::PushBlockImpl(Block* block) {
ASSERT(block->next() == NULL); // Should be just a single block.
if (block->IsFull()) {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
+ bool was_empty = IsEmptyLocked();
full_.Push(block);
+ if (was_empty) ml.Notify();
} else if (block->IsEmpty()) {
MutexLocker ml(global_mutex_);
global_empty_->Push(block);
TrimGlobalEmpty();
} else {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
+ bool was_empty = IsEmptyLocked();
partial_.Push(block);
+ if (was_empty) ml.Notify();
+ }
+}
+
+template <int BlockSize>
+typename BlockStack<BlockSize>::Block* BlockStack<BlockSize>::WaitForWork(
+ RelaxedAtomic<uintptr_t>* num_busy) {
+ MonitorLocker ml(&monitor_);
+ if (num_busy->fetch_sub(1u) == 1 /* 1 is before subtraction */) {
+ // This is the last worker, wake the others now that we know no further work
+ // will come.
+ ml.NotifyAll();
+ return NULL;
+ }
+ for (;;) {
+ if (!full_.IsEmpty()) {
+ num_busy->fetch_add(1u);
+ return full_.Pop();
+ }
+ if (!partial_.IsEmpty()) {
+ num_busy->fetch_add(1u);
+ return partial_.Pop();
+ }
+ ml.Wait();
+ if (num_busy->load() == 0) {
+ return NULL;
+ }
}
}
@@ -103,7 +133,7 @@
void StoreBuffer::PushBlock(Block* block, ThresholdPolicy policy) {
BlockStack<Block::kSize>::PushBlockImpl(block);
if ((policy == kCheckThreshold) && Overflowed()) {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
Thread* thread = Thread::Current();
// Sanity check: it makes no sense to schedule the GC in another isolate
// group.
@@ -118,7 +148,7 @@
typename BlockStack<BlockSize>::Block*
BlockStack<BlockSize>::PopNonFullBlock() {
{
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
if (!partial_.IsEmpty()) {
return partial_.Pop();
}
@@ -140,7 +170,7 @@
template <int BlockSize>
typename BlockStack<BlockSize>::Block*
BlockStack<BlockSize>::PopNonEmptyBlock() {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
if (!full_.IsEmpty()) {
return full_.Pop();
} else if (!partial_.IsEmpty()) {
@@ -152,7 +182,12 @@
template <int BlockSize>
bool BlockStack<BlockSize>::IsEmpty() {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
+ return IsEmptyLocked();
+}
+
+template <int BlockSize>
+bool BlockStack<BlockSize>::IsEmptyLocked() {
return full_.IsEmpty() && partial_.IsEmpty();
}
@@ -189,7 +224,7 @@
}
bool StoreBuffer::Overflowed() {
- MutexLocker ml(&mutex_);
+ MonitorLocker ml(&monitor_);
return (full_.length() + partial_.length()) > kMaxNonEmpty;
}
diff --git a/runtime/vm/heap/pointer_block.h b/runtime/vm/heap/pointer_block.h
index 168a1cb..5ef6dc2 100644
--- a/runtime/vm/heap/pointer_block.h
+++ b/runtime/vm/heap/pointer_block.h
@@ -108,6 +108,8 @@
bool IsEmpty();
+ Block* WaitForWork(RelaxedAtomic<uintptr_t>* num_busy);
+
protected:
class List {
public:
@@ -126,6 +128,8 @@
DISALLOW_COPY_AND_ASSIGN(List);
};
+ bool IsEmptyLocked();
+
// Adds and transfers ownership of the block to the buffer.
void PushBlockImpl(Block* block);
@@ -134,7 +138,7 @@
List full_;
List partial_;
- Mutex mutex_;
+ Monitor monitor_;
// Note: This is shared on the basis of block size.
static const intptr_t kMaxGlobalEmpty = 100;
@@ -191,6 +195,17 @@
local_output_->Push(raw_obj);
}
+ bool WaitForWork(RelaxedAtomic<uintptr_t>* num_busy) {
+ ASSERT(local_input_->IsEmpty());
+ Block* new_work = stack_->WaitForWork(num_busy);
+ if (new_work == NULL) {
+ return false;
+ }
+ stack_->PushBlock(local_input_);
+ local_input_ = new_work;
+ return true;
+ }
+
void Finalize() {
ASSERT(local_output_->IsEmpty());
stack_->PushBlock(local_output_);
diff --git a/runtime/vm/heap/scavenger.cc b/runtime/vm/heap/scavenger.cc
index cf13c43..3faf889 100644
--- a/runtime/vm/heap/scavenger.cc
+++ b/runtime/vm/heap/scavenger.cc
@@ -261,6 +261,10 @@
!promoted_list_.IsEmpty();
}
+ bool WaitForWork(RelaxedAtomic<uintptr_t>* num_busy) {
+ return promoted_list_.WaitForWork(num_busy);
+ }
+
void Finalize() {
if (scavenger_->abort_) {
promoted_list_.AbandonWork();
@@ -562,23 +566,7 @@
do {
do {
visitor_->ProcessSurvivors();
-
- // I can't find more work right now. If no other task is busy,
- // then there will never be more work (NB: 1 is *before* decrement).
- if (num_busy_->fetch_sub(1u) == 1) break;
-
- // Wait for some work to appear.
- // TODO(iposva): Replace busy-waiting with a solution using Monitor,
- // and redraw the boundaries between stack/visitor/task as needed.
- while (!visitor_->HasWork() && num_busy_->load() > 0) {
- }
-
- // If no tasks are busy, there will never be more work.
- if (num_busy_->load() == 0) break;
-
- // I saw some work; get busy and compete for it.
- num_busy_->fetch_add(1u);
- } while (true);
+ } while (visitor_->WaitForWork(num_busy_));
// Wait for all scavengers to stop.
barrier_->Sync();
#if defined(DEBUG)
diff --git a/runtime/vm/profiler.cc b/runtime/vm/profiler.cc
index 51a7f20..568c78a 100644
--- a/runtime/vm/profiler.cc
+++ b/runtime/vm/profiler.cc
@@ -27,7 +27,7 @@
namespace dart {
-static const intptr_t kMaxSamplesPerTick = 16;
+static const intptr_t kMaxSamplesPerTick = 4;
DEFINE_FLAG(bool, trace_profiled_isolates, false, "Trace profiled isolates.");
diff --git a/runtime/vm/profiler.h b/runtime/vm/profiler.h
index 6dad274..2f9ea17 100644
--- a/runtime/vm/profiler.h
+++ b/runtime/vm/profiler.h
@@ -386,7 +386,7 @@
set_metadata(cid);
}
- static constexpr int kPCArraySizeInWords = 8;
+ static constexpr int kPCArraySizeInWords = 32;
uword* GetPCArray() { return &pc_array_[0]; }
static constexpr int kStackBufferSizeInWords = 2;
diff --git a/tests/lib/async/regress46319_test.dart b/tests/lib/async/regress46319_test.dart
new file mode 100644
index 0000000..b590822
--- /dev/null
+++ b/tests/lib/async/regress46319_test.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2021, 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.
+
+// Regression test for https://github.com/dart-lang/sdk/issues/46319.
+
+import 'dart:async';
+
+void main() {}
+
+Future<T> fn<T>() {
+ // DDC was crashing during compilation when trying to tag the following
+ // function expression with a type.
+ return hn(() => gn());
+}
+
+S gn<S>() {
+ throw 'in gn';
+}
+
+Future<R> hn<R>(FutureOr<R> Function() foo) {
+ throw 'in hn';
+}
diff --git a/tools/VERSION b/tools/VERSION
index 88bd277..351246b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 199
+PRERELEASE 200
PRERELEASE_PATCH 0
\ No newline at end of file