Version 2.11.0-247.0.dev
Merge commit 'a669f440a630feb951b6a641d21bf0879bb5dd23' into 'dev'
diff --git a/pkg/analysis_server/lib/src/services/correction/dart/replace_with_var.dart b/pkg/analysis_server/lib/src/services/correction/dart/replace_with_var.dart
index 270bb86..cd226a8 100644
--- a/pkg/analysis_server/lib/src/services/correction/dart/replace_with_var.dart
+++ b/pkg/analysis_server/lib/src/services/correction/dart/replace_with_var.dart
@@ -45,7 +45,11 @@
if (initializer is TypedLiteral) {
if (initializer.typeArguments == null) {
typeArgumentsText = utils.getNodeText(type.typeArguments);
- typeArgumentsOffset = initializer.offset;
+ if (initializer is ListLiteral) {
+ typeArgumentsOffset = initializer.leftBracket.offset;
+ } else if (initializer is SetOrMapLiteral) {
+ typeArgumentsOffset = initializer.leftBracket.offset;
+ }
}
} else if (initializer is InstanceCreationExpression) {
if (initializer.constructorName.type.typeArguments == null) {
diff --git a/pkg/analysis_server/lib/src/services/flutter/property.dart b/pkg/analysis_server/lib/src/services/flutter/property.dart
index 740ff85..ba6509a 100644
--- a/pkg/analysis_server/lib/src/services/flutter/property.dart
+++ b/pkg/analysis_server/lib/src/services/flutter/property.dart
@@ -24,7 +24,7 @@
String getParameterDocumentation(ParameterElement parameter) {
if (parameter is FieldFormalParameterElement) {
- var rawComment = parameter.field.documentationComment;
+ var rawComment = parameter.field?.documentationComment;
return getDartDocPlainText(rawComment);
}
return null;
diff --git a/pkg/analysis_server/test/src/services/correction/fix/replace_with_var_test.dart b/pkg/analysis_server/test/src/services/correction/fix/replace_with_var_test.dart
index 4d4ad88..3e8258f 100644
--- a/pkg/analysis_server/test/src/services/correction/fix/replace_with_var_test.dart
+++ b/pkg/analysis_server/test/src/services/correction/fix/replace_with_var_test.dart
@@ -123,6 +123,21 @@
''');
}
+ Future<void> test_generic_listLiteral_const() async {
+ await resolveTestUnit('''
+String f() {
+ const List<String> values = const ['a'];
+ return values[0];
+}
+''');
+ await assertHasFix('''
+String f() {
+ const values = const <String>['a'];
+ return values[0];
+}
+''');
+ }
+
Future<void> test_generic_mapLiteral() async {
await resolveTestUnit('''
Map f() {
@@ -138,6 +153,21 @@
''');
}
+ Future<void> test_generic_mapLiteral_const() async {
+ await resolveTestUnit('''
+Map f() {
+ const Map<String, int> m = const {};
+ return m;
+}
+''');
+ await assertHasFix('''
+Map f() {
+ const m = const <String, int>{};
+ return m;
+}
+''');
+ }
+
Future<void> test_generic_setLiteral() async {
await resolveTestUnit('''
Set f() {
@@ -163,6 +193,21 @@
await assertNoFix();
}
+ Future<void> test_generic_setLiteral_const() async {
+ await resolveTestUnit('''
+String f() {
+ const Set<String> s = const {'a'};
+ return s.first;
+}
+''');
+ await assertHasFix('''
+String f() {
+ const s = const <String>{'a'};
+ return s.first;
+}
+''');
+ }
+
Future<void> test_simple() async {
await resolveTestUnit('''
String f() {
diff --git a/pkg/analysis_server/test/src/services/flutter/widget_descriptions_test.dart b/pkg/analysis_server/test/src/services/flutter/widget_descriptions_test.dart
index 4fcb4b3..dc0567d 100644
--- a/pkg/analysis_server/test/src/services/flutter/widget_descriptions_test.dart
+++ b/pkg/analysis_server/test/src/services/flutter/widget_descriptions_test.dart
@@ -17,6 +17,37 @@
@reflectiveTest
class GetDescriptionTest extends WidgetDescriptionBase {
+ Future<void> test_documentation_fieldFormalParameter() async {
+ await resolveTestUnit('''
+class MyWidget {
+ /// my doc
+ final int f;
+ MyWidget(this.f);
+}
+
+void f() {
+ MyWidget(0);
+}
+''');
+ var property = await getWidgetProperty('MyWidget(0', 'f');
+ expect(property.documentation, 'my doc');
+ }
+
+ Future<void> test_documentation_fieldFormalParameter_unresolvedField() async {
+ verifyNoTestUnitErrors = false;
+ await resolveTestUnit('''
+class MyWidget {
+ MyWidget(this.f);
+}
+
+void f() {
+ MyWidget(0);
+}
+''');
+ var property = await getWidgetProperty('MyWidget(0', 'f');
+ expect(property.documentation, isNull);
+ }
+
Future<void> test_kind_named_notSet() async {
await resolveTestUnit('''
import 'package:flutter/material.dart';
diff --git a/pkg/analyzer/lib/src/dart/analysis/driver.dart b/pkg/analyzer/lib/src/dart/analysis/driver.dart
index 36a2ff1..462daf1 100644
--- a/pkg/analyzer/lib/src/dart/analysis/driver.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/driver.dart
@@ -85,7 +85,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 = 114;
+ static const int DATA_VERSION = 112;
/// The length of the list returned by [_computeDeclaredVariablesSignature].
static const int _declaredVariablesSignatureLength = 4;
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index df5d425..990cac0 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -42,7 +42,6 @@
import 'package:analyzer/src/generated/utilities_dart.dart';
import 'package:analyzer/src/generated/utilities_general.dart';
import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary2/lazy_ast.dart';
import 'package:analyzer/src/summary2/linked_unit_context.dart';
import 'package:analyzer/src/summary2/reference.dart';
import 'package:analyzer/src/util/comment.dart';
@@ -501,7 +500,6 @@
if (linkedNode != null) {
if (linkedNode is ClassOrMixinDeclaration) {
- LazyAst.applyResolution(linkedNode);
_createPropertiesAndAccessors();
assert(_accessors != null);
return _accessors;
@@ -546,7 +544,6 @@
}
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var containerRef = reference.getChild('@constructor');
_constructors = context.getConstructors(linkedNode).map((node) {
@@ -608,7 +605,6 @@
if (linkedNode != null) {
if (linkedNode is ClassOrMixinDeclaration) {
- LazyAst.applyResolution(linkedNode);
_createPropertiesAndAccessors();
assert(_fields != null);
return _fields;
@@ -709,7 +705,6 @@
}
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var implementsClause = context.getImplementsClause(linkedNode);
if (implementsClause != null) {
@@ -785,7 +780,6 @@
}
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var containerRef = reference.getChild('@method');
return _methods = context
@@ -822,7 +816,6 @@
}
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var withClause = context.getWithClause(linkedNode);
if (withClause != null) {
@@ -872,18 +865,7 @@
}
if (linkedNode != null) {
- var node = linkedNode;
- LazyAst.applyResolution(node);
-
- DartType type;
- if (node is ClassDeclaration) {
- type = node.extendsClause?.superclass?.type;
- } else if (node is ClassTypeAlias) {
- type = linkedContext.getSuperclass(linkedNode)?.type;
- } else {
- throw UnimplementedError('${node.runtimeType}');
- }
-
+ var type = linkedContext.getSuperclass(linkedNode)?.type;
if (_isInterfaceTypeClass(type)) {
return _supertype = type;
}
@@ -1982,9 +1964,9 @@
if (_constantInitializers != null) return _constantInitializers;
if (linkedNode != null) {
- var node = linkedNode as ConstructorDeclaration;
- LazyAst.applyResolution(node);
- return _constantInitializers = node.initializers;
+ return _constantInitializers = linkedContext.getConstructorInitializers(
+ linkedNode,
+ );
}
return _constantInitializers;
@@ -2098,13 +2080,13 @@
if (_redirectedConstructor != null) return _redirectedConstructor;
if (linkedNode != null) {
- var node = linkedNode as ConstructorDeclaration;
- LazyAst.applyResolution(node);
+ var context = enclosingUnit.linkedContext;
if (isFactory) {
- return _redirectedConstructor =
- node.redirectedConstructor?.staticElement;
+ var node = context.getConstructorRedirected(linkedNode);
+ return _redirectedConstructor = node?.staticElement;
} else {
- for (var initializer in node.initializers) {
+ var initializers = context.getConstructorInitializers(linkedNode);
+ for (var initializer in initializers) {
if (initializer is RedirectingConstructorInvocation) {
return _redirectedConstructor = initializer.staticElement;
}
@@ -2232,7 +2214,6 @@
if (_constantInitializer != null) return _constantInitializer;
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
return _constantInitializer = context.readInitializer(linkedNode);
}
@@ -3001,10 +2982,8 @@
@override
List<ElementAnnotation> get metadata {
- if (_metadata != null) return _metadata;
-
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
+ if (_metadata != null) return _metadata;
var metadata = linkedContext.getMetadata(linkedNode);
return _metadata = _buildAnnotations2(enclosingUnit, metadata);
}
@@ -3510,9 +3489,6 @@
ConstructorElement getNamedConstructor(String name) => null;
void _resynthesizeMembers2() {
- var node = linkedNode as EnumDeclaration;
- LazyAst.applyResolution(node);
-
var fields = <FieldElementImpl>[];
var getters = <PropertyAccessorElementImpl>[];
@@ -3540,7 +3516,7 @@
// Build fields for all enum constants.
var containerRef = reference.getChild('@constant');
- var constants = node.constants;
+ var constants = linkedContext.getEnumConstants(linkedNode);
for (var i = 0; i < constants.length; ++i) {
var constant = constants[i];
var name = constant.name.name;
@@ -3725,11 +3701,10 @@
if (_parameters != null) return _parameters;
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var containerRef = reference.getChild('@parameter');
var formalParameters = context.getFormalParameters(linkedNode);
- return _parameters = ParameterElementImpl.forLinkedNodeList(
+ _parameters = ParameterElementImpl.forLinkedNodeList(
this,
context,
containerRef,
@@ -3764,7 +3739,6 @@
if (_returnType != null) return _returnType;
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
return _returnType = context.getReturnType(linkedNode);
}
@@ -3953,7 +3927,6 @@
if (linkedNode != null) {
if (linkedNode is ExtensionDeclaration) {
- LazyAst.applyResolution(linkedNode);
_createPropertiesAndAccessors();
assert(_accessors != null);
return _accessors;
@@ -4013,9 +3986,7 @@
if (_extendedType != null) return _extendedType;
if (linkedNode != null) {
- var node = linkedNode as ExtensionDeclaration;
- LazyAst.applyResolution(linkedNode);
- return _extendedType = node.extendedType.type;
+ return _extendedType = linkedContext.getExtendedType(linkedNode).type;
}
return _extendedType;
@@ -4029,7 +4000,6 @@
if (linkedNode != null) {
if (linkedNode is ExtensionDeclaration) {
- LazyAst.applyResolution(linkedNode);
_createPropertiesAndAccessors();
assert(_fields != null);
return _fields;
@@ -4069,7 +4039,6 @@
}
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
var context = enclosingUnit.linkedContext;
var containerRef = reference.getChild('@method');
return _methods = context
@@ -4535,17 +4504,15 @@
GenericFunctionTypeElementImpl get function {
if (_function != null) return _function;
- var node = linkedNode;
- if (node != null) {
- LazyAst.applyResolution(node);
- if (node is GenericTypeAlias) {
- var function = node.functionType;
+ if (linkedNode != null) {
+ if (linkedNode is GenericTypeAlias) {
+ var context = enclosingUnit.linkedContext;
+ var function = context.getGeneticTypeAliasFunction(linkedNode);
if (function != null) {
- return _function = GenericFunctionTypeElementImpl.forLinkedNode(
- this,
- reference.getChild('@function'),
- function,
- );
+ var reference = context.getGenericFunctionTypeReference(function);
+ _function = reference.element;
+ encloseElement(_function);
+ return _function;
} else {
return _function = GenericFunctionTypeElementImpl.forOffset(-1)
..typeParameters = const <TypeParameterElement>[]
@@ -4740,20 +4707,17 @@
@override
List<ParameterElement> get parameters {
- if (_parameters != null) return _parameters;
-
- if (linkedNode != null) {
- var context = enclosingUnit.linkedContext;
- var containerRef = reference.getChild('@parameter');
- var formalParameters = context.getFormalParameters(linkedNode);
- return _parameters = ParameterElementImpl.forLinkedNodeList(
- this,
- context,
- containerRef,
- formalParameters,
- );
+ if (_parameters == null) {
+ if (linkedNode != null) {
+ var context = enclosingUnit.linkedContext;
+ return _parameters = ParameterElementImpl.forLinkedNodeList(
+ this,
+ context,
+ reference.getChild('@parameter'),
+ context.getFormalParameters(linkedNode),
+ );
+ }
}
-
return _parameters ?? const <ParameterElement>[];
}
@@ -5873,10 +5837,8 @@
if (_superclassConstraints != null) return _superclassConstraints;
if (linkedNode != null) {
- var node = linkedNode as MixinDeclaration;
- LazyAst.applyResolution(node);
List<InterfaceType> constraints;
- var onClause = node.onClause;
+ var onClause = enclosingUnit.linkedContext.getOnClause(linkedNode);
if (onClause != null) {
constraints = onClause.superclassConstraints
.map((node) => node.type)
@@ -6570,14 +6532,18 @@
if (linkedNode != null) {
var context = enclosingUnit.linkedContext;
- var containerRef = reference.getChild('@parameter');
var formalParameters = context.getFormalParameters(linkedNode);
- return _parameters = ParameterElementImpl.forLinkedNodeList(
- this,
- context,
- containerRef,
- formalParameters,
- );
+ if (formalParameters != null) {
+ var containerRef = reference.getChild('@parameter');
+ return _parameters = ParameterElementImpl.forLinkedNodeList(
+ this,
+ context,
+ containerRef,
+ formalParameters,
+ );
+ } else {
+ return _parameters ??= const <ParameterElement>[];
+ }
}
return _parameters ??= const <ParameterElement>[];
@@ -6597,9 +6563,8 @@
@override
DartType get typeInternal {
- if (_type != null) return _type;
-
if (linkedNode != null) {
+ if (_type != null) return _type;
var context = enclosingUnit.linkedContext;
return _type = context.getType(linkedNode);
}
@@ -6611,7 +6576,7 @@
if (_typeParameters != null) return _typeParameters;
if (linkedNode != null) {
- var typeParameters = linkedContext.getTypeParameters(linkedNode);
+ var typeParameters = linkedContext.getTypeParameters2(linkedNode);
if (typeParameters == null) {
return _typeParameters = const [];
}
@@ -7192,7 +7157,6 @@
DartType get typeInternal {
if (linkedNode != null) {
if (_type != null) return _type;
- LazyAst.applyResolution(linkedNode);
_type = linkedContext.getType(linkedNode);
// While performing inference during linking, the first step is to collect
@@ -7426,8 +7390,8 @@
if (_bound != null) return _bound;
if (linkedNode != null) {
- var node = linkedNode as TypeParameter;
- return _bound = node.bound?.type;
+ var context = enclosingUnit.linkedContext;
+ return _bound = context.getTypeParameterBound(linkedNode)?.type;
}
return _bound;
@@ -7561,19 +7525,13 @@
if (_typeParameterElements != null) return _typeParameterElements;
if (linkedNode != null) {
- LazyAst.applyResolution(linkedNode);
- var typeParameters = linkedContext.getTypeParameters(linkedNode);
+ var typeParameters = linkedContext.getTypeParameters2(linkedNode);
if (typeParameters == null) {
return _typeParameterElements = const [];
}
var containerRef = reference.getChild('@typeParameter');
return _typeParameterElements =
typeParameters.typeParameters.map<TypeParameterElement>((node) {
- var element = node.declaredElement;
- if (element != null) {
- return element;
- }
-
var reference = containerRef.getChild(node.name.name);
if (reference.hasElementFor(node)) {
return reference.element as TypeParameterElement;
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 6952f8f..db5240f 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -242,6 +242,7 @@
for (var entry in member._substitution.map.entries) {
map[entry.key] = substitution.substituteType(entry.value);
}
+ map.addAll(substitution.map);
combined = Substitution.fromMap(map);
} else {
typeProvider = element.library.typeProvider;
diff --git a/pkg/analyzer/lib/src/dart/element/type_system.dart b/pkg/analyzer/lib/src/dart/element/type_system.dart
index dae7afe..c38172a 100644
--- a/pkg/analyzer/lib/src/dart/element/type_system.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_system.dart
@@ -1230,19 +1230,6 @@
typeParameters,
considerExtendsClause: false,
);
-
- // It is an error to use a generic function type as a bound.
- // What is worse, inference does not do anything to their type formals.
- // So, we might be left with bounds of their type formals not replaced.
- // Then we cannot store this linked information, because it references
- // types that are not in scope.
- for (var i = 0; i < inferredTypes.length; i++) {
- var inferredType = inferredTypes[i];
- if (inferredType is FunctionType && inferredType.typeFormals.isNotEmpty) {
- inferredTypes[i] = DynamicTypeImpl.instance;
- }
- }
-
var substitution = Substitution.fromPairs(typeParameters, inferredTypes);
for (int i = 0; i < srcTypes.length; i++) {
diff --git a/pkg/analyzer/lib/src/generated/error_verifier.dart b/pkg/analyzer/lib/src/generated/error_verifier.dart
index 8e39f8f..ba0c30b 100644
--- a/pkg/analyzer/lib/src/generated/error_verifier.dart
+++ b/pkg/analyzer/lib/src/generated/error_verifier.dart
@@ -721,8 +721,6 @@
identifier, functionExpression.parameters);
}
_checkForNonVoidReturnTypeForSetter(returnType);
- _checkForInvalidModifierOnBody(node.functionExpression.body,
- CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER);
}
_checkForTypeAnnotationDeferredClass(returnType);
_returnTypeVerifier.verifyReturnType(returnType);
@@ -916,8 +914,6 @@
).checkGetter(node.name, node.declaredElement);
}
if (node.isSetter) {
- _checkForInvalidModifierOnBody(
- node.body, CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER);
_checkForWrongNumberOfParametersForSetter(node.name, node.parameters);
_checkForNonVoidReturnTypeForSetter(returnType);
} else if (node.isOperator) {
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart
index 74266ee..cddf91d 100644
--- a/pkg/analyzer/lib/src/summary/format.dart
+++ b/pkg/analyzer/lib/src/summary/format.dart
@@ -4449,7 +4449,10 @@
List<LinkedNodeBuilder> _variantField_4;
LinkedNodeBuilder _variantField_6;
LinkedNodeBuilder _variantField_7;
+ int _variantField_17;
LinkedNodeBuilder _variantField_8;
+ LinkedNodeTypeSubstitutionBuilder _variantField_38;
+ int _variantField_15;
idl.UnlinkedTokenType _variantField_28;
bool _variantField_27;
LinkedNodeBuilder _variantField_9;
@@ -4459,17 +4462,15 @@
List<String> _variantField_33;
idl.LinkedNodeCommentType _variantField_29;
List<LinkedNodeBuilder> _variantField_3;
- List<int> _variantField_19;
- LinkedLibraryLanguageVersionBuilder _variantField_39;
+ List<int> _variantField_41;
+ LinkedLibraryLanguageVersionBuilder _variantField_40;
LinkedNodeBuilder _variantField_10;
idl.LinkedNodeFormalParameterKind _variantField_26;
double _variantField_21;
- int _variantField_15;
LinkedNodeTypeBuilder _variantField_25;
String _variantField_20;
- List<LinkedNodeTypeBuilder> _variantField_38;
+ List<LinkedNodeTypeBuilder> _variantField_39;
int _flags;
- int _variantField_17;
String _variantField_1;
int _variantField_36;
int _variantField_16;
@@ -4478,13 +4479,13 @@
idl.LinkedNodeKind _kind;
bool _variantField_31;
List<String> _variantField_34;
- String _variantField_37;
- LinkedNodeResolutionBuilder _resolution;
+ String _name;
idl.UnlinkedTokenType _variantField_35;
TopLevelInferenceErrorBuilder _variantField_32;
LinkedNodeTypeBuilder _variantField_23;
LinkedNodeBuilder _variantField_11;
String _variantField_22;
+ int _variantField_19;
@override
LinkedNodeTypeBuilder get actualReturnType {
@@ -4498,8 +4499,7 @@
@override
LinkedNodeTypeBuilder get actualType {
- assert(kind == idl.LinkedNodeKind.defaultFormalParameter ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
+ assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
kind == idl.LinkedNodeKind.simpleFormalParameter ||
kind == idl.LinkedNodeKind.variableDeclaration);
@@ -4536,8 +4536,7 @@
}
set actualType(LinkedNodeTypeBuilder value) {
- assert(kind == idl.LinkedNodeKind.defaultFormalParameter ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
+ assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
kind == idl.LinkedNodeKind.simpleFormalParameter ||
kind == idl.LinkedNodeKind.variableDeclaration);
@@ -6306,6 +6305,30 @@
}
@override
+ int get annotation_element {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ return _variantField_17 ??= 0;
+ }
+
+ @override
+ int get genericFunctionType_id {
+ assert(kind == idl.LinkedNodeKind.genericFunctionType);
+ return _variantField_17 ??= 0;
+ }
+
+ set annotation_element(int value) {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ assert(value == null || value >= 0);
+ _variantField_17 = value;
+ }
+
+ set genericFunctionType_id(int value) {
+ assert(kind == idl.LinkedNodeKind.genericFunctionType);
+ assert(value == null || value >= 0);
+ _variantField_17 = value;
+ }
+
+ @override
LinkedNodeBuilder get annotation_name {
assert(kind == idl.LinkedNodeKind.annotation);
return _variantField_8;
@@ -6493,6 +6516,277 @@
}
@override
+ LinkedNodeTypeSubstitutionBuilder get annotation_substitution {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get assignmentExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get binaryExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get constructorName_substitution {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get indexExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get postfixExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get prefixExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder
+ get redirectingConstructorInvocation_substitution {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder get simpleIdentifier_substitution {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ return _variantField_38;
+ }
+
+ @override
+ LinkedNodeTypeSubstitutionBuilder
+ get superConstructorInvocation_substitution {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ return _variantField_38;
+ }
+
+ set annotation_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ _variantField_38 = value;
+ }
+
+ set assignmentExpression_substitution(
+ LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ _variantField_38 = value;
+ }
+
+ set binaryExpression_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ _variantField_38 = value;
+ }
+
+ set constructorName_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ _variantField_38 = value;
+ }
+
+ set indexExpression_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ _variantField_38 = value;
+ }
+
+ set postfixExpression_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ _variantField_38 = value;
+ }
+
+ set prefixExpression_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ _variantField_38 = value;
+ }
+
+ set redirectingConstructorInvocation_substitution(
+ LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ _variantField_38 = value;
+ }
+
+ set simpleIdentifier_substitution(LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ _variantField_38 = value;
+ }
+
+ set superConstructorInvocation_substitution(
+ LinkedNodeTypeSubstitutionBuilder value) {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ _variantField_38 = value;
+ }
+
+ @override
+ int get assignmentExpression_element {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get binaryExpression_element {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get constructorName_element {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get emptyFunctionBody_fake {
+ assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get emptyStatement_fake {
+ assert(kind == idl.LinkedNodeKind.emptyStatement);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get indexExpression_element {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get nullLiteral_fake {
+ assert(kind == idl.LinkedNodeKind.nullLiteral);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get postfixExpression_element {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get prefixExpression_element {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get redirectingConstructorInvocation_element {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get simpleIdentifier_element {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get superConstructorInvocation_element {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ return _variantField_15 ??= 0;
+ }
+
+ @override
+ int get typeParameter_variance {
+ assert(kind == idl.LinkedNodeKind.typeParameter);
+ return _variantField_15 ??= 0;
+ }
+
+ set assignmentExpression_element(int value) {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set binaryExpression_element(int value) {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set constructorName_element(int value) {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set emptyFunctionBody_fake(int value) {
+ assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set emptyStatement_fake(int value) {
+ assert(kind == idl.LinkedNodeKind.emptyStatement);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set indexExpression_element(int value) {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set nullLiteral_fake(int value) {
+ assert(kind == idl.LinkedNodeKind.nullLiteral);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set postfixExpression_element(int value) {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set prefixExpression_element(int value) {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set redirectingConstructorInvocation_element(int value) {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set simpleIdentifier_element(int value) {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set superConstructorInvocation_element(int value) {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ set typeParameter_variance(int value) {
+ assert(kind == idl.LinkedNodeKind.typeParameter);
+ assert(value == null || value >= 0);
+ _variantField_15 = value;
+ }
+
+ @override
idl.UnlinkedTokenType get assignmentExpression_operator {
assert(kind == idl.LinkedNodeKind.assignmentExpression);
return _variantField_28 ??= idl.UnlinkedTokenType.NOTHING;
@@ -6814,26 +7108,26 @@
@override
List<int> get compilationUnit_featureSet {
assert(kind == idl.LinkedNodeKind.compilationUnit);
- return _variantField_19 ??= <int>[];
+ return _variantField_41 ??= <int>[];
}
set compilationUnit_featureSet(List<int> value) {
assert(kind == idl.LinkedNodeKind.compilationUnit);
assert(value == null || value.every((e) => e >= 0));
- _variantField_19 = value;
+ _variantField_41 = value;
}
@override
LinkedLibraryLanguageVersionBuilder get compilationUnit_languageVersion {
assert(kind == idl.LinkedNodeKind.compilationUnit);
- return _variantField_39;
+ return _variantField_40;
}
/// The language version information.
set compilationUnit_languageVersion(
LinkedLibraryLanguageVersionBuilder value) {
assert(kind == idl.LinkedNodeKind.compilationUnit);
- _variantField_39 = value;
+ _variantField_40 = value;
}
@override
@@ -6871,60 +7165,11 @@
}
@override
- int get emptyFunctionBody_fake {
- assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
- return _variantField_15 ??= 0;
- }
-
- @override
- int get emptyStatement_fake {
- assert(kind == idl.LinkedNodeKind.emptyStatement);
- return _variantField_15 ??= 0;
- }
-
- @override
- int get nullLiteral_fake {
- assert(kind == idl.LinkedNodeKind.nullLiteral);
- return _variantField_15 ??= 0;
- }
-
- @override
- int get typeParameter_variance {
- assert(kind == idl.LinkedNodeKind.typeParameter);
- return _variantField_15 ??= 0;
- }
-
- set emptyFunctionBody_fake(int value) {
- assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
- assert(value == null || value >= 0);
- _variantField_15 = value;
- }
-
- set emptyStatement_fake(int value) {
- assert(kind == idl.LinkedNodeKind.emptyStatement);
- assert(value == null || value >= 0);
- _variantField_15 = value;
- }
-
- set nullLiteral_fake(int value) {
- assert(kind == idl.LinkedNodeKind.nullLiteral);
- assert(value == null || value >= 0);
- _variantField_15 = value;
- }
-
- set typeParameter_variance(int value) {
- assert(kind == idl.LinkedNodeKind.typeParameter);
- assert(value == null || value >= 0);
- _variantField_15 = value;
- }
-
- @override
LinkedNodeTypeBuilder get expression_type {
assert(kind == idl.LinkedNodeKind.assignmentExpression ||
kind == idl.LinkedNodeKind.asExpression ||
kind == idl.LinkedNodeKind.awaitExpression ||
kind == idl.LinkedNodeKind.binaryExpression ||
- kind == idl.LinkedNodeKind.booleanLiteral ||
kind == idl.LinkedNodeKind.cascadeExpression ||
kind == idl.LinkedNodeKind.conditionalExpression ||
kind == idl.LinkedNodeKind.functionExpressionInvocation ||
@@ -6941,6 +7186,7 @@
kind == idl.LinkedNodeKind.postfixExpression ||
kind == idl.LinkedNodeKind.rethrowExpression ||
kind == idl.LinkedNodeKind.setOrMapLiteral ||
+ kind == idl.LinkedNodeKind.simpleIdentifier ||
kind == idl.LinkedNodeKind.superExpression ||
kind == idl.LinkedNodeKind.symbolLiteral ||
kind == idl.LinkedNodeKind.thisExpression ||
@@ -6959,7 +7205,6 @@
kind == idl.LinkedNodeKind.asExpression ||
kind == idl.LinkedNodeKind.awaitExpression ||
kind == idl.LinkedNodeKind.binaryExpression ||
- kind == idl.LinkedNodeKind.booleanLiteral ||
kind == idl.LinkedNodeKind.cascadeExpression ||
kind == idl.LinkedNodeKind.conditionalExpression ||
kind == idl.LinkedNodeKind.functionExpressionInvocation ||
@@ -6976,6 +7221,7 @@
kind == idl.LinkedNodeKind.postfixExpression ||
kind == idl.LinkedNodeKind.rethrowExpression ||
kind == idl.LinkedNodeKind.setOrMapLiteral ||
+ kind == idl.LinkedNodeKind.simpleIdentifier ||
kind == idl.LinkedNodeKind.superExpression ||
kind == idl.LinkedNodeKind.symbolLiteral ||
kind == idl.LinkedNodeKind.thisExpression ||
@@ -7026,12 +7272,12 @@
@override
List<LinkedNodeTypeBuilder> get extensionOverride_typeArgumentTypes {
assert(kind == idl.LinkedNodeKind.extensionOverride);
- return _variantField_38 ??= <LinkedNodeTypeBuilder>[];
+ return _variantField_39 ??= <LinkedNodeTypeBuilder>[];
}
set extensionOverride_typeArgumentTypes(List<LinkedNodeTypeBuilder> value) {
assert(kind == idl.LinkedNodeKind.extensionOverride);
- _variantField_38 = value;
+ _variantField_39 = value;
}
@override
@@ -7043,18 +7289,6 @@
}
@override
- int get genericFunctionType_id {
- assert(kind == idl.LinkedNodeKind.genericFunctionType);
- return _variantField_17 ??= 0;
- }
-
- set genericFunctionType_id(int value) {
- assert(kind == idl.LinkedNodeKind.genericFunctionType);
- assert(value == null || value >= 0);
- _variantField_17 = value;
- }
-
- @override
String get importDirective_prefix {
assert(kind == idl.LinkedNodeKind.importDirective);
return _variantField_1 ??= '';
@@ -7249,53 +7483,10 @@
}
@override
- String get name {
- assert(kind == idl.LinkedNodeKind.classDeclaration ||
- kind == idl.LinkedNodeKind.classTypeAlias ||
- kind == idl.LinkedNodeKind.constructorDeclaration ||
- kind == idl.LinkedNodeKind.enumDeclaration ||
- kind == idl.LinkedNodeKind.enumConstantDeclaration ||
- kind == idl.LinkedNodeKind.extensionDeclaration ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
- kind == idl.LinkedNodeKind.functionDeclaration ||
- kind == idl.LinkedNodeKind.functionTypeAlias ||
- kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
- kind == idl.LinkedNodeKind.genericTypeAlias ||
- kind == idl.LinkedNodeKind.methodDeclaration ||
- kind == idl.LinkedNodeKind.mixinDeclaration ||
- kind == idl.LinkedNodeKind.simpleFormalParameter ||
- kind == idl.LinkedNodeKind.simpleIdentifier ||
- kind == idl.LinkedNodeKind.typeParameter ||
- kind == idl.LinkedNodeKind.variableDeclaration);
- return _variantField_37 ??= '';
- }
+ String get name => _name ??= '';
set name(String value) {
- assert(kind == idl.LinkedNodeKind.classDeclaration ||
- kind == idl.LinkedNodeKind.classTypeAlias ||
- kind == idl.LinkedNodeKind.constructorDeclaration ||
- kind == idl.LinkedNodeKind.enumDeclaration ||
- kind == idl.LinkedNodeKind.enumConstantDeclaration ||
- kind == idl.LinkedNodeKind.extensionDeclaration ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
- kind == idl.LinkedNodeKind.functionDeclaration ||
- kind == idl.LinkedNodeKind.functionTypeAlias ||
- kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
- kind == idl.LinkedNodeKind.genericTypeAlias ||
- kind == idl.LinkedNodeKind.methodDeclaration ||
- kind == idl.LinkedNodeKind.mixinDeclaration ||
- kind == idl.LinkedNodeKind.simpleFormalParameter ||
- kind == idl.LinkedNodeKind.simpleIdentifier ||
- kind == idl.LinkedNodeKind.typeParameter ||
- kind == idl.LinkedNodeKind.variableDeclaration);
- _variantField_37 = value;
- }
-
- @override
- LinkedNodeResolutionBuilder get resolution => _resolution;
-
- set resolution(LinkedNodeResolutionBuilder value) {
- this._resolution = value;
+ this._name = value;
}
@override
@@ -7372,6 +7563,22 @@
_variantField_22 = value;
}
+ @override
+ int get uriBasedDirective_uriElement {
+ assert(kind == idl.LinkedNodeKind.exportDirective ||
+ kind == idl.LinkedNodeKind.importDirective ||
+ kind == idl.LinkedNodeKind.partDirective);
+ return _variantField_19 ??= 0;
+ }
+
+ set uriBasedDirective_uriElement(int value) {
+ assert(kind == idl.LinkedNodeKind.exportDirective ||
+ kind == idl.LinkedNodeKind.importDirective ||
+ kind == idl.LinkedNodeKind.partDirective);
+ assert(value == null || value >= 0);
+ _variantField_19 = value;
+ }
+
LinkedNodeBuilder.adjacentStrings({
List<LinkedNodeBuilder> adjacentStrings_strings,
}) : _kind = idl.LinkedNodeKind.adjacentStrings,
@@ -7380,11 +7587,15 @@
LinkedNodeBuilder.annotation({
LinkedNodeBuilder annotation_arguments,
LinkedNodeBuilder annotation_constructorName,
+ int annotation_element,
LinkedNodeBuilder annotation_name,
+ LinkedNodeTypeSubstitutionBuilder annotation_substitution,
}) : _kind = idl.LinkedNodeKind.annotation,
_variantField_6 = annotation_arguments,
_variantField_7 = annotation_constructorName,
- _variantField_8 = annotation_name;
+ _variantField_17 = annotation_element,
+ _variantField_8 = annotation_name,
+ _variantField_38 = annotation_substitution;
LinkedNodeBuilder.argumentList({
List<LinkedNodeBuilder> argumentList_arguments,
@@ -7417,11 +7628,15 @@
LinkedNodeBuilder.assignmentExpression({
LinkedNodeBuilder assignmentExpression_leftHandSide,
LinkedNodeBuilder assignmentExpression_rightHandSide,
+ LinkedNodeTypeSubstitutionBuilder assignmentExpression_substitution,
+ int assignmentExpression_element,
idl.UnlinkedTokenType assignmentExpression_operator,
LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.assignmentExpression,
_variantField_6 = assignmentExpression_leftHandSide,
_variantField_7 = assignmentExpression_rightHandSide,
+ _variantField_38 = assignmentExpression_substitution,
+ _variantField_15 = assignmentExpression_element,
_variantField_28 = assignmentExpression_operator,
_variantField_25 = expression_type;
@@ -7436,12 +7651,16 @@
LinkedNodeTypeBuilder binaryExpression_invokeType,
LinkedNodeBuilder binaryExpression_leftOperand,
LinkedNodeBuilder binaryExpression_rightOperand,
+ LinkedNodeTypeSubstitutionBuilder binaryExpression_substitution,
+ int binaryExpression_element,
idl.UnlinkedTokenType binaryExpression_operator,
LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.binaryExpression,
_variantField_24 = binaryExpression_invokeType,
_variantField_6 = binaryExpression_leftOperand,
_variantField_7 = binaryExpression_rightOperand,
+ _variantField_38 = binaryExpression_substitution,
+ _variantField_15 = binaryExpression_element,
_variantField_28 = binaryExpression_operator,
_variantField_25 = expression_type;
@@ -7457,10 +7676,8 @@
LinkedNodeBuilder.booleanLiteral({
bool booleanLiteral_value,
- LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.booleanLiteral,
- _variantField_27 = booleanLiteral_value,
- _variantField_25 = expression_type;
+ _variantField_27 = booleanLiteral_value;
LinkedNodeBuilder.breakStatement({
LinkedNodeBuilder breakStatement_label,
@@ -7498,7 +7715,6 @@
LinkedNodeBuilder classOrMixinDeclaration_typeParameters,
int informativeId,
bool simplyBoundable_isSimplyBounded,
- String name,
LinkedNodeBuilder unused11,
}) : _kind = idl.LinkedNodeKind.classDeclaration,
_variantField_4 = annotatedNode_metadata,
@@ -7511,7 +7727,6 @@
_variantField_13 = classOrMixinDeclaration_typeParameters,
_variantField_36 = informativeId,
_variantField_31 = simplyBoundable_isSimplyBounded,
- _variantField_37 = name,
_variantField_11 = unused11;
LinkedNodeBuilder.classTypeAlias({
@@ -7522,7 +7737,6 @@
LinkedNodeBuilder classTypeAlias_implementsClause,
int informativeId,
bool simplyBoundable_isSimplyBounded,
- String name,
}) : _kind = idl.LinkedNodeKind.classTypeAlias,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = classTypeAlias_typeParameters,
@@ -7530,8 +7744,7 @@
_variantField_8 = classTypeAlias_withClause,
_variantField_9 = classTypeAlias_implementsClause,
_variantField_36 = informativeId,
- _variantField_31 = simplyBoundable_isSimplyBounded,
- _variantField_37 = name;
+ _variantField_31 = simplyBoundable_isSimplyBounded;
LinkedNodeBuilder.comment({
List<LinkedNodeBuilder> comment_references,
@@ -7558,8 +7771,8 @@
_variantField_2 = compilationUnit_declarations,
_variantField_6 = compilationUnit_scriptTag,
_variantField_3 = compilationUnit_directives,
- _variantField_19 = compilationUnit_featureSet,
- _variantField_39 = compilationUnit_languageVersion,
+ _variantField_41 = compilationUnit_featureSet,
+ _variantField_40 = compilationUnit_languageVersion,
_variantField_36 = informativeId;
LinkedNodeBuilder.conditionalExpression({
@@ -7590,7 +7803,6 @@
LinkedNodeBuilder constructorDeclaration_redirectedConstructor,
LinkedNodeBuilder constructorDeclaration_returnType,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.constructorDeclaration,
_variantField_2 = constructorDeclaration_initializers,
_variantField_4 = annotatedNode_metadata,
@@ -7598,8 +7810,7 @@
_variantField_8 = constructorDeclaration_parameters,
_variantField_9 = constructorDeclaration_redirectedConstructor,
_variantField_10 = constructorDeclaration_returnType,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.constructorFieldInitializer({
LinkedNodeBuilder constructorFieldInitializer_expression,
@@ -7611,9 +7822,13 @@
LinkedNodeBuilder.constructorName({
LinkedNodeBuilder constructorName_name,
LinkedNodeBuilder constructorName_type,
+ LinkedNodeTypeSubstitutionBuilder constructorName_substitution,
+ int constructorName_element,
}) : _kind = idl.LinkedNodeKind.constructorName,
_variantField_6 = constructorName_name,
- _variantField_7 = constructorName_type;
+ _variantField_7 = constructorName_type,
+ _variantField_38 = constructorName_substitution,
+ _variantField_15 = constructorName_element;
LinkedNodeBuilder.continueStatement({
LinkedNodeBuilder continueStatement_label,
@@ -7630,13 +7845,11 @@
_variantField_7 = declaredIdentifier_type;
LinkedNodeBuilder.defaultFormalParameter({
- LinkedNodeTypeBuilder actualType,
LinkedNodeBuilder defaultFormalParameter_defaultValue,
LinkedNodeBuilder defaultFormalParameter_parameter,
idl.LinkedNodeFormalParameterKind defaultFormalParameter_kind,
int informativeId,
}) : _kind = idl.LinkedNodeKind.defaultFormalParameter,
- _variantField_24 = actualType,
_variantField_6 = defaultFormalParameter_defaultValue,
_variantField_7 = defaultFormalParameter_parameter,
_variantField_26 = defaultFormalParameter_kind,
@@ -7672,22 +7885,18 @@
LinkedNodeBuilder.enumConstantDeclaration({
List<LinkedNodeBuilder> annotatedNode_metadata,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.enumConstantDeclaration,
_variantField_4 = annotatedNode_metadata,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.enumDeclaration({
List<LinkedNodeBuilder> enumDeclaration_constants,
List<LinkedNodeBuilder> annotatedNode_metadata,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.enumDeclaration,
_variantField_2 = enumDeclaration_constants,
_variantField_4 = annotatedNode_metadata,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.exportDirective({
List<LinkedNodeBuilder> namespaceDirective_combinators,
@@ -7697,6 +7906,7 @@
int informativeId,
LinkedNodeBuilder uriBasedDirective_uri,
String uriBasedDirective_uriContent,
+ int uriBasedDirective_uriElement,
}) : _kind = idl.LinkedNodeKind.exportDirective,
_variantField_2 = namespaceDirective_combinators,
_variantField_4 = annotatedNode_metadata,
@@ -7704,7 +7914,8 @@
_variantField_20 = namespaceDirective_selectedUri,
_variantField_36 = informativeId,
_variantField_14 = uriBasedDirective_uri,
- _variantField_22 = uriBasedDirective_uriContent;
+ _variantField_22 = uriBasedDirective_uriContent,
+ _variantField_19 = uriBasedDirective_uriElement;
LinkedNodeBuilder.expressionFunctionBody({
LinkedNodeBuilder expressionFunctionBody_expression,
@@ -7728,15 +7939,13 @@
List<LinkedNodeBuilder> extensionDeclaration_members,
String extensionDeclaration_refName,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.extensionDeclaration,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = extensionDeclaration_typeParameters,
_variantField_7 = extensionDeclaration_extendedType,
_variantField_5 = extensionDeclaration_members,
_variantField_20 = extensionDeclaration_refName,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.extensionOverride({
LinkedNodeTypeBuilder extensionOverride_extendedType,
@@ -7749,7 +7958,7 @@
_variantField_2 = extensionOverride_arguments,
_variantField_7 = extensionOverride_extensionName,
_variantField_8 = extensionOverride_typeArguments,
- _variantField_38 = extensionOverride_typeArgumentTypes;
+ _variantField_39 = extensionOverride_typeArgumentTypes;
LinkedNodeBuilder.fieldDeclaration({
List<LinkedNodeBuilder> annotatedNode_metadata,
@@ -7768,7 +7977,6 @@
LinkedNodeBuilder fieldFormalParameter_formalParameters,
bool inheritsCovariant,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.fieldFormalParameter,
_variantField_24 = actualType,
_variantField_4 = normalFormalParameter_metadata,
@@ -7776,8 +7984,7 @@
_variantField_7 = fieldFormalParameter_typeParameters,
_variantField_8 = fieldFormalParameter_formalParameters,
_variantField_27 = inheritsCovariant,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.forEachPartsWithDeclaration({
LinkedNodeBuilder forEachParts_iterable,
@@ -7836,14 +8043,12 @@
LinkedNodeBuilder functionDeclaration_functionExpression,
LinkedNodeBuilder functionDeclaration_returnType,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.functionDeclaration,
_variantField_24 = actualReturnType,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = functionDeclaration_functionExpression,
_variantField_7 = functionDeclaration_returnType,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.functionDeclarationStatement({
LinkedNodeBuilder functionDeclarationStatement_functionDeclaration,
@@ -7883,7 +8088,6 @@
bool typeAlias_hasSelfReference,
int informativeId,
bool simplyBoundable_isSimplyBounded,
- String name,
}) : _kind = idl.LinkedNodeKind.functionTypeAlias,
_variantField_24 = actualReturnType,
_variantField_4 = annotatedNode_metadata,
@@ -7892,8 +8096,7 @@
_variantField_8 = functionTypeAlias_typeParameters,
_variantField_27 = typeAlias_hasSelfReference,
_variantField_36 = informativeId,
- _variantField_31 = simplyBoundable_isSimplyBounded,
- _variantField_37 = name;
+ _variantField_31 = simplyBoundable_isSimplyBounded;
LinkedNodeBuilder.functionTypedFormalParameter({
LinkedNodeTypeBuilder actualType,
@@ -7903,7 +8106,6 @@
LinkedNodeBuilder functionTypedFormalParameter_typeParameters,
bool inheritsCovariant,
int informativeId,
- String name,
}) : _kind = idl.LinkedNodeKind.functionTypedFormalParameter,
_variantField_24 = actualType,
_variantField_4 = normalFormalParameter_metadata,
@@ -7911,23 +8113,22 @@
_variantField_7 = functionTypedFormalParameter_returnType,
_variantField_8 = functionTypedFormalParameter_typeParameters,
_variantField_27 = inheritsCovariant,
- _variantField_36 = informativeId,
- _variantField_37 = name;
+ _variantField_36 = informativeId;
LinkedNodeBuilder.genericFunctionType({
LinkedNodeTypeBuilder actualReturnType,
LinkedNodeBuilder genericFunctionType_typeParameters,
LinkedNodeBuilder genericFunctionType_returnType,
+ int genericFunctionType_id,
LinkedNodeBuilder genericFunctionType_formalParameters,
LinkedNodeTypeBuilder genericFunctionType_type,
- int genericFunctionType_id,
}) : _kind = idl.LinkedNodeKind.genericFunctionType,
_variantField_24 = actualReturnType,
_variantField_6 = genericFunctionType_typeParameters,
_variantField_7 = genericFunctionType_returnType,
+ _variantField_17 = genericFunctionType_id,
_variantField_8 = genericFunctionType_formalParameters,
- _variantField_25 = genericFunctionType_type,
- _variantField_17 = genericFunctionType_id;
+ _variantField_25 = genericFunctionType_type;
LinkedNodeBuilder.genericTypeAlias({
List<LinkedNodeBuilder> annotatedNode_metadata,
@@ -7936,15 +8137,13 @@
bool typeAlias_hasSelfReference,
int informativeId,
bool simplyBoundable_isSimplyBounded,
- String name,
}) : _kind = idl.LinkedNodeKind.genericTypeAlias,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = genericTypeAlias_typeParameters,
_variantField_7 = genericTypeAlias_functionType,
_variantField_27 = typeAlias_hasSelfReference,
_variantField_36 = informativeId,
- _variantField_31 = simplyBoundable_isSimplyBounded,
- _variantField_37 = name;
+ _variantField_31 = simplyBoundable_isSimplyBounded;
LinkedNodeBuilder.hideCombinator({
int informativeId,
@@ -7985,6 +8184,7 @@
int informativeId,
LinkedNodeBuilder uriBasedDirective_uri,
String uriBasedDirective_uriContent,
+ int uriBasedDirective_uriElement,
}) : _kind = idl.LinkedNodeKind.importDirective,
_variantField_2 = namespaceDirective_combinators,
_variantField_4 = annotatedNode_metadata,
@@ -7993,15 +8193,20 @@
_variantField_1 = importDirective_prefix,
_variantField_36 = informativeId,
_variantField_14 = uriBasedDirective_uri,
- _variantField_22 = uriBasedDirective_uriContent;
+ _variantField_22 = uriBasedDirective_uriContent,
+ _variantField_19 = uriBasedDirective_uriElement;
LinkedNodeBuilder.indexExpression({
LinkedNodeBuilder indexExpression_index,
LinkedNodeBuilder indexExpression_target,
+ LinkedNodeTypeSubstitutionBuilder indexExpression_substitution,
+ int indexExpression_element,
LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.indexExpression,
_variantField_6 = indexExpression_index,
_variantField_7 = indexExpression_target,
+ _variantField_38 = indexExpression_substitution,
+ _variantField_15 = indexExpression_element,
_variantField_25 = expression_type;
LinkedNodeBuilder.instanceCreationExpression({
@@ -8090,7 +8295,6 @@
LinkedNodeBuilder methodDeclaration_typeParameters,
int informativeId,
bool methodDeclaration_hasOperatorEqualWithParameterTypeFromObject,
- String name,
TopLevelInferenceErrorBuilder topLevelTypeInferenceError,
}) : _kind = idl.LinkedNodeKind.methodDeclaration,
_variantField_24 = actualReturnType,
@@ -8102,7 +8306,6 @@
_variantField_36 = informativeId,
_variantField_31 =
methodDeclaration_hasOperatorEqualWithParameterTypeFromObject,
- _variantField_37 = name,
_variantField_32 = topLevelTypeInferenceError;
LinkedNodeBuilder.methodInvocation({
@@ -8129,7 +8332,6 @@
int informativeId,
bool simplyBoundable_isSimplyBounded,
List<String> mixinDeclaration_superInvokedNames,
- String name,
}) : _kind = idl.LinkedNodeKind.mixinDeclaration,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = mixinDeclaration_onClause,
@@ -8138,8 +8340,7 @@
_variantField_13 = classOrMixinDeclaration_typeParameters,
_variantField_36 = informativeId,
_variantField_31 = simplyBoundable_isSimplyBounded,
- _variantField_34 = mixinDeclaration_superInvokedNames,
- _variantField_37 = name;
+ _variantField_34 = mixinDeclaration_superInvokedNames;
LinkedNodeBuilder.namedExpression({
LinkedNodeBuilder namedExpression_expression,
@@ -8182,11 +8383,13 @@
int informativeId,
LinkedNodeBuilder uriBasedDirective_uri,
String uriBasedDirective_uriContent,
+ int uriBasedDirective_uriElement,
}) : _kind = idl.LinkedNodeKind.partDirective,
_variantField_4 = annotatedNode_metadata,
_variantField_36 = informativeId,
_variantField_14 = uriBasedDirective_uri,
- _variantField_22 = uriBasedDirective_uriContent;
+ _variantField_22 = uriBasedDirective_uriContent,
+ _variantField_19 = uriBasedDirective_uriElement;
LinkedNodeBuilder.partOfDirective({
List<LinkedNodeBuilder> annotatedNode_metadata,
@@ -8201,19 +8404,27 @@
LinkedNodeBuilder.postfixExpression({
LinkedNodeBuilder postfixExpression_operand,
+ LinkedNodeTypeSubstitutionBuilder postfixExpression_substitution,
+ int postfixExpression_element,
idl.UnlinkedTokenType postfixExpression_operator,
LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.postfixExpression,
_variantField_6 = postfixExpression_operand,
+ _variantField_38 = postfixExpression_substitution,
+ _variantField_15 = postfixExpression_element,
_variantField_28 = postfixExpression_operator,
_variantField_25 = expression_type;
LinkedNodeBuilder.prefixExpression({
LinkedNodeBuilder prefixExpression_operand,
+ LinkedNodeTypeSubstitutionBuilder prefixExpression_substitution,
+ int prefixExpression_element,
idl.UnlinkedTokenType prefixExpression_operator,
LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.prefixExpression,
_variantField_6 = prefixExpression_operand,
+ _variantField_38 = prefixExpression_substitution,
+ _variantField_15 = prefixExpression_element,
_variantField_28 = prefixExpression_operator,
_variantField_25 = expression_type;
@@ -8240,9 +8451,14 @@
LinkedNodeBuilder.redirectingConstructorInvocation({
LinkedNodeBuilder redirectingConstructorInvocation_arguments,
LinkedNodeBuilder redirectingConstructorInvocation_constructorName,
+ LinkedNodeTypeSubstitutionBuilder
+ redirectingConstructorInvocation_substitution,
+ int redirectingConstructorInvocation_element,
}) : _kind = idl.LinkedNodeKind.redirectingConstructorInvocation,
_variantField_6 = redirectingConstructorInvocation_arguments,
- _variantField_7 = redirectingConstructorInvocation_constructorName;
+ _variantField_7 = redirectingConstructorInvocation_constructorName,
+ _variantField_38 = redirectingConstructorInvocation_substitution,
+ _variantField_15 = redirectingConstructorInvocation_element;
LinkedNodeBuilder.rethrowExpression({
LinkedNodeTypeBuilder expression_type,
@@ -8276,7 +8492,6 @@
LinkedNodeBuilder simpleFormalParameter_type,
bool inheritsCovariant,
int informativeId,
- String name,
TopLevelInferenceErrorBuilder topLevelTypeInferenceError,
}) : _kind = idl.LinkedNodeKind.simpleFormalParameter,
_variantField_24 = actualType,
@@ -8284,13 +8499,16 @@
_variantField_6 = simpleFormalParameter_type,
_variantField_27 = inheritsCovariant,
_variantField_36 = informativeId,
- _variantField_37 = name,
_variantField_32 = topLevelTypeInferenceError;
LinkedNodeBuilder.simpleIdentifier({
- String name,
+ LinkedNodeTypeSubstitutionBuilder simpleIdentifier_substitution,
+ int simpleIdentifier_element,
+ LinkedNodeTypeBuilder expression_type,
}) : _kind = idl.LinkedNodeKind.simpleIdentifier,
- _variantField_37 = name;
+ _variantField_38 = simpleIdentifier_substitution,
+ _variantField_15 = simpleIdentifier_element,
+ _variantField_25 = expression_type;
LinkedNodeBuilder.simpleStringLiteral({
String simpleStringLiteral_value,
@@ -8312,9 +8530,13 @@
LinkedNodeBuilder.superConstructorInvocation({
LinkedNodeBuilder superConstructorInvocation_arguments,
LinkedNodeBuilder superConstructorInvocation_constructorName,
+ LinkedNodeTypeSubstitutionBuilder superConstructorInvocation_substitution,
+ int superConstructorInvocation_element,
}) : _kind = idl.LinkedNodeKind.superConstructorInvocation,
_variantField_6 = superConstructorInvocation_arguments,
- _variantField_7 = superConstructorInvocation_constructorName;
+ _variantField_7 = superConstructorInvocation_constructorName,
+ _variantField_38 = superConstructorInvocation_substitution,
+ _variantField_15 = superConstructorInvocation_element;
LinkedNodeBuilder.superExpression({
LinkedNodeTypeBuilder expression_type,
@@ -8400,14 +8622,12 @@
LinkedNodeBuilder typeParameter_bound,
int typeParameter_variance,
int informativeId,
- String name,
LinkedNodeTypeBuilder typeParameter_defaultType,
}) : _kind = idl.LinkedNodeKind.typeParameter,
_variantField_4 = annotatedNode_metadata,
_variantField_6 = typeParameter_bound,
_variantField_15 = typeParameter_variance,
_variantField_36 = informativeId,
- _variantField_37 = name,
_variantField_23 = typeParameter_defaultType;
LinkedNodeBuilder.typeParameterList({
@@ -8421,7 +8641,6 @@
LinkedNodeBuilder variableDeclaration_initializer,
bool inheritsCovariant,
int informativeId,
- String name,
TopLevelInferenceErrorBuilder topLevelTypeInferenceError,
}) : _kind = idl.LinkedNodeKind.variableDeclaration,
_variantField_24 = actualType,
@@ -8429,7 +8648,6 @@
_variantField_6 = variableDeclaration_initializer,
_variantField_27 = inheritsCovariant,
_variantField_36 = informativeId,
- _variantField_37 = name,
_variantField_32 = topLevelTypeInferenceError;
LinkedNodeBuilder.variableDeclarationList({
@@ -8469,66 +8687,53 @@
void flushInformative() {
if (kind == idl.LinkedNodeKind.adjacentStrings) {
adjacentStrings_strings?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.annotation) {
annotation_arguments?.flushInformative();
annotation_constructorName?.flushInformative();
annotation_name?.flushInformative();
- resolution?.flushInformative();
+ annotation_substitution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.argumentList) {
argumentList_arguments?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.asExpression) {
asExpression_expression?.flushInformative();
asExpression_type?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.assertInitializer) {
assertInitializer_condition?.flushInformative();
assertInitializer_message?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.assertStatement) {
assertStatement_condition?.flushInformative();
assertStatement_message?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.assignmentExpression) {
assignmentExpression_leftHandSide?.flushInformative();
assignmentExpression_rightHandSide?.flushInformative();
+ assignmentExpression_substitution?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.awaitExpression) {
awaitExpression_expression?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.binaryExpression) {
binaryExpression_invokeType?.flushInformative();
binaryExpression_leftOperand?.flushInformative();
binaryExpression_rightOperand?.flushInformative();
+ binaryExpression_substitution?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.block) {
block_statements?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.blockFunctionBody) {
blockFunctionBody_block?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.booleanLiteral) {
- expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.breakStatement) {
breakStatement_label?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.cascadeExpression) {
cascadeExpression_sections?.forEach((b) => b.flushInformative());
cascadeExpression_target?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.catchClause) {
catchClause_body?.flushInformative();
catchClause_exceptionParameter?.flushInformative();
catchClause_exceptionType?.flushInformative();
catchClause_stackTraceParameter?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.classDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
classDeclaration_extendsClause?.flushInformative();
@@ -8538,7 +8743,6 @@
classOrMixinDeclaration_members?.forEach((b) => b.flushInformative());
classOrMixinDeclaration_typeParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
unused11?.flushInformative();
} else if (kind == idl.LinkedNodeKind.classTypeAlias) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
@@ -8547,31 +8751,25 @@
classTypeAlias_withClause?.flushInformative();
classTypeAlias_implementsClause?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.comment) {
comment_references?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.commentReference) {
commentReference_identifier?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.compilationUnit) {
compilationUnit_declarations?.forEach((b) => b.flushInformative());
compilationUnit_scriptTag?.flushInformative();
compilationUnit_directives?.forEach((b) => b.flushInformative());
compilationUnit_languageVersion?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.conditionalExpression) {
conditionalExpression_condition?.flushInformative();
conditionalExpression_elseExpression?.flushInformative();
conditionalExpression_thenExpression?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.configuration) {
configuration_name?.flushInformative();
configuration_value?.flushInformative();
configuration_uri?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.constructorDeclaration) {
constructorDeclaration_initializers?.forEach((b) => b.flushInformative());
annotatedNode_metadata?.forEach((b) => b.flushInformative());
@@ -8580,86 +8778,66 @@
constructorDeclaration_redirectedConstructor?.flushInformative();
constructorDeclaration_returnType?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
constructorFieldInitializer_expression?.flushInformative();
constructorFieldInitializer_fieldName?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.constructorName) {
constructorName_name?.flushInformative();
constructorName_type?.flushInformative();
- resolution?.flushInformative();
+ constructorName_substitution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.continueStatement) {
continueStatement_label?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.declaredIdentifier) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
declaredIdentifier_identifier?.flushInformative();
declaredIdentifier_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
- actualType?.flushInformative();
defaultFormalParameter_defaultValue?.flushInformative();
defaultFormalParameter_parameter?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.doStatement) {
doStatement_body?.flushInformative();
doStatement_condition?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.dottedName) {
dottedName_components?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.doubleLiteral) {
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.emptyStatement) {
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.enumConstantDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.enumDeclaration) {
enumDeclaration_constants?.forEach((b) => b.flushInformative());
annotatedNode_metadata?.forEach((b) => b.flushInformative());
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.exportDirective) {
namespaceDirective_combinators?.forEach((b) => b.flushInformative());
annotatedNode_metadata?.forEach((b) => b.flushInformative());
namespaceDirective_configurations?.forEach((b) => b.flushInformative());
informativeId = null;
uriBasedDirective_uri?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
expressionFunctionBody_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.expressionStatement) {
expressionStatement_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.extendsClause) {
extendsClause_superclass?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.extensionDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
extensionDeclaration_typeParameters?.flushInformative();
extensionDeclaration_extendedType?.flushInformative();
extensionDeclaration_members?.forEach((b) => b.flushInformative());
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.extensionOverride) {
extensionOverride_extendedType?.flushInformative();
extensionOverride_arguments?.forEach((b) => b.flushInformative());
extensionOverride_extensionName?.flushInformative();
extensionOverride_typeArguments?.flushInformative();
extensionOverride_typeArgumentTypes?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.fieldDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
fieldDeclaration_fields?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.fieldFormalParameter) {
actualType?.flushInformative();
normalFormalParameter_metadata?.forEach((b) => b.flushInformative());
@@ -8667,59 +8845,47 @@
fieldFormalParameter_typeParameters?.flushInformative();
fieldFormalParameter_formalParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
forEachParts_iterable?.flushInformative();
forEachPartsWithDeclaration_loopVariable?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
forEachParts_iterable?.flushInformative();
forEachPartsWithIdentifier_identifier?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forElement) {
forMixin_forLoopParts?.flushInformative();
forElement_body?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
forParts_condition?.flushInformative();
forPartsWithDeclarations_variables?.flushInformative();
forParts_updaters?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
forParts_condition?.flushInformative();
forPartsWithExpression_initialization?.flushInformative();
forParts_updaters?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.forStatement) {
forMixin_forLoopParts?.flushInformative();
forStatement_body?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.formalParameterList) {
formalParameterList_parameters?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionDeclaration) {
actualReturnType?.flushInformative();
annotatedNode_metadata?.forEach((b) => b.flushInformative());
functionDeclaration_functionExpression?.flushInformative();
functionDeclaration_returnType?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
functionDeclarationStatement_functionDeclaration?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionExpression) {
actualReturnType?.flushInformative();
functionExpression_body?.flushInformative();
functionExpression_formalParameters?.flushInformative();
functionExpression_typeParameters?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionExpressionInvocation) {
invocationExpression_invokeType?.flushInformative();
functionExpressionInvocation_function?.flushInformative();
invocationExpression_typeArguments?.flushInformative();
expression_type?.flushInformative();
invocationExpression_arguments?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionTypeAlias) {
actualReturnType?.flushInformative();
annotatedNode_metadata?.forEach((b) => b.flushInformative());
@@ -8727,7 +8893,6 @@
functionTypeAlias_returnType?.flushInformative();
functionTypeAlias_typeParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.functionTypedFormalParameter) {
actualType?.flushInformative();
normalFormalParameter_metadata?.forEach((b) => b.flushInformative());
@@ -8735,91 +8900,72 @@
functionTypedFormalParameter_returnType?.flushInformative();
functionTypedFormalParameter_typeParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.genericFunctionType) {
actualReturnType?.flushInformative();
genericFunctionType_typeParameters?.flushInformative();
genericFunctionType_returnType?.flushInformative();
genericFunctionType_formalParameters?.flushInformative();
genericFunctionType_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.genericTypeAlias) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
genericTypeAlias_typeParameters?.flushInformative();
genericTypeAlias_functionType?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.hideCombinator) {
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.ifElement) {
ifMixin_condition?.flushInformative();
ifElement_thenElement?.flushInformative();
ifElement_elseElement?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.ifStatement) {
ifMixin_condition?.flushInformative();
ifStatement_elseStatement?.flushInformative();
ifStatement_thenStatement?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.implementsClause) {
implementsClause_interfaces?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.importDirective) {
namespaceDirective_combinators?.forEach((b) => b.flushInformative());
annotatedNode_metadata?.forEach((b) => b.flushInformative());
namespaceDirective_configurations?.forEach((b) => b.flushInformative());
informativeId = null;
uriBasedDirective_uri?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.indexExpression) {
indexExpression_index?.flushInformative();
indexExpression_target?.flushInformative();
+ indexExpression_substitution?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.instanceCreationExpression) {
instanceCreationExpression_arguments
?.forEach((b) => b.flushInformative());
instanceCreationExpression_constructorName?.flushInformative();
instanceCreationExpression_typeArguments?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.integerLiteral) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.interpolationExpression) {
interpolationExpression_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.interpolationString) {
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.isExpression) {
isExpression_expression?.flushInformative();
isExpression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.label) {
label_label?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.labeledStatement) {
labeledStatement_labels?.forEach((b) => b.flushInformative());
labeledStatement_statement?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.libraryDirective) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
libraryDirective_name?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.libraryIdentifier) {
libraryIdentifier_components?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.listLiteral) {
typedLiteral_typeArguments?.forEach((b) => b.flushInformative());
listLiteral_elements?.forEach((b) => b.flushInformative());
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.mapLiteralEntry) {
mapLiteralEntry_key?.flushInformative();
mapLiteralEntry_value?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.methodDeclaration) {
actualReturnType?.flushInformative();
annotatedNode_metadata?.forEach((b) => b.flushInformative());
@@ -8828,7 +8974,6 @@
methodDeclaration_returnType?.flushInformative();
methodDeclaration_typeParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
topLevelTypeInferenceError?.flushInformative();
} else if (kind == idl.LinkedNodeKind.methodInvocation) {
invocationExpression_invokeType?.flushInformative();
@@ -8837,7 +8982,6 @@
invocationExpression_typeArguments?.flushInformative();
expression_type?.flushInformative();
invocationExpression_arguments?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.mixinDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
mixinDeclaration_onClause?.flushInformative();
@@ -8845,174 +8989,137 @@
classOrMixinDeclaration_members?.forEach((b) => b.flushInformative());
classOrMixinDeclaration_typeParameters?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.namedExpression) {
namedExpression_expression?.flushInformative();
namedExpression_name?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.nativeClause) {
nativeClause_name?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.nativeFunctionBody) {
nativeFunctionBody_stringLiteral?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.nullLiteral) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.onClause) {
onClause_superclassConstraints?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.parenthesizedExpression) {
parenthesizedExpression_expression?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.partDirective) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
informativeId = null;
uriBasedDirective_uri?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.partOfDirective) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
partOfDirective_libraryName?.flushInformative();
partOfDirective_uri?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.postfixExpression) {
postfixExpression_operand?.flushInformative();
+ postfixExpression_substitution?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.prefixExpression) {
prefixExpression_operand?.flushInformative();
+ prefixExpression_substitution?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.prefixedIdentifier) {
prefixedIdentifier_identifier?.flushInformative();
prefixedIdentifier_prefix?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.propertyAccess) {
propertyAccess_propertyName?.flushInformative();
propertyAccess_target?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.redirectingConstructorInvocation) {
redirectingConstructorInvocation_arguments?.flushInformative();
redirectingConstructorInvocation_constructorName?.flushInformative();
- resolution?.flushInformative();
+ redirectingConstructorInvocation_substitution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.rethrowExpression) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.returnStatement) {
returnStatement_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
typedLiteral_typeArguments?.forEach((b) => b.flushInformative());
setOrMapLiteral_elements?.forEach((b) => b.flushInformative());
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.showCombinator) {
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.simpleFormalParameter) {
actualType?.flushInformative();
normalFormalParameter_metadata?.forEach((b) => b.flushInformative());
simpleFormalParameter_type?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
topLevelTypeInferenceError?.flushInformative();
} else if (kind == idl.LinkedNodeKind.simpleIdentifier) {
- resolution?.flushInformative();
+ simpleIdentifier_substitution?.flushInformative();
+ expression_type?.flushInformative();
} else if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.spreadElement) {
spreadElement_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.stringInterpolation) {
stringInterpolation_elements?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.superConstructorInvocation) {
superConstructorInvocation_arguments?.flushInformative();
superConstructorInvocation_constructorName?.flushInformative();
- resolution?.flushInformative();
+ superConstructorInvocation_substitution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.superExpression) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.switchCase) {
switchMember_statements?.forEach((b) => b.flushInformative());
switchCase_expression?.flushInformative();
switchMember_labels?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.switchDefault) {
switchMember_statements?.forEach((b) => b.flushInformative());
switchMember_labels?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.switchStatement) {
switchStatement_members?.forEach((b) => b.flushInformative());
switchStatement_expression?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.symbolLiteral) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.thisExpression) {
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.throwExpression) {
throwExpression_expression?.flushInformative();
expression_type?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
topLevelVariableDeclaration_variableList?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.tryStatement) {
tryStatement_catchClauses?.forEach((b) => b.flushInformative());
tryStatement_body?.flushInformative();
tryStatement_finallyBlock?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.typeArgumentList) {
typeArgumentList_arguments?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.typeName) {
typeName_typeArguments?.forEach((b) => b.flushInformative());
typeName_name?.flushInformative();
- resolution?.flushInformative();
typeName_type?.flushInformative();
} else if (kind == idl.LinkedNodeKind.typeParameter) {
annotatedNode_metadata?.forEach((b) => b.flushInformative());
typeParameter_bound?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
typeParameter_defaultType?.flushInformative();
} else if (kind == idl.LinkedNodeKind.typeParameterList) {
typeParameterList_typeParameters?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.variableDeclaration) {
actualType?.flushInformative();
annotatedNode_metadata?.forEach((b) => b.flushInformative());
variableDeclaration_initializer?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
topLevelTypeInferenceError?.flushInformative();
} else if (kind == idl.LinkedNodeKind.variableDeclarationList) {
variableDeclarationList_variables?.forEach((b) => b.flushInformative());
annotatedNode_metadata?.forEach((b) => b.flushInformative());
variableDeclarationList_type?.flushInformative();
informativeId = null;
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.variableDeclarationStatement) {
variableDeclarationStatement_variables?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.whileStatement) {
whileStatement_body?.flushInformative();
whileStatement_condition?.flushInformative();
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.withClause) {
withClause_mixinTypes?.forEach((b) => b.flushInformative());
- resolution?.flushInformative();
} else if (kind == idl.LinkedNodeKind.yieldStatement) {
yieldStatement_expression?.flushInformative();
- resolution?.flushInformative();
}
}
@@ -9029,8 +9136,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.annotation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.annotation_arguments != null);
@@ -9039,9 +9145,11 @@
this.annotation_constructorName?.collectApiSignature(signature);
signature.addBool(this.annotation_name != null);
this.annotation_name?.collectApiSignature(signature);
+ signature.addInt(this.annotation_element ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.annotation_substitution != null);
+ this.annotation_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.argumentList) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.argumentList_arguments == null) {
@@ -9053,8 +9161,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.asExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.asExpression_expression != null);
@@ -9064,8 +9171,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.assertInitializer) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.assertInitializer_condition != null);
@@ -9073,8 +9179,7 @@
signature.addBool(this.assertInitializer_message != null);
this.assertInitializer_message?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.assertStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.assertStatement_condition != null);
@@ -9082,22 +9187,23 @@
signature.addBool(this.assertStatement_message != null);
this.assertStatement_message?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.assignmentExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.assignmentExpression_leftHandSide != null);
this.assignmentExpression_leftHandSide?.collectApiSignature(signature);
signature.addBool(this.assignmentExpression_rightHandSide != null);
this.assignmentExpression_rightHandSide?.collectApiSignature(signature);
+ signature.addInt(this.assignmentExpression_element ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
signature.addInt(this.assignmentExpression_operator == null
? 0
: this.assignmentExpression_operator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.assignmentExpression_substitution != null);
+ this.assignmentExpression_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.awaitExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.awaitExpression_expression != null);
@@ -9105,14 +9211,14 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.binaryExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.binaryExpression_leftOperand != null);
this.binaryExpression_leftOperand?.collectApiSignature(signature);
signature.addBool(this.binaryExpression_rightOperand != null);
this.binaryExpression_rightOperand?.collectApiSignature(signature);
+ signature.addInt(this.binaryExpression_element ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.binaryExpression_invokeType != null);
this.binaryExpression_invokeType?.collectApiSignature(signature);
@@ -9121,8 +9227,9 @@
signature.addInt(this.binaryExpression_operator == null
? 0
: this.binaryExpression_operator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.binaryExpression_substitution != null);
+ this.binaryExpression_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.block) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.block_statements == null) {
@@ -9134,30 +9241,24 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.blockFunctionBody) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.blockFunctionBody_block != null);
this.blockFunctionBody_block?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.booleanLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.expression_type != null);
- this.expression_type?.collectApiSignature(signature);
signature.addBool(this.booleanLiteral_value == true);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.breakStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.breakStatement_label != null);
this.breakStatement_label?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.cascadeExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.cascadeExpression_sections == null) {
@@ -9173,8 +9274,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.catchClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.catchClause_body != null);
@@ -9186,8 +9286,7 @@
signature.addBool(this.catchClause_stackTraceParameter != null);
this.catchClause_stackTraceParameter?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.classDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9226,8 +9325,6 @@
signature.addBool(this.classDeclaration_isDartObject == true);
signature.addBool(this.simplyBoundable_isSimplyBounded == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.classTypeAlias) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9249,8 +9346,6 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.simplyBoundable_isSimplyBounded == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.comment) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.comment_references == null) {
@@ -9271,15 +9366,13 @@
signature.addString(x);
}
}
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.commentReference) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.commentReference_identifier != null);
this.commentReference_identifier?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.compilationUnit) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.compilationUnit_declarations == null) {
@@ -9301,6 +9394,9 @@
signature.addBool(this.compilationUnit_scriptTag != null);
this.compilationUnit_scriptTag?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.compilationUnit_languageVersion != null);
+ this.compilationUnit_languageVersion?.collectApiSignature(signature);
if (this.compilationUnit_featureSet == null) {
signature.addInt(0);
} else {
@@ -9309,10 +9405,6 @@
signature.addInt(x);
}
}
- signature.addBool(this.compilationUnit_languageVersion != null);
- this.compilationUnit_languageVersion?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.conditionalExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.conditionalExpression_condition != null);
@@ -9324,8 +9416,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.configuration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.configuration_name != null);
@@ -9335,8 +9426,7 @@
signature.addBool(this.configuration_uri != null);
this.configuration_uri?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.constructorDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.constructorDeclaration_initializers == null) {
@@ -9368,8 +9458,6 @@
this.constructorDeclaration_returnType?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.constructorFieldInitializer_expression != null);
@@ -9381,24 +9469,24 @@
.constructorFieldInitializer_fieldName
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.constructorName) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.constructorName_name != null);
this.constructorName_name?.collectApiSignature(signature);
signature.addBool(this.constructorName_type != null);
this.constructorName_type?.collectApiSignature(signature);
+ signature.addInt(this.constructorName_element ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.constructorName_substitution != null);
+ this.constructorName_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.continueStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.continueStatement_label != null);
this.continueStatement_label?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.declaredIdentifier) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9414,8 +9502,7 @@
signature.addBool(this.declaredIdentifier_type != null);
this.declaredIdentifier_type?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.defaultFormalParameter_defaultValue != null);
@@ -9423,13 +9510,10 @@
signature.addBool(this.defaultFormalParameter_parameter != null);
this.defaultFormalParameter_parameter?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.actualType != null);
- this.actualType?.collectApiSignature(signature);
signature.addInt(this.defaultFormalParameter_kind == null
? 0
: this.defaultFormalParameter_kind.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.doStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.doStatement_body != null);
@@ -9437,8 +9521,7 @@
signature.addBool(this.doStatement_condition != null);
this.doStatement_condition?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.dottedName) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.dottedName_components == null) {
@@ -9450,26 +9533,22 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.doubleLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addDouble(this.doubleLiteral_value ?? 0.0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.emptyFunctionBody_fake ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.emptyStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.emptyStatement_fake ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.enumConstantDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9482,8 +9561,6 @@
}
signature.addInt(this.flags ?? 0);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.enumDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.enumDeclaration_constants == null) {
@@ -9504,8 +9581,6 @@
}
signature.addInt(this.flags ?? 0);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.exportDirective) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.namespaceDirective_combinators == null) {
@@ -9535,31 +9610,28 @@
signature.addBool(this.uriBasedDirective_uri != null);
this.uriBasedDirective_uri?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
+ signature.addInt(this.uriBasedDirective_uriElement ?? 0);
signature.addString(this.namespaceDirective_selectedUri ?? '');
signature.addString(this.uriBasedDirective_uriContent ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.expressionFunctionBody_expression != null);
this.expressionFunctionBody_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.expressionStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.expressionStatement_expression != null);
this.expressionStatement_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.extendsClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.extendsClause_superclass != null);
this.extendsClause_superclass?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.extensionDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9585,8 +9657,6 @@
signature.addInt(this.flags ?? 0);
signature.addString(this.extensionDeclaration_refName ?? '');
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.extensionOverride) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.extensionOverride_arguments == null) {
@@ -9604,6 +9674,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.extensionOverride_extendedType != null);
this.extensionOverride_extendedType?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
if (this.extensionOverride_typeArgumentTypes == null) {
signature.addInt(0);
} else {
@@ -9612,8 +9683,6 @@
x?.collectApiSignature(signature);
}
}
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.fieldDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9627,8 +9696,7 @@
signature.addBool(this.fieldDeclaration_fields != null);
this.fieldDeclaration_fields?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.fieldFormalParameter) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.normalFormalParameter_metadata == null) {
@@ -9652,8 +9720,6 @@
this.actualType?.collectApiSignature(signature);
signature.addBool(this.inheritsCovariant == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.forEachParts_iterable != null);
@@ -9663,8 +9729,7 @@
.forEachPartsWithDeclaration_loopVariable
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.forEachParts_iterable != null);
@@ -9674,8 +9739,7 @@
.forEachPartsWithIdentifier_identifier
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.forElement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.forMixin_forLoopParts != null);
@@ -9683,8 +9747,7 @@
signature.addBool(this.forElement_body != null);
this.forElement_body?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.forParts_updaters == null) {
@@ -9700,8 +9763,7 @@
signature.addBool(this.forPartsWithDeclarations_variables != null);
this.forPartsWithDeclarations_variables?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.forParts_updaters == null) {
@@ -9719,8 +9781,7 @@
.forPartsWithExpression_initialization
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.forStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.forMixin_forLoopParts != null);
@@ -9728,8 +9789,7 @@
signature.addBool(this.forStatement_body != null);
this.forStatement_body?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.formalParameterList) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.formalParameterList_parameters == null) {
@@ -9741,8 +9801,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.functionDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9763,8 +9822,6 @@
signature.addBool(this.actualReturnType != null);
this.actualReturnType?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(
@@ -9773,8 +9830,7 @@
.functionDeclarationStatement_functionDeclaration
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.functionExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.functionExpression_body != null);
@@ -9786,8 +9842,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.actualReturnType != null);
this.actualReturnType?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.functionExpressionInvocation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.functionExpressionInvocation_function != null);
@@ -9803,8 +9858,7 @@
this.invocationExpression_invokeType?.collectApiSignature(signature);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.functionTypeAlias) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9827,8 +9881,6 @@
signature.addBool(this.typeAlias_hasSelfReference == true);
signature.addBool(this.simplyBoundable_isSimplyBounded == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.functionTypedFormalParameter) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.normalFormalParameter_metadata == null) {
@@ -9858,8 +9910,6 @@
this.actualType?.collectApiSignature(signature);
signature.addBool(this.inheritsCovariant == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.genericFunctionType) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.genericFunctionType_typeParameters != null);
@@ -9874,8 +9924,7 @@
this.actualReturnType?.collectApiSignature(signature);
signature.addBool(this.genericFunctionType_type != null);
this.genericFunctionType_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.genericTypeAlias) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -9894,8 +9943,6 @@
signature.addBool(this.typeAlias_hasSelfReference == true);
signature.addBool(this.simplyBoundable_isSimplyBounded == true);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.hideCombinator) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
@@ -9907,8 +9954,7 @@
signature.addString(x);
}
}
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.ifElement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.ifMixin_condition != null);
@@ -9918,8 +9964,7 @@
signature.addBool(this.ifElement_elseElement != null);
this.ifElement_elseElement?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.ifStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.ifMixin_condition != null);
@@ -9929,8 +9974,7 @@
signature.addBool(this.ifStatement_thenStatement != null);
this.ifStatement_thenStatement?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.implementsClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.implementsClause_interfaces == null) {
@@ -9942,8 +9986,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.importDirective) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addString(this.importDirective_prefix ?? '');
@@ -9974,21 +10017,23 @@
signature.addBool(this.uriBasedDirective_uri != null);
this.uriBasedDirective_uri?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
+ signature.addInt(this.uriBasedDirective_uriElement ?? 0);
signature.addString(this.namespaceDirective_selectedUri ?? '');
signature.addString(this.uriBasedDirective_uriContent ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.indexExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.indexExpression_index != null);
this.indexExpression_index?.collectApiSignature(signature);
signature.addBool(this.indexExpression_target != null);
this.indexExpression_target?.collectApiSignature(signature);
+ signature.addInt(this.indexExpression_element ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.indexExpression_substitution != null);
+ this.indexExpression_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.instanceCreationExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.instanceCreationExpression_arguments == null) {
@@ -10011,29 +10056,25 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.integerLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.integerLiteral_value ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.interpolationExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.interpolationExpression_expression != null);
this.interpolationExpression_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.interpolationString) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addString(this.interpolationString_value ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.isExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.isExpression_expression != null);
@@ -10041,15 +10082,13 @@
signature.addBool(this.isExpression_type != null);
this.isExpression_type?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.label) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.label_label != null);
this.label_label?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.labeledStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.labeledStatement_labels == null) {
@@ -10063,8 +10102,7 @@
signature.addBool(this.labeledStatement_statement != null);
this.labeledStatement_statement?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.libraryDirective) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10078,8 +10116,7 @@
signature.addBool(this.libraryDirective_name != null);
this.libraryDirective_name?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.libraryIdentifier) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.libraryIdentifier_components == null) {
@@ -10091,8 +10128,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.listLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.typedLiteral_typeArguments == null) {
@@ -10114,8 +10150,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.mapLiteralEntry) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.mapLiteralEntry_key != null);
@@ -10123,8 +10158,7 @@
signature.addBool(this.mapLiteralEntry_value != null);
this.mapLiteralEntry_value?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.methodDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10152,8 +10186,6 @@
signature.addBool(this.topLevelTypeInferenceError != null);
this.topLevelTypeInferenceError?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.methodInvocation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.methodInvocation_methodName != null);
@@ -10169,8 +10201,7 @@
this.invocationExpression_invokeType?.collectApiSignature(signature);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.mixinDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10210,8 +10241,6 @@
}
}
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.namedExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.namedExpression_expression != null);
@@ -10219,30 +10248,26 @@
signature.addBool(this.namedExpression_name != null);
this.namedExpression_name?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.nativeClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.nativeClause_name != null);
this.nativeClause_name?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.nativeFunctionBody) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.nativeFunctionBody_stringLiteral != null);
this.nativeFunctionBody_stringLiteral?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.nullLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.nullLiteral_fake ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.onClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.onClause_superclassConstraints == null) {
@@ -10254,8 +10279,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.parenthesizedExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.parenthesizedExpression_expression != null);
@@ -10263,8 +10287,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.partDirective) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10278,9 +10301,9 @@
signature.addBool(this.uriBasedDirective_uri != null);
this.uriBasedDirective_uri?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
+ signature.addInt(this.uriBasedDirective_uriElement ?? 0);
signature.addString(this.uriBasedDirective_uriContent ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.partOfDirective) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10296,32 +10319,35 @@
signature.addBool(this.partOfDirective_uri != null);
this.partOfDirective_uri?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.postfixExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.postfixExpression_operand != null);
this.postfixExpression_operand?.collectApiSignature(signature);
+ signature.addInt(this.postfixExpression_element ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
signature.addInt(this.postfixExpression_operator == null
? 0
: this.postfixExpression_operator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.postfixExpression_substitution != null);
+ this.postfixExpression_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.prefixExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.prefixExpression_operand != null);
this.prefixExpression_operand?.collectApiSignature(signature);
+ signature.addInt(this.prefixExpression_element ?? 0);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
signature.addInt(this.prefixExpression_operator == null
? 0
: this.prefixExpression_operator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.prefixExpression_substitution != null);
+ this.prefixExpression_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.prefixedIdentifier) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.prefixedIdentifier_identifier != null);
@@ -10331,8 +10357,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.propertyAccess) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.propertyAccess_propertyName != null);
@@ -10345,8 +10370,7 @@
signature.addInt(this.propertyAccess_operator == null
? 0
: this.propertyAccess_operator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.redirectingConstructorInvocation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature
@@ -10359,23 +10383,26 @@
this
.redirectingConstructorInvocation_constructorName
?.collectApiSignature(signature);
+ signature.addInt(this.redirectingConstructorInvocation_element ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature
+ .addBool(this.redirectingConstructorInvocation_substitution != null);
+ this
+ .redirectingConstructorInvocation_substitution
+ ?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.rethrowExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.returnStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.returnStatement_expression != null);
this.returnStatement_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.typedLiteral_typeArguments == null) {
@@ -10397,8 +10424,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.showCombinator) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
@@ -10410,8 +10436,7 @@
signature.addString(x);
}
}
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.simpleFormalParameter) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.normalFormalParameter_metadata == null) {
@@ -10431,20 +10456,20 @@
signature.addBool(this.topLevelTypeInferenceError != null);
this.topLevelTypeInferenceError?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.simpleIdentifier) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
+ signature.addInt(this.simpleIdentifier_element ?? 0);
signature.addInt(this.flags ?? 0);
+ signature.addBool(this.expression_type != null);
+ this.expression_type?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addBool(this.simpleIdentifier_substitution != null);
+ this.simpleIdentifier_substitution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addString(this.simpleStringLiteral_value ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.spreadElement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.spreadElement_expression != null);
@@ -10453,8 +10478,7 @@
signature.addInt(this.spreadElement_spreadOperator == null
? 0
: this.spreadElement_spreadOperator.index);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.stringInterpolation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.stringInterpolation_elements == null) {
@@ -10466,8 +10490,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.superConstructorInvocation) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.superConstructorInvocation_arguments != null);
@@ -10477,16 +10500,19 @@
this
.superConstructorInvocation_constructorName
?.collectApiSignature(signature);
+ signature.addInt(this.superConstructorInvocation_element ?? 0);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
+ signature.addBool(this.superConstructorInvocation_substitution != null);
+ this
+ .superConstructorInvocation_substitution
+ ?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.superExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.switchCase) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.switchMember_labels == null) {
@@ -10508,8 +10534,7 @@
signature.addBool(this.switchCase_expression != null);
this.switchCase_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.switchDefault) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.switchMember_labels == null) {
@@ -10529,8 +10554,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.switchStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.switchStatement_members == null) {
@@ -10544,8 +10568,7 @@
signature.addBool(this.switchStatement_expression != null);
this.switchStatement_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.symbolLiteral) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
@@ -10559,15 +10582,13 @@
signature.addString(x);
}
}
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.thisExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.throwExpression) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.throwExpression_expression != null);
@@ -10575,8 +10596,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.expression_type != null);
this.expression_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10592,8 +10612,7 @@
.topLevelVariableDeclaration_variableList
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.tryStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.tryStatement_catchClauses == null) {
@@ -10609,8 +10628,7 @@
signature.addBool(this.tryStatement_finallyBlock != null);
this.tryStatement_finallyBlock?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.typeArgumentList) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.typeArgumentList_arguments == null) {
@@ -10622,8 +10640,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.typeName) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.typeName_typeArguments == null) {
@@ -10639,8 +10656,7 @@
signature.addInt(this.flags ?? 0);
signature.addBool(this.typeName_type != null);
this.typeName_type?.collectApiSignature(signature);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.typeParameter) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10658,8 +10674,6 @@
signature.addBool(this.typeParameter_defaultType != null);
this.typeParameter_defaultType?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.typeParameterList) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.typeParameterList_typeParameters == null) {
@@ -10671,8 +10685,7 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.variableDeclaration) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.annotatedNode_metadata == null) {
@@ -10692,8 +10705,6 @@
signature.addBool(this.topLevelTypeInferenceError != null);
this.topLevelTypeInferenceError?.collectApiSignature(signature);
signature.addString(this.name ?? '');
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
} else if (kind == idl.LinkedNodeKind.variableDeclarationList) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.variableDeclarationList_variables == null) {
@@ -10715,8 +10726,7 @@
signature.addBool(this.variableDeclarationList_type != null);
this.variableDeclarationList_type?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.variableDeclarationStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.variableDeclarationStatement_variables != null);
@@ -10724,8 +10734,7 @@
.variableDeclarationStatement_variables
?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.whileStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.whileStatement_body != null);
@@ -10733,8 +10742,7 @@
signature.addBool(this.whileStatement_condition != null);
this.whileStatement_condition?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.withClause) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
if (this.withClause_mixinTypes == null) {
@@ -10746,15 +10754,13 @@
}
}
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
} else if (kind == idl.LinkedNodeKind.yieldStatement) {
signature.addInt(this.kind == null ? 0 : this.kind.index);
signature.addBool(this.yieldStatement_expression != null);
this.yieldStatement_expression?.collectApiSignature(signature);
signature.addInt(this.flags ?? 0);
- signature.addBool(this.resolution != null);
- this.resolution?.collectApiSignature(signature);
+ signature.addString(this.name ?? '');
}
}
@@ -10765,24 +10771,24 @@
fb.Offset offset_variantField_6;
fb.Offset offset_variantField_7;
fb.Offset offset_variantField_8;
+ fb.Offset offset_variantField_38;
fb.Offset offset_variantField_9;
fb.Offset offset_variantField_12;
fb.Offset offset_variantField_5;
fb.Offset offset_variantField_13;
fb.Offset offset_variantField_33;
fb.Offset offset_variantField_3;
- fb.Offset offset_variantField_19;
- fb.Offset offset_variantField_39;
+ fb.Offset offset_variantField_41;
+ fb.Offset offset_variantField_40;
fb.Offset offset_variantField_10;
fb.Offset offset_variantField_25;
fb.Offset offset_variantField_20;
- fb.Offset offset_variantField_38;
+ fb.Offset offset_variantField_39;
fb.Offset offset_variantField_1;
fb.Offset offset_variantField_30;
fb.Offset offset_variantField_14;
fb.Offset offset_variantField_34;
- fb.Offset offset_variantField_37;
- fb.Offset offset_resolution;
+ fb.Offset offset_name;
fb.Offset offset_variantField_32;
fb.Offset offset_variantField_23;
fb.Offset offset_variantField_11;
@@ -10807,6 +10813,9 @@
if (_variantField_8 != null) {
offset_variantField_8 = _variantField_8.finish(fbBuilder);
}
+ if (_variantField_38 != null) {
+ offset_variantField_38 = _variantField_38.finish(fbBuilder);
+ }
if (_variantField_9 != null) {
offset_variantField_9 = _variantField_9.finish(fbBuilder);
}
@@ -10828,11 +10837,11 @@
offset_variantField_3 = fbBuilder
.writeList(_variantField_3.map((b) => b.finish(fbBuilder)).toList());
}
- if (!(_variantField_19 == null || _variantField_19.isEmpty)) {
- offset_variantField_19 = fbBuilder.writeListUint32(_variantField_19);
+ if (!(_variantField_41 == null || _variantField_41.isEmpty)) {
+ offset_variantField_41 = fbBuilder.writeListUint32(_variantField_41);
}
- if (_variantField_39 != null) {
- offset_variantField_39 = _variantField_39.finish(fbBuilder);
+ if (_variantField_40 != null) {
+ offset_variantField_40 = _variantField_40.finish(fbBuilder);
}
if (_variantField_10 != null) {
offset_variantField_10 = _variantField_10.finish(fbBuilder);
@@ -10843,9 +10852,9 @@
if (_variantField_20 != null) {
offset_variantField_20 = fbBuilder.writeString(_variantField_20);
}
- if (!(_variantField_38 == null || _variantField_38.isEmpty)) {
- offset_variantField_38 = fbBuilder
- .writeList(_variantField_38.map((b) => b.finish(fbBuilder)).toList());
+ if (!(_variantField_39 == null || _variantField_39.isEmpty)) {
+ offset_variantField_39 = fbBuilder
+ .writeList(_variantField_39.map((b) => b.finish(fbBuilder)).toList());
}
if (_variantField_1 != null) {
offset_variantField_1 = fbBuilder.writeString(_variantField_1);
@@ -10860,11 +10869,8 @@
offset_variantField_34 = fbBuilder.writeList(
_variantField_34.map((b) => fbBuilder.writeString(b)).toList());
}
- if (_variantField_37 != null) {
- offset_variantField_37 = fbBuilder.writeString(_variantField_37);
- }
- if (_resolution != null) {
- offset_resolution = _resolution.finish(fbBuilder);
+ if (_name != null) {
+ offset_name = fbBuilder.writeString(_name);
}
if (_variantField_32 != null) {
offset_variantField_32 = _variantField_32.finish(fbBuilder);
@@ -10894,9 +10900,18 @@
if (offset_variantField_7 != null) {
fbBuilder.addOffset(7, offset_variantField_7);
}
+ if (_variantField_17 != null && _variantField_17 != 0) {
+ fbBuilder.addUint32(17, _variantField_17);
+ }
if (offset_variantField_8 != null) {
fbBuilder.addOffset(8, offset_variantField_8);
}
+ if (offset_variantField_38 != null) {
+ fbBuilder.addOffset(38, offset_variantField_38);
+ }
+ if (_variantField_15 != null && _variantField_15 != 0) {
+ fbBuilder.addUint32(15, _variantField_15);
+ }
if (_variantField_28 != null &&
_variantField_28 != idl.UnlinkedTokenType.NOTHING) {
fbBuilder.addUint8(28, _variantField_28.index);
@@ -10926,11 +10941,11 @@
if (offset_variantField_3 != null) {
fbBuilder.addOffset(3, offset_variantField_3);
}
- if (offset_variantField_19 != null) {
- fbBuilder.addOffset(19, offset_variantField_19);
+ if (offset_variantField_41 != null) {
+ fbBuilder.addOffset(41, offset_variantField_41);
}
- if (offset_variantField_39 != null) {
- fbBuilder.addOffset(39, offset_variantField_39);
+ if (offset_variantField_40 != null) {
+ fbBuilder.addOffset(40, offset_variantField_40);
}
if (offset_variantField_10 != null) {
fbBuilder.addOffset(10, offset_variantField_10);
@@ -10943,24 +10958,18 @@
if (_variantField_21 != null && _variantField_21 != 0.0) {
fbBuilder.addFloat64(21, _variantField_21);
}
- if (_variantField_15 != null && _variantField_15 != 0) {
- fbBuilder.addUint32(15, _variantField_15);
- }
if (offset_variantField_25 != null) {
fbBuilder.addOffset(25, offset_variantField_25);
}
if (offset_variantField_20 != null) {
fbBuilder.addOffset(20, offset_variantField_20);
}
- if (offset_variantField_38 != null) {
- fbBuilder.addOffset(38, offset_variantField_38);
+ if (offset_variantField_39 != null) {
+ fbBuilder.addOffset(39, offset_variantField_39);
}
if (_flags != null && _flags != 0) {
fbBuilder.addUint32(18, _flags);
}
- if (_variantField_17 != null && _variantField_17 != 0) {
- fbBuilder.addUint32(17, _variantField_17);
- }
if (offset_variantField_1 != null) {
fbBuilder.addOffset(1, offset_variantField_1);
}
@@ -10985,11 +10994,8 @@
if (offset_variantField_34 != null) {
fbBuilder.addOffset(34, offset_variantField_34);
}
- if (offset_variantField_37 != null) {
- fbBuilder.addOffset(37, offset_variantField_37);
- }
- if (offset_resolution != null) {
- fbBuilder.addOffset(40, offset_resolution);
+ if (offset_name != null) {
+ fbBuilder.addOffset(37, offset_name);
}
if (_variantField_35 != null &&
_variantField_35 != idl.UnlinkedTokenType.NOTHING) {
@@ -11007,6 +11013,9 @@
if (offset_variantField_22 != null) {
fbBuilder.addOffset(22, offset_variantField_22);
}
+ if (_variantField_19 != null && _variantField_19 != 0) {
+ fbBuilder.addUint32(19, _variantField_19);
+ }
return fbBuilder.endTable();
}
}
@@ -11032,7 +11041,10 @@
List<idl.LinkedNode> _variantField_4;
idl.LinkedNode _variantField_6;
idl.LinkedNode _variantField_7;
+ int _variantField_17;
idl.LinkedNode _variantField_8;
+ idl.LinkedNodeTypeSubstitution _variantField_38;
+ int _variantField_15;
idl.UnlinkedTokenType _variantField_28;
bool _variantField_27;
idl.LinkedNode _variantField_9;
@@ -11042,17 +11054,15 @@
List<String> _variantField_33;
idl.LinkedNodeCommentType _variantField_29;
List<idl.LinkedNode> _variantField_3;
- List<int> _variantField_19;
- idl.LinkedLibraryLanguageVersion _variantField_39;
+ List<int> _variantField_41;
+ idl.LinkedLibraryLanguageVersion _variantField_40;
idl.LinkedNode _variantField_10;
idl.LinkedNodeFormalParameterKind _variantField_26;
double _variantField_21;
- int _variantField_15;
idl.LinkedNodeType _variantField_25;
String _variantField_20;
- List<idl.LinkedNodeType> _variantField_38;
+ List<idl.LinkedNodeType> _variantField_39;
int _flags;
- int _variantField_17;
String _variantField_1;
int _variantField_36;
int _variantField_16;
@@ -11061,13 +11071,13 @@
idl.LinkedNodeKind _kind;
bool _variantField_31;
List<String> _variantField_34;
- String _variantField_37;
- idl.LinkedNodeResolution _resolution;
+ String _name;
idl.UnlinkedTokenType _variantField_35;
idl.TopLevelInferenceError _variantField_32;
idl.LinkedNodeType _variantField_23;
idl.LinkedNode _variantField_11;
String _variantField_22;
+ int _variantField_19;
@override
idl.LinkedNodeType get actualReturnType {
@@ -11083,8 +11093,7 @@
@override
idl.LinkedNodeType get actualType {
- assert(kind == idl.LinkedNodeKind.defaultFormalParameter ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
+ assert(kind == idl.LinkedNodeKind.fieldFormalParameter ||
kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
kind == idl.LinkedNodeKind.simpleFormalParameter ||
kind == idl.LinkedNodeKind.variableDeclaration);
@@ -12373,6 +12382,22 @@
}
@override
+ int get annotation_element {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ _variantField_17 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
+ return _variantField_17;
+ }
+
+ @override
+ int get genericFunctionType_id {
+ assert(kind == idl.LinkedNodeKind.genericFunctionType);
+ _variantField_17 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
+ return _variantField_17;
+ }
+
+ @override
idl.LinkedNode get annotation_name {
assert(kind == idl.LinkedNodeKind.annotation);
_variantField_8 ??=
@@ -12509,6 +12534,191 @@
}
@override
+ idl.LinkedNodeTypeSubstitution get annotation_substitution {
+ assert(kind == idl.LinkedNodeKind.annotation);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get assignmentExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get binaryExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get constructorName_substitution {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get indexExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get postfixExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get prefixExpression_substitution {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution
+ get redirectingConstructorInvocation_substitution {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get simpleIdentifier_substitution {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ idl.LinkedNodeTypeSubstitution get superConstructorInvocation_substitution {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ _variantField_38 ??= const _LinkedNodeTypeSubstitutionReader()
+ .vTableGet(_bc, _bcOffset, 38, null);
+ return _variantField_38;
+ }
+
+ @override
+ int get assignmentExpression_element {
+ assert(kind == idl.LinkedNodeKind.assignmentExpression);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get binaryExpression_element {
+ assert(kind == idl.LinkedNodeKind.binaryExpression);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get constructorName_element {
+ assert(kind == idl.LinkedNodeKind.constructorName);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get emptyFunctionBody_fake {
+ assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get emptyStatement_fake {
+ assert(kind == idl.LinkedNodeKind.emptyStatement);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get indexExpression_element {
+ assert(kind == idl.LinkedNodeKind.indexExpression);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get nullLiteral_fake {
+ assert(kind == idl.LinkedNodeKind.nullLiteral);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get postfixExpression_element {
+ assert(kind == idl.LinkedNodeKind.postfixExpression);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get prefixExpression_element {
+ assert(kind == idl.LinkedNodeKind.prefixExpression);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get redirectingConstructorInvocation_element {
+ assert(kind == idl.LinkedNodeKind.redirectingConstructorInvocation);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get simpleIdentifier_element {
+ assert(kind == idl.LinkedNodeKind.simpleIdentifier);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get superConstructorInvocation_element {
+ assert(kind == idl.LinkedNodeKind.superConstructorInvocation);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
+ int get typeParameter_variance {
+ assert(kind == idl.LinkedNodeKind.typeParameter);
+ _variantField_15 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
+ return _variantField_15;
+ }
+
+ @override
idl.UnlinkedTokenType get assignmentExpression_operator {
assert(kind == idl.LinkedNodeKind.assignmentExpression);
_variantField_28 ??= const _UnlinkedTokenTypeReader()
@@ -12738,17 +12948,17 @@
@override
List<int> get compilationUnit_featureSet {
assert(kind == idl.LinkedNodeKind.compilationUnit);
- _variantField_19 ??= const fb.Uint32ListReader()
- .vTableGet(_bc, _bcOffset, 19, const <int>[]);
- return _variantField_19;
+ _variantField_41 ??= const fb.Uint32ListReader()
+ .vTableGet(_bc, _bcOffset, 41, const <int>[]);
+ return _variantField_41;
}
@override
idl.LinkedLibraryLanguageVersion get compilationUnit_languageVersion {
assert(kind == idl.LinkedNodeKind.compilationUnit);
- _variantField_39 ??= const _LinkedLibraryLanguageVersionReader()
- .vTableGet(_bc, _bcOffset, 39, null);
- return _variantField_39;
+ _variantField_40 ??= const _LinkedLibraryLanguageVersionReader()
+ .vTableGet(_bc, _bcOffset, 40, null);
+ return _variantField_40;
}
@override
@@ -12779,44 +12989,11 @@
}
@override
- int get emptyFunctionBody_fake {
- assert(kind == idl.LinkedNodeKind.emptyFunctionBody);
- _variantField_15 ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
- return _variantField_15;
- }
-
- @override
- int get emptyStatement_fake {
- assert(kind == idl.LinkedNodeKind.emptyStatement);
- _variantField_15 ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
- return _variantField_15;
- }
-
- @override
- int get nullLiteral_fake {
- assert(kind == idl.LinkedNodeKind.nullLiteral);
- _variantField_15 ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
- return _variantField_15;
- }
-
- @override
- int get typeParameter_variance {
- assert(kind == idl.LinkedNodeKind.typeParameter);
- _variantField_15 ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 15, 0);
- return _variantField_15;
- }
-
- @override
idl.LinkedNodeType get expression_type {
assert(kind == idl.LinkedNodeKind.assignmentExpression ||
kind == idl.LinkedNodeKind.asExpression ||
kind == idl.LinkedNodeKind.awaitExpression ||
kind == idl.LinkedNodeKind.binaryExpression ||
- kind == idl.LinkedNodeKind.booleanLiteral ||
kind == idl.LinkedNodeKind.cascadeExpression ||
kind == idl.LinkedNodeKind.conditionalExpression ||
kind == idl.LinkedNodeKind.functionExpressionInvocation ||
@@ -12833,6 +13010,7 @@
kind == idl.LinkedNodeKind.postfixExpression ||
kind == idl.LinkedNodeKind.rethrowExpression ||
kind == idl.LinkedNodeKind.setOrMapLiteral ||
+ kind == idl.LinkedNodeKind.simpleIdentifier ||
kind == idl.LinkedNodeKind.superExpression ||
kind == idl.LinkedNodeKind.symbolLiteral ||
kind == idl.LinkedNodeKind.thisExpression ||
@@ -12878,10 +13056,10 @@
@override
List<idl.LinkedNodeType> get extensionOverride_typeArgumentTypes {
assert(kind == idl.LinkedNodeKind.extensionOverride);
- _variantField_38 ??=
+ _variantField_39 ??=
const fb.ListReader<idl.LinkedNodeType>(_LinkedNodeTypeReader())
- .vTableGet(_bc, _bcOffset, 38, const <idl.LinkedNodeType>[]);
- return _variantField_38;
+ .vTableGet(_bc, _bcOffset, 39, const <idl.LinkedNodeType>[]);
+ return _variantField_39;
}
@override
@@ -12891,14 +13069,6 @@
}
@override
- int get genericFunctionType_id {
- assert(kind == idl.LinkedNodeKind.genericFunctionType);
- _variantField_17 ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 17, 0);
- return _variantField_17;
- }
-
- @override
String get importDirective_prefix {
assert(kind == idl.LinkedNodeKind.importDirective);
_variantField_1 ??=
@@ -13024,33 +13194,8 @@
@override
String get name {
- assert(kind == idl.LinkedNodeKind.classDeclaration ||
- kind == idl.LinkedNodeKind.classTypeAlias ||
- kind == idl.LinkedNodeKind.constructorDeclaration ||
- kind == idl.LinkedNodeKind.enumDeclaration ||
- kind == idl.LinkedNodeKind.enumConstantDeclaration ||
- kind == idl.LinkedNodeKind.extensionDeclaration ||
- kind == idl.LinkedNodeKind.fieldFormalParameter ||
- kind == idl.LinkedNodeKind.functionDeclaration ||
- kind == idl.LinkedNodeKind.functionTypeAlias ||
- kind == idl.LinkedNodeKind.functionTypedFormalParameter ||
- kind == idl.LinkedNodeKind.genericTypeAlias ||
- kind == idl.LinkedNodeKind.methodDeclaration ||
- kind == idl.LinkedNodeKind.mixinDeclaration ||
- kind == idl.LinkedNodeKind.simpleFormalParameter ||
- kind == idl.LinkedNodeKind.simpleIdentifier ||
- kind == idl.LinkedNodeKind.typeParameter ||
- kind == idl.LinkedNodeKind.variableDeclaration);
- _variantField_37 ??=
- const fb.StringReader().vTableGet(_bc, _bcOffset, 37, '');
- return _variantField_37;
- }
-
- @override
- idl.LinkedNodeResolution get resolution {
- _resolution ??=
- const _LinkedNodeResolutionReader().vTableGet(_bc, _bcOffset, 40, null);
- return _resolution;
+ _name ??= const fb.StringReader().vTableGet(_bc, _bcOffset, 37, '');
+ return _name;
}
@override
@@ -13104,6 +13249,16 @@
const fb.StringReader().vTableGet(_bc, _bcOffset, 22, '');
return _variantField_22;
}
+
+ @override
+ int get uriBasedDirective_uriElement {
+ assert(kind == idl.LinkedNodeKind.exportDirective ||
+ kind == idl.LinkedNodeKind.importDirective ||
+ kind == idl.LinkedNodeKind.partDirective);
+ _variantField_19 ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 19, 0);
+ return _variantField_19;
+ }
}
abstract class _LinkedNodeMixin implements idl.LinkedNode {
@@ -13116,8 +13271,8 @@
if (kind != idl.LinkedNodeKind.adjacentStrings) {
_result["kind"] = kind.toString().split('.')[1];
}
- if (resolution != null) {
- _result["resolution"] = resolution.toJson();
+ if (name != '') {
+ _result["name"] = name;
}
if (kind == idl.LinkedNodeKind.adjacentStrings) {
if (adjacentStrings_strings.isNotEmpty) {
@@ -13133,9 +13288,15 @@
_result["annotation_constructorName"] =
annotation_constructorName.toJson();
}
+ if (annotation_element != 0) {
+ _result["annotation_element"] = annotation_element;
+ }
if (annotation_name != null) {
_result["annotation_name"] = annotation_name.toJson();
}
+ if (annotation_substitution != null) {
+ _result["annotation_substitution"] = annotation_substitution.toJson();
+ }
}
if (kind == idl.LinkedNodeKind.argumentList) {
if (argumentList_arguments.isNotEmpty) {
@@ -13182,6 +13343,13 @@
_result["assignmentExpression_rightHandSide"] =
assignmentExpression_rightHandSide.toJson();
}
+ if (assignmentExpression_substitution != null) {
+ _result["assignmentExpression_substitution"] =
+ assignmentExpression_substitution.toJson();
+ }
+ if (assignmentExpression_element != 0) {
+ _result["assignmentExpression_element"] = assignmentExpression_element;
+ }
if (assignmentExpression_operator != idl.UnlinkedTokenType.NOTHING) {
_result["assignmentExpression_operator"] =
assignmentExpression_operator.toString().split('.')[1];
@@ -13212,6 +13380,13 @@
_result["binaryExpression_rightOperand"] =
binaryExpression_rightOperand.toJson();
}
+ if (binaryExpression_substitution != null) {
+ _result["binaryExpression_substitution"] =
+ binaryExpression_substitution.toJson();
+ }
+ if (binaryExpression_element != 0) {
+ _result["binaryExpression_element"] = binaryExpression_element;
+ }
if (binaryExpression_operator != idl.UnlinkedTokenType.NOTHING) {
_result["binaryExpression_operator"] =
binaryExpression_operator.toString().split('.')[1];
@@ -13235,9 +13410,6 @@
if (booleanLiteral_value != false) {
_result["booleanLiteral_value"] = booleanLiteral_value;
}
- if (expression_type != null) {
- _result["expression_type"] = expression_type.toJson();
- }
}
if (kind == idl.LinkedNodeKind.breakStatement) {
if (breakStatement_label != null) {
@@ -13316,9 +13488,6 @@
_result["simplyBoundable_isSimplyBounded"] =
simplyBoundable_isSimplyBounded;
}
- if (name != '') {
- _result["name"] = name;
- }
if (unused11 != null) {
_result["unused11"] = unused11.toJson();
}
@@ -13351,9 +13520,6 @@
_result["simplyBoundable_isSimplyBounded"] =
simplyBoundable_isSimplyBounded;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.comment) {
if (comment_references.isNotEmpty) {
@@ -13457,9 +13623,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
if (constructorFieldInitializer_expression != null) {
@@ -13478,6 +13641,13 @@
if (constructorName_type != null) {
_result["constructorName_type"] = constructorName_type.toJson();
}
+ if (constructorName_substitution != null) {
+ _result["constructorName_substitution"] =
+ constructorName_substitution.toJson();
+ }
+ if (constructorName_element != 0) {
+ _result["constructorName_element"] = constructorName_element;
+ }
}
if (kind == idl.LinkedNodeKind.continueStatement) {
if (continueStatement_label != null) {
@@ -13498,9 +13668,6 @@
}
}
if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
- if (actualType != null) {
- _result["actualType"] = actualType.toJson();
- }
if (defaultFormalParameter_defaultValue != null) {
_result["defaultFormalParameter_defaultValue"] =
defaultFormalParameter_defaultValue.toJson();
@@ -13557,9 +13724,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.enumDeclaration) {
if (enumDeclaration_constants.isNotEmpty) {
@@ -13573,9 +13737,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.exportDirective) {
if (namespaceDirective_combinators.isNotEmpty) {
@@ -13607,6 +13768,9 @@
if (uriBasedDirective_uriContent != '') {
_result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
}
+ if (uriBasedDirective_uriElement != 0) {
+ _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
+ }
}
if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
if (expressionFunctionBody_expression != null) {
@@ -13649,9 +13813,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.extensionOverride) {
if (extensionOverride_extendedType != null) {
@@ -13718,9 +13879,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
if (forEachParts_iterable != null) {
@@ -13809,9 +13967,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
if (functionDeclarationStatement_functionDeclaration != null) {
@@ -13886,9 +14041,6 @@
_result["simplyBoundable_isSimplyBounded"] =
simplyBoundable_isSimplyBounded;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.functionTypedFormalParameter) {
if (actualType != null) {
@@ -13918,9 +14070,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.genericFunctionType) {
if (actualReturnType != null) {
@@ -13934,6 +14083,9 @@
_result["genericFunctionType_returnType"] =
genericFunctionType_returnType.toJson();
}
+ if (genericFunctionType_id != 0) {
+ _result["genericFunctionType_id"] = genericFunctionType_id;
+ }
if (genericFunctionType_formalParameters != null) {
_result["genericFunctionType_formalParameters"] =
genericFunctionType_formalParameters.toJson();
@@ -13941,9 +14093,6 @@
if (genericFunctionType_type != null) {
_result["genericFunctionType_type"] = genericFunctionType_type.toJson();
}
- if (genericFunctionType_id != 0) {
- _result["genericFunctionType_id"] = genericFunctionType_id;
- }
}
if (kind == idl.LinkedNodeKind.genericTypeAlias) {
if (annotatedNode_metadata.isNotEmpty) {
@@ -13968,9 +14117,6 @@
_result["simplyBoundable_isSimplyBounded"] =
simplyBoundable_isSimplyBounded;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.hideCombinator) {
if (informativeId != 0) {
@@ -14044,6 +14190,9 @@
if (uriBasedDirective_uriContent != '') {
_result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
}
+ if (uriBasedDirective_uriElement != 0) {
+ _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
+ }
}
if (kind == idl.LinkedNodeKind.indexExpression) {
if (indexExpression_index != null) {
@@ -14052,6 +14201,13 @@
if (indexExpression_target != null) {
_result["indexExpression_target"] = indexExpression_target.toJson();
}
+ if (indexExpression_substitution != null) {
+ _result["indexExpression_substitution"] =
+ indexExpression_substitution.toJson();
+ }
+ if (indexExpression_element != 0) {
+ _result["indexExpression_element"] = indexExpression_element;
+ }
if (expression_type != null) {
_result["expression_type"] = expression_type.toJson();
}
@@ -14189,9 +14345,6 @@
_result["methodDeclaration_hasOperatorEqualWithParameterTypeFromObject"] =
methodDeclaration_hasOperatorEqualWithParameterTypeFromObject;
}
- if (name != '') {
- _result["name"] = name;
- }
if (topLevelTypeInferenceError != null) {
_result["topLevelTypeInferenceError"] =
topLevelTypeInferenceError.toJson();
@@ -14255,9 +14408,6 @@
_result["mixinDeclaration_superInvokedNames"] =
mixinDeclaration_superInvokedNames;
}
- if (name != '') {
- _result["name"] = name;
- }
}
if (kind == idl.LinkedNodeKind.namedExpression) {
if (namedExpression_expression != null) {
@@ -14318,6 +14468,9 @@
if (uriBasedDirective_uriContent != '') {
_result["uriBasedDirective_uriContent"] = uriBasedDirective_uriContent;
}
+ if (uriBasedDirective_uriElement != 0) {
+ _result["uriBasedDirective_uriElement"] = uriBasedDirective_uriElement;
+ }
}
if (kind == idl.LinkedNodeKind.partOfDirective) {
if (annotatedNode_metadata.isNotEmpty) {
@@ -14340,6 +14493,13 @@
_result["postfixExpression_operand"] =
postfixExpression_operand.toJson();
}
+ if (postfixExpression_substitution != null) {
+ _result["postfixExpression_substitution"] =
+ postfixExpression_substitution.toJson();
+ }
+ if (postfixExpression_element != 0) {
+ _result["postfixExpression_element"] = postfixExpression_element;
+ }
if (postfixExpression_operator != idl.UnlinkedTokenType.NOTHING) {
_result["postfixExpression_operator"] =
postfixExpression_operator.toString().split('.')[1];
@@ -14352,6 +14512,13 @@
if (prefixExpression_operand != null) {
_result["prefixExpression_operand"] = prefixExpression_operand.toJson();
}
+ if (prefixExpression_substitution != null) {
+ _result["prefixExpression_substitution"] =
+ prefixExpression_substitution.toJson();
+ }
+ if (prefixExpression_element != 0) {
+ _result["prefixExpression_element"] = prefixExpression_element;
+ }
if (prefixExpression_operator != idl.UnlinkedTokenType.NOTHING) {
_result["prefixExpression_operator"] =
prefixExpression_operator.toString().split('.')[1];
@@ -14398,6 +14565,14 @@
_result["redirectingConstructorInvocation_constructorName"] =
redirectingConstructorInvocation_constructorName.toJson();
}
+ if (redirectingConstructorInvocation_substitution != null) {
+ _result["redirectingConstructorInvocation_substitution"] =
+ redirectingConstructorInvocation_substitution.toJson();
+ }
+ if (redirectingConstructorInvocation_element != 0) {
+ _result["redirectingConstructorInvocation_element"] =
+ redirectingConstructorInvocation_element;
+ }
}
if (kind == idl.LinkedNodeKind.rethrowExpression) {
if (expression_type != null) {
@@ -14452,17 +14627,21 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
if (topLevelTypeInferenceError != null) {
_result["topLevelTypeInferenceError"] =
topLevelTypeInferenceError.toJson();
}
}
if (kind == idl.LinkedNodeKind.simpleIdentifier) {
- if (name != '') {
- _result["name"] = name;
+ if (simpleIdentifier_substitution != null) {
+ _result["simpleIdentifier_substitution"] =
+ simpleIdentifier_substitution.toJson();
+ }
+ if (simpleIdentifier_element != 0) {
+ _result["simpleIdentifier_element"] = simpleIdentifier_element;
+ }
+ if (expression_type != null) {
+ _result["expression_type"] = expression_type.toJson();
}
}
if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
@@ -14495,6 +14674,14 @@
_result["superConstructorInvocation_constructorName"] =
superConstructorInvocation_constructorName.toJson();
}
+ if (superConstructorInvocation_substitution != null) {
+ _result["superConstructorInvocation_substitution"] =
+ superConstructorInvocation_substitution.toJson();
+ }
+ if (superConstructorInvocation_element != 0) {
+ _result["superConstructorInvocation_element"] =
+ superConstructorInvocation_element;
+ }
}
if (kind == idl.LinkedNodeKind.superExpression) {
if (expression_type != null) {
@@ -14615,9 +14802,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
if (typeParameter_defaultType != null) {
_result["typeParameter_defaultType"] =
typeParameter_defaultType.toJson();
@@ -14649,9 +14833,6 @@
if (informativeId != 0) {
_result["informativeId"] = informativeId;
}
- if (name != '') {
- _result["name"] = name;
- }
if (topLevelTypeInferenceError != null) {
_result["topLevelTypeInferenceError"] =
topLevelTypeInferenceError.toJson();
@@ -14712,17 +14893,19 @@
"adjacentStrings_strings": adjacentStrings_strings,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.annotation) {
return {
"annotation_arguments": annotation_arguments,
"annotation_constructorName": annotation_constructorName,
+ "annotation_element": annotation_element,
"annotation_name": annotation_name,
+ "annotation_substitution": annotation_substitution,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.argumentList) {
@@ -14730,7 +14913,7 @@
"argumentList_arguments": argumentList_arguments,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.asExpression) {
@@ -14740,7 +14923,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.assertInitializer) {
@@ -14749,7 +14932,7 @@
"assertInitializer_message": assertInitializer_message,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.assertStatement) {
@@ -14758,7 +14941,7 @@
"assertStatement_message": assertStatement_message,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.assignmentExpression) {
@@ -14766,11 +14949,13 @@
"assignmentExpression_leftHandSide": assignmentExpression_leftHandSide,
"assignmentExpression_rightHandSide":
assignmentExpression_rightHandSide,
+ "assignmentExpression_substitution": assignmentExpression_substitution,
+ "assignmentExpression_element": assignmentExpression_element,
"assignmentExpression_operator": assignmentExpression_operator,
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.awaitExpression) {
@@ -14779,7 +14964,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.binaryExpression) {
@@ -14787,11 +14972,13 @@
"binaryExpression_invokeType": binaryExpression_invokeType,
"binaryExpression_leftOperand": binaryExpression_leftOperand,
"binaryExpression_rightOperand": binaryExpression_rightOperand,
+ "binaryExpression_substitution": binaryExpression_substitution,
+ "binaryExpression_element": binaryExpression_element,
"binaryExpression_operator": binaryExpression_operator,
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.block) {
@@ -14799,7 +14986,7 @@
"block_statements": block_statements,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.blockFunctionBody) {
@@ -14807,16 +14994,15 @@
"blockFunctionBody_block": blockFunctionBody_block,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.booleanLiteral) {
return {
"booleanLiteral_value": booleanLiteral_value,
- "expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.breakStatement) {
@@ -14824,7 +15010,7 @@
"breakStatement_label": breakStatement_label,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.cascadeExpression) {
@@ -14834,7 +15020,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.catchClause) {
@@ -14845,7 +15031,7 @@
"catchClause_stackTraceParameter": catchClause_stackTraceParameter,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.classDeclaration) {
@@ -14865,7 +15051,6 @@
"kind": kind,
"simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
"name": name,
- "resolution": resolution,
"unused11": unused11,
};
}
@@ -14881,7 +15066,6 @@
"kind": kind,
"simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.comment) {
@@ -14891,7 +15075,7 @@
"comment_type": comment_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.commentReference) {
@@ -14899,7 +15083,7 @@
"commentReference_identifier": commentReference_identifier,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.compilationUnit) {
@@ -14912,7 +15096,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.conditionalExpression) {
@@ -14925,7 +15109,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.configuration) {
@@ -14935,7 +15119,7 @@
"configuration_uri": configuration_uri,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.constructorDeclaration) {
@@ -14952,7 +15136,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.constructorFieldInitializer) {
@@ -14963,16 +15146,18 @@
constructorFieldInitializer_fieldName,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.constructorName) {
return {
"constructorName_name": constructorName_name,
"constructorName_type": constructorName_type,
+ "constructorName_substitution": constructorName_substitution,
+ "constructorName_element": constructorName_element,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.continueStatement) {
@@ -14980,7 +15165,7 @@
"continueStatement_label": continueStatement_label,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.declaredIdentifier) {
@@ -14990,12 +15175,11 @@
"declaredIdentifier_type": declaredIdentifier_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.defaultFormalParameter) {
return {
- "actualType": actualType,
"defaultFormalParameter_defaultValue":
defaultFormalParameter_defaultValue,
"defaultFormalParameter_parameter": defaultFormalParameter_parameter,
@@ -15003,7 +15187,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.doStatement) {
@@ -15012,7 +15196,7 @@
"doStatement_condition": doStatement_condition,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.dottedName) {
@@ -15020,7 +15204,7 @@
"dottedName_components": dottedName_components,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.doubleLiteral) {
@@ -15028,7 +15212,7 @@
"doubleLiteral_value": doubleLiteral_value,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.emptyFunctionBody) {
@@ -15036,7 +15220,7 @@
"emptyFunctionBody_fake": emptyFunctionBody_fake,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.emptyStatement) {
@@ -15044,7 +15228,7 @@
"emptyStatement_fake": emptyStatement_fake,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.enumConstantDeclaration) {
@@ -15054,7 +15238,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.enumDeclaration) {
@@ -15065,7 +15248,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.exportDirective) {
@@ -15078,8 +15260,9 @@
"informativeId": informativeId,
"uriBasedDirective_uri": uriBasedDirective_uri,
"kind": kind,
- "resolution": resolution,
+ "name": name,
"uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+ "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
};
}
if (kind == idl.LinkedNodeKind.expressionFunctionBody) {
@@ -15087,7 +15270,7 @@
"expressionFunctionBody_expression": expressionFunctionBody_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.expressionStatement) {
@@ -15095,7 +15278,7 @@
"expressionStatement_expression": expressionStatement_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.extendsClause) {
@@ -15103,7 +15286,7 @@
"extendsClause_superclass": extendsClause_superclass,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.extensionDeclaration) {
@@ -15118,7 +15301,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.extensionOverride) {
@@ -15131,7 +15313,7 @@
extensionOverride_typeArgumentTypes,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.fieldDeclaration) {
@@ -15141,7 +15323,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.fieldFormalParameter) {
@@ -15158,7 +15340,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.forEachPartsWithDeclaration) {
@@ -15168,7 +15349,7 @@
forEachPartsWithDeclaration_loopVariable,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.forEachPartsWithIdentifier) {
@@ -15178,7 +15359,7 @@
forEachPartsWithIdentifier_identifier,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.forElement) {
@@ -15187,7 +15368,7 @@
"forElement_body": forElement_body,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.forPartsWithDeclarations) {
@@ -15198,7 +15379,7 @@
"forParts_updaters": forParts_updaters,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.forPartsWithExpression) {
@@ -15209,7 +15390,7 @@
"forParts_updaters": forParts_updaters,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.forStatement) {
@@ -15218,7 +15399,7 @@
"forStatement_body": forStatement_body,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.formalParameterList) {
@@ -15226,7 +15407,7 @@
"formalParameterList_parameters": formalParameterList_parameters,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.functionDeclaration) {
@@ -15240,7 +15421,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.functionDeclarationStatement) {
@@ -15249,7 +15429,7 @@
functionDeclarationStatement_functionDeclaration,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.functionExpression) {
@@ -15261,7 +15441,7 @@
"functionExpression_typeParameters": functionExpression_typeParameters,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.functionExpressionInvocation) {
@@ -15275,7 +15455,7 @@
"flags": flags,
"invocationExpression_arguments": invocationExpression_arguments,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.functionTypeAlias) {
@@ -15292,7 +15472,6 @@
"kind": kind,
"simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.functionTypedFormalParameter) {
@@ -15310,7 +15489,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.genericFunctionType) {
@@ -15319,13 +15497,13 @@
"genericFunctionType_typeParameters":
genericFunctionType_typeParameters,
"genericFunctionType_returnType": genericFunctionType_returnType,
+ "genericFunctionType_id": genericFunctionType_id,
"genericFunctionType_formalParameters":
genericFunctionType_formalParameters,
"genericFunctionType_type": genericFunctionType_type,
"flags": flags,
- "genericFunctionType_id": genericFunctionType_id,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.genericTypeAlias) {
@@ -15339,7 +15517,6 @@
"kind": kind,
"simplyBoundable_isSimplyBounded": simplyBoundable_isSimplyBounded,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.hideCombinator) {
@@ -15348,7 +15525,7 @@
"informativeId": informativeId,
"kind": kind,
"names": names,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.ifElement) {
@@ -15358,7 +15535,7 @@
"ifElement_elseElement": ifElement_elseElement,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.ifStatement) {
@@ -15368,7 +15545,7 @@
"ifStatement_thenStatement": ifStatement_thenStatement,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.implementsClause) {
@@ -15376,7 +15553,7 @@
"implementsClause_interfaces": implementsClause_interfaces,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.importDirective) {
@@ -15390,18 +15567,21 @@
"informativeId": informativeId,
"uriBasedDirective_uri": uriBasedDirective_uri,
"kind": kind,
- "resolution": resolution,
+ "name": name,
"uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+ "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
};
}
if (kind == idl.LinkedNodeKind.indexExpression) {
return {
"indexExpression_index": indexExpression_index,
"indexExpression_target": indexExpression_target,
+ "indexExpression_substitution": indexExpression_substitution,
+ "indexExpression_element": indexExpression_element,
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.instanceCreationExpression) {
@@ -15415,7 +15595,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.integerLiteral) {
@@ -15424,7 +15604,7 @@
"flags": flags,
"integerLiteral_value": integerLiteral_value,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.interpolationExpression) {
@@ -15433,7 +15613,7 @@
interpolationExpression_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.interpolationString) {
@@ -15441,7 +15621,7 @@
"flags": flags,
"interpolationString_value": interpolationString_value,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.isExpression) {
@@ -15450,7 +15630,7 @@
"isExpression_type": isExpression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.label) {
@@ -15458,7 +15638,7 @@
"label_label": label_label,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.labeledStatement) {
@@ -15467,7 +15647,7 @@
"labeledStatement_statement": labeledStatement_statement,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.libraryDirective) {
@@ -15477,7 +15657,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.libraryIdentifier) {
@@ -15485,7 +15665,7 @@
"libraryIdentifier_components": libraryIdentifier_components,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.listLiteral) {
@@ -15495,7 +15675,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.mapLiteralEntry) {
@@ -15504,7 +15684,7 @@
"mapLiteralEntry_value": mapLiteralEntry_value,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.methodDeclaration) {
@@ -15522,7 +15702,6 @@
"methodDeclaration_hasOperatorEqualWithParameterTypeFromObject":
methodDeclaration_hasOperatorEqualWithParameterTypeFromObject,
"name": name,
- "resolution": resolution,
"topLevelTypeInferenceError": topLevelTypeInferenceError,
};
}
@@ -15537,7 +15716,7 @@
"flags": flags,
"invocationExpression_arguments": invocationExpression_arguments,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.mixinDeclaration) {
@@ -15556,7 +15735,6 @@
"mixinDeclaration_superInvokedNames":
mixinDeclaration_superInvokedNames,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.namedExpression) {
@@ -15565,7 +15743,7 @@
"namedExpression_name": namedExpression_name,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.nativeClause) {
@@ -15573,7 +15751,7 @@
"nativeClause_name": nativeClause_name,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.nativeFunctionBody) {
@@ -15581,7 +15759,7 @@
"nativeFunctionBody_stringLiteral": nativeFunctionBody_stringLiteral,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.nullLiteral) {
@@ -15590,7 +15768,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.onClause) {
@@ -15598,7 +15776,7 @@
"onClause_superclassConstraints": onClause_superclassConstraints,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.parenthesizedExpression) {
@@ -15608,7 +15786,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.partDirective) {
@@ -15618,8 +15796,9 @@
"informativeId": informativeId,
"uriBasedDirective_uri": uriBasedDirective_uri,
"kind": kind,
- "resolution": resolution,
+ "name": name,
"uriBasedDirective_uriContent": uriBasedDirective_uriContent,
+ "uriBasedDirective_uriElement": uriBasedDirective_uriElement,
};
}
if (kind == idl.LinkedNodeKind.partOfDirective) {
@@ -15630,27 +15809,31 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.postfixExpression) {
return {
"postfixExpression_operand": postfixExpression_operand,
+ "postfixExpression_substitution": postfixExpression_substitution,
+ "postfixExpression_element": postfixExpression_element,
"postfixExpression_operator": postfixExpression_operator,
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.prefixExpression) {
return {
"prefixExpression_operand": prefixExpression_operand,
+ "prefixExpression_substitution": prefixExpression_substitution,
+ "prefixExpression_element": prefixExpression_element,
"prefixExpression_operator": prefixExpression_operator,
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.prefixedIdentifier) {
@@ -15660,7 +15843,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.propertyAccess) {
@@ -15671,7 +15854,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.redirectingConstructorInvocation) {
@@ -15680,9 +15863,13 @@
redirectingConstructorInvocation_arguments,
"redirectingConstructorInvocation_constructorName":
redirectingConstructorInvocation_constructorName,
+ "redirectingConstructorInvocation_substitution":
+ redirectingConstructorInvocation_substitution,
+ "redirectingConstructorInvocation_element":
+ redirectingConstructorInvocation_element,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.rethrowExpression) {
@@ -15690,7 +15877,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.returnStatement) {
@@ -15698,7 +15885,7 @@
"returnStatement_expression": returnStatement_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.setOrMapLiteral) {
@@ -15708,7 +15895,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.showCombinator) {
@@ -15717,7 +15904,7 @@
"informativeId": informativeId,
"kind": kind,
"names": names,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.simpleFormalParameter) {
@@ -15730,16 +15917,17 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
"topLevelTypeInferenceError": topLevelTypeInferenceError,
};
}
if (kind == idl.LinkedNodeKind.simpleIdentifier) {
return {
+ "simpleIdentifier_substitution": simpleIdentifier_substitution,
+ "simpleIdentifier_element": simpleIdentifier_element,
+ "expression_type": expression_type,
"flags": flags,
"kind": kind,
"name": name,
- "resolution": resolution,
};
}
if (kind == idl.LinkedNodeKind.simpleStringLiteral) {
@@ -15747,7 +15935,7 @@
"simpleStringLiteral_value": simpleStringLiteral_value,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.spreadElement) {
@@ -15755,7 +15943,7 @@
"spreadElement_expression": spreadElement_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
"spreadElement_spreadOperator": spreadElement_spreadOperator,
};
}
@@ -15764,7 +15952,7 @@
"stringInterpolation_elements": stringInterpolation_elements,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.superConstructorInvocation) {
@@ -15773,9 +15961,13 @@
superConstructorInvocation_arguments,
"superConstructorInvocation_constructorName":
superConstructorInvocation_constructorName,
+ "superConstructorInvocation_substitution":
+ superConstructorInvocation_substitution,
+ "superConstructorInvocation_element":
+ superConstructorInvocation_element,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.superExpression) {
@@ -15783,7 +15975,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.switchCase) {
@@ -15793,7 +15985,7 @@
"switchMember_labels": switchMember_labels,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.switchDefault) {
@@ -15802,7 +15994,7 @@
"switchMember_labels": switchMember_labels,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.switchStatement) {
@@ -15811,7 +16003,7 @@
"switchStatement_expression": switchStatement_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.symbolLiteral) {
@@ -15820,7 +16012,7 @@
"flags": flags,
"kind": kind,
"names": names,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.thisExpression) {
@@ -15828,7 +16020,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.throwExpression) {
@@ -15837,7 +16029,7 @@
"expression_type": expression_type,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.topLevelVariableDeclaration) {
@@ -15848,7 +16040,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.tryStatement) {
@@ -15858,7 +16050,7 @@
"tryStatement_finallyBlock": tryStatement_finallyBlock,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.typeArgumentList) {
@@ -15866,7 +16058,7 @@
"typeArgumentList_arguments": typeArgumentList_arguments,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.typeName) {
@@ -15875,7 +16067,7 @@
"typeName_name": typeName_name,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
"typeName_type": typeName_type,
};
}
@@ -15888,7 +16080,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
"typeParameter_defaultType": typeParameter_defaultType,
};
}
@@ -15897,7 +16088,7 @@
"typeParameterList_typeParameters": typeParameterList_typeParameters,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.variableDeclaration) {
@@ -15910,7 +16101,6 @@
"informativeId": informativeId,
"kind": kind,
"name": name,
- "resolution": resolution,
"topLevelTypeInferenceError": topLevelTypeInferenceError,
};
}
@@ -15922,7 +16112,7 @@
"flags": flags,
"informativeId": informativeId,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.variableDeclarationStatement) {
@@ -15931,7 +16121,7 @@
variableDeclarationStatement_variables,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.whileStatement) {
@@ -15940,7 +16130,7 @@
"whileStatement_condition": whileStatement_condition,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.withClause) {
@@ -15948,7 +16138,7 @@
"withClause_mixinTypes": withClause_mixinTypes,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
if (kind == idl.LinkedNodeKind.yieldStatement) {
@@ -15956,7 +16146,7 @@
"yieldStatement_expression": yieldStatement_expression,
"flags": flags,
"kind": kind,
- "resolution": resolution,
+ "name": name,
};
}
throw StateError("Unexpected $kind");
@@ -16471,179 +16661,6 @@
String toString() => convert.json.encode(toJson());
}
-class LinkedNodeResolutionBuilder extends Object
- with _LinkedNodeResolutionMixin
- implements idl.LinkedNodeResolution {
- List<int> _elements;
- List<LinkedNodeTypeSubstitutionBuilder> _substitutions;
- List<LinkedNodeTypeBuilder> _types;
-
- @override
- List<int> get elements => _elements ??= <int>[];
-
- set elements(List<int> value) {
- assert(value == null || value.every((e) => e >= 0));
- this._elements = value;
- }
-
- @override
- List<LinkedNodeTypeSubstitutionBuilder> get substitutions =>
- _substitutions ??= <LinkedNodeTypeSubstitutionBuilder>[];
-
- set substitutions(List<LinkedNodeTypeSubstitutionBuilder> value) {
- this._substitutions = value;
- }
-
- @override
- List<LinkedNodeTypeBuilder> get types => _types ??= <LinkedNodeTypeBuilder>[];
-
- set types(List<LinkedNodeTypeBuilder> value) {
- this._types = value;
- }
-
- LinkedNodeResolutionBuilder(
- {List<int> elements,
- List<LinkedNodeTypeSubstitutionBuilder> substitutions,
- List<LinkedNodeTypeBuilder> types})
- : _elements = elements,
- _substitutions = substitutions,
- _types = types;
-
- /// Flush [informative] data recursively.
- void flushInformative() {
- _substitutions?.forEach((b) => b.flushInformative());
- _types?.forEach((b) => b.flushInformative());
- }
-
- /// Accumulate non-[informative] data into [signature].
- void collectApiSignature(api_sig.ApiSignature signature) {
- if (this._elements == null) {
- signature.addInt(0);
- } else {
- signature.addInt(this._elements.length);
- for (var x in this._elements) {
- signature.addInt(x);
- }
- }
- if (this._substitutions == null) {
- signature.addInt(0);
- } else {
- signature.addInt(this._substitutions.length);
- for (var x in this._substitutions) {
- x?.collectApiSignature(signature);
- }
- }
- if (this._types == null) {
- signature.addInt(0);
- } else {
- signature.addInt(this._types.length);
- for (var x in this._types) {
- x?.collectApiSignature(signature);
- }
- }
- }
-
- fb.Offset finish(fb.Builder fbBuilder) {
- fb.Offset offset_elements;
- fb.Offset offset_substitutions;
- fb.Offset offset_types;
- if (!(_elements == null || _elements.isEmpty)) {
- offset_elements = fbBuilder.writeListUint32(_elements);
- }
- if (!(_substitutions == null || _substitutions.isEmpty)) {
- offset_substitutions = fbBuilder
- .writeList(_substitutions.map((b) => b.finish(fbBuilder)).toList());
- }
- if (!(_types == null || _types.isEmpty)) {
- offset_types =
- fbBuilder.writeList(_types.map((b) => b.finish(fbBuilder)).toList());
- }
- fbBuilder.startTable();
- if (offset_elements != null) {
- fbBuilder.addOffset(0, offset_elements);
- }
- if (offset_substitutions != null) {
- fbBuilder.addOffset(1, offset_substitutions);
- }
- if (offset_types != null) {
- fbBuilder.addOffset(2, offset_types);
- }
- return fbBuilder.endTable();
- }
-}
-
-class _LinkedNodeResolutionReader
- extends fb.TableReader<_LinkedNodeResolutionImpl> {
- const _LinkedNodeResolutionReader();
-
- @override
- _LinkedNodeResolutionImpl createObject(fb.BufferContext bc, int offset) =>
- _LinkedNodeResolutionImpl(bc, offset);
-}
-
-class _LinkedNodeResolutionImpl extends Object
- with _LinkedNodeResolutionMixin
- implements idl.LinkedNodeResolution {
- final fb.BufferContext _bc;
- final int _bcOffset;
-
- _LinkedNodeResolutionImpl(this._bc, this._bcOffset);
-
- List<int> _elements;
- List<idl.LinkedNodeTypeSubstitution> _substitutions;
- List<idl.LinkedNodeType> _types;
-
- @override
- List<int> get elements {
- _elements ??=
- const fb.Uint32ListReader().vTableGet(_bc, _bcOffset, 0, const <int>[]);
- return _elements;
- }
-
- @override
- List<idl.LinkedNodeTypeSubstitution> get substitutions {
- _substitutions ??= const fb.ListReader<idl.LinkedNodeTypeSubstitution>(
- _LinkedNodeTypeSubstitutionReader())
- .vTableGet(_bc, _bcOffset, 1, const <idl.LinkedNodeTypeSubstitution>[]);
- return _substitutions;
- }
-
- @override
- List<idl.LinkedNodeType> get types {
- _types ??= const fb.ListReader<idl.LinkedNodeType>(_LinkedNodeTypeReader())
- .vTableGet(_bc, _bcOffset, 2, const <idl.LinkedNodeType>[]);
- return _types;
- }
-}
-
-abstract class _LinkedNodeResolutionMixin implements idl.LinkedNodeResolution {
- @override
- Map<String, Object> toJson() {
- Map<String, Object> _result = <String, Object>{};
- if (elements.isNotEmpty) {
- _result["elements"] = elements;
- }
- if (substitutions.isNotEmpty) {
- _result["substitutions"] =
- substitutions.map((_value) => _value.toJson()).toList();
- }
- if (types.isNotEmpty) {
- _result["types"] = types.map((_value) => _value.toJson()).toList();
- }
- return _result;
- }
-
- @override
- Map<String, Object> toMap() => {
- "elements": elements,
- "substitutions": substitutions,
- "types": types,
- };
-
- @override
- String toString() => convert.json.encode(toJson());
-}
-
class LinkedNodeTypeBuilder extends Object
with _LinkedNodeTypeMixin
implements idl.LinkedNodeType {
@@ -16656,6 +16673,7 @@
List<LinkedNodeTypeBuilder> _interfaceTypeArguments;
idl.LinkedNodeTypeKind _kind;
idl.EntityRefNullabilitySuffix _nullabilitySuffix;
+ int _typeParameterElement;
int _typeParameterId;
@override
@@ -16732,6 +16750,14 @@
}
@override
+ int get typeParameterElement => _typeParameterElement ??= 0;
+
+ set typeParameterElement(int value) {
+ assert(value == null || value >= 0);
+ this._typeParameterElement = value;
+ }
+
+ @override
int get typeParameterId => _typeParameterId ??= 0;
set typeParameterId(int value) {
@@ -16749,6 +16775,7 @@
List<LinkedNodeTypeBuilder> interfaceTypeArguments,
idl.LinkedNodeTypeKind kind,
idl.EntityRefNullabilitySuffix nullabilitySuffix,
+ int typeParameterElement,
int typeParameterId})
: _functionFormalParameters = functionFormalParameters,
_functionReturnType = functionReturnType,
@@ -16759,6 +16786,7 @@
_interfaceTypeArguments = interfaceTypeArguments,
_kind = kind,
_nullabilitySuffix = nullabilitySuffix,
+ _typeParameterElement = typeParameterElement,
_typeParameterId = typeParameterId;
/// Flush [informative] data recursively.
@@ -16800,6 +16828,7 @@
}
}
signature.addInt(this._kind == null ? 0 : this._kind.index);
+ signature.addInt(this._typeParameterElement ?? 0);
signature.addInt(this._typeParameterId ?? 0);
signature.addInt(
this._nullabilitySuffix == null ? 0 : this._nullabilitySuffix.index);
@@ -16851,10 +16880,10 @@
fbBuilder.addOffset(1, offset_functionReturnType);
}
if (_functionTypedef != null && _functionTypedef != 0) {
- fbBuilder.addUint32(8, _functionTypedef);
+ fbBuilder.addUint32(9, _functionTypedef);
}
if (offset_functionTypedefTypeArguments != null) {
- fbBuilder.addOffset(9, offset_functionTypedefTypeArguments);
+ fbBuilder.addOffset(10, offset_functionTypedefTypeArguments);
}
if (offset_functionTypeParameters != null) {
fbBuilder.addOffset(2, offset_functionTypeParameters);
@@ -16870,10 +16899,13 @@
}
if (_nullabilitySuffix != null &&
_nullabilitySuffix != idl.EntityRefNullabilitySuffix.starOrIrrelevant) {
- fbBuilder.addUint8(7, _nullabilitySuffix.index);
+ fbBuilder.addUint8(8, _nullabilitySuffix.index);
+ }
+ if (_typeParameterElement != null && _typeParameterElement != 0) {
+ fbBuilder.addUint32(6, _typeParameterElement);
}
if (_typeParameterId != null && _typeParameterId != 0) {
- fbBuilder.addUint32(6, _typeParameterId);
+ fbBuilder.addUint32(7, _typeParameterId);
}
return fbBuilder.endTable();
}
@@ -16904,6 +16936,7 @@
List<idl.LinkedNodeType> _interfaceTypeArguments;
idl.LinkedNodeTypeKind _kind;
idl.EntityRefNullabilitySuffix _nullabilitySuffix;
+ int _typeParameterElement;
int _typeParameterId;
@override
@@ -16926,7 +16959,7 @@
@override
int get functionTypedef {
_functionTypedef ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 8, 0);
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 9, 0);
return _functionTypedef;
}
@@ -16934,7 +16967,7 @@
List<idl.LinkedNodeType> get functionTypedefTypeArguments {
_functionTypedefTypeArguments ??=
const fb.ListReader<idl.LinkedNodeType>(_LinkedNodeTypeReader())
- .vTableGet(_bc, _bcOffset, 9, const <idl.LinkedNodeType>[]);
+ .vTableGet(_bc, _bcOffset, 10, const <idl.LinkedNodeType>[]);
return _functionTypedefTypeArguments;
}
@@ -16972,14 +17005,21 @@
@override
idl.EntityRefNullabilitySuffix get nullabilitySuffix {
_nullabilitySuffix ??= const _EntityRefNullabilitySuffixReader().vTableGet(
- _bc, _bcOffset, 7, idl.EntityRefNullabilitySuffix.starOrIrrelevant);
+ _bc, _bcOffset, 8, idl.EntityRefNullabilitySuffix.starOrIrrelevant);
return _nullabilitySuffix;
}
@override
+ int get typeParameterElement {
+ _typeParameterElement ??=
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 6, 0);
+ return _typeParameterElement;
+ }
+
+ @override
int get typeParameterId {
_typeParameterId ??=
- const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 6, 0);
+ const fb.Uint32Reader().vTableGet(_bc, _bcOffset, 7, 0);
return _typeParameterId;
}
}
@@ -17020,6 +17060,9 @@
if (nullabilitySuffix != idl.EntityRefNullabilitySuffix.starOrIrrelevant) {
_result["nullabilitySuffix"] = nullabilitySuffix.toString().split('.')[1];
}
+ if (typeParameterElement != 0) {
+ _result["typeParameterElement"] = typeParameterElement;
+ }
if (typeParameterId != 0) {
_result["typeParameterId"] = typeParameterId;
}
@@ -17037,6 +17080,7 @@
"interfaceTypeArguments": interfaceTypeArguments,
"kind": kind,
"nullabilitySuffix": nullabilitySuffix,
+ "typeParameterElement": typeParameterElement,
"typeParameterId": typeParameterId,
};
diff --git a/pkg/analyzer/lib/src/summary/format.fbs b/pkg/analyzer/lib/src/summary/format.fbs
index b20e97d..e9c6fe6 100644
--- a/pkg/analyzer/lib/src/summary/format.fbs
+++ b/pkg/analyzer/lib/src/summary/format.fbs
@@ -422,8 +422,6 @@
never,
- null_,
-
typeParameter,
void_
@@ -1090,8 +1088,14 @@
variantField_7:LinkedNode (id: 7);
+ variantField_17:uint (id: 17);
+
variantField_8:LinkedNode (id: 8);
+ variantField_38:LinkedNodeTypeSubstitution (id: 38);
+
+ variantField_15:uint (id: 15);
+
variantField_28:UnlinkedTokenType (id: 28);
variantField_27:bool (id: 27);
@@ -1110,10 +1114,10 @@
variantField_3:[LinkedNode] (id: 3);
- variantField_19:[uint] (id: 19);
+ variantField_41:[uint] (id: 41);
/// The language version information.
- variantField_39:LinkedLibraryLanguageVersion (id: 39);
+ variantField_40:LinkedLibraryLanguageVersion (id: 40);
variantField_10:LinkedNode (id: 10);
@@ -1121,18 +1125,14 @@
variantField_21:double (id: 21);
- variantField_15:uint (id: 15);
-
variantField_25:LinkedNodeType (id: 25);
variantField_20:string (id: 20);
- variantField_38:[LinkedNodeType] (id: 38);
+ variantField_39:[LinkedNodeType] (id: 39);
flags:uint (id: 18);
- variantField_17:uint (id: 17);
-
variantField_1:string (id: 1);
variantField_36:uint (id: 36);
@@ -1149,9 +1149,7 @@
variantField_34:[string] (id: 34);
- variantField_37:string (id: 37);
-
- resolution:LinkedNodeResolution (id: 40);
+ name:string (id: 37);
variantField_35:UnlinkedTokenType (id: 35);
@@ -1162,6 +1160,8 @@
variantField_11:LinkedNode (id: 11);
variantField_22:string (id: 22);
+
+ variantField_19:uint (id: 19);
}
/// Information about a group of libraries linked together, for example because
@@ -1195,17 +1195,6 @@
parent:[uint] (id: 0);
}
-/// Resolution information for the whole node, as the sequence of elements
-/// and types for sub-nodes, which the writer and reader visit in the same
-/// order.
-table LinkedNodeResolution {
- elements:[uint] (id: 0);
-
- substitutions:[LinkedNodeTypeSubstitution] (id: 1);
-
- types:[LinkedNodeType] (id: 2);
-}
-
/// Information about a Dart type.
table LinkedNodeType {
functionFormalParameters:[LinkedNodeTypeFormalParameter] (id: 0);
@@ -1213,9 +1202,9 @@
functionReturnType:LinkedNodeType (id: 1);
/// The typedef this function type is created for.
- functionTypedef:uint (id: 8);
+ functionTypedef:uint (id: 9);
- functionTypedefTypeArguments:[LinkedNodeType] (id: 9);
+ functionTypedefTypeArguments:[LinkedNodeType] (id: 10);
functionTypeParameters:[LinkedNodeTypeTypeParameter] (id: 2);
@@ -1226,9 +1215,11 @@
kind:LinkedNodeTypeKind (id: 5);
- nullabilitySuffix:EntityRefNullabilitySuffix (id: 7);
+ nullabilitySuffix:EntityRefNullabilitySuffix (id: 8);
- typeParameterId:uint (id: 6);
+ typeParameterElement:uint (id: 6);
+
+ typeParameterId:uint (id: 7);
}
/// Information about a formal parameter in a function type.
diff --git a/pkg/analyzer/lib/src/summary/idl.dart b/pkg/analyzer/lib/src/summary/idl.dart
index b8d7f63..4b84de9 100644
--- a/pkg/analyzer/lib/src/summary/idl.dart
+++ b/pkg/analyzer/lib/src/summary/idl.dart
@@ -666,7 +666,6 @@
/// The explicit or inferred type of a variable.
@VariantId(24, variantList: [
- LinkedNodeKind.defaultFormalParameter,
LinkedNodeKind.fieldFormalParameter,
LinkedNodeKind.functionTypedFormalParameter,
LinkedNodeKind.simpleFormalParameter,
@@ -709,9 +708,15 @@
@VariantId(7, variant: LinkedNodeKind.annotation)
LinkedNode get annotation_constructorName;
+ @VariantId(17, variant: LinkedNodeKind.annotation)
+ int get annotation_element;
+
@VariantId(8, variant: LinkedNodeKind.annotation)
LinkedNode get annotation_name;
+ @VariantId(38, variant: LinkedNodeKind.annotation)
+ LinkedNodeTypeSubstitution get annotation_substitution;
+
@VariantId(2, variant: LinkedNodeKind.argumentList)
List<LinkedNode> get argumentList_arguments;
@@ -733,6 +738,9 @@
@VariantId(7, variant: LinkedNodeKind.assertStatement)
LinkedNode get assertStatement_message;
+ @VariantId(15, variant: LinkedNodeKind.assignmentExpression)
+ int get assignmentExpression_element;
+
@VariantId(6, variant: LinkedNodeKind.assignmentExpression)
LinkedNode get assignmentExpression_leftHandSide;
@@ -742,9 +750,15 @@
@VariantId(7, variant: LinkedNodeKind.assignmentExpression)
LinkedNode get assignmentExpression_rightHandSide;
+ @VariantId(38, variant: LinkedNodeKind.assignmentExpression)
+ LinkedNodeTypeSubstitution get assignmentExpression_substitution;
+
@VariantId(6, variant: LinkedNodeKind.awaitExpression)
LinkedNode get awaitExpression_expression;
+ @VariantId(15, variant: LinkedNodeKind.binaryExpression)
+ int get binaryExpression_element;
+
@VariantId(24, variant: LinkedNodeKind.binaryExpression)
LinkedNodeType get binaryExpression_invokeType;
@@ -757,6 +771,9 @@
@VariantId(7, variant: LinkedNodeKind.binaryExpression)
LinkedNode get binaryExpression_rightOperand;
+ @VariantId(38, variant: LinkedNodeKind.binaryExpression)
+ LinkedNodeTypeSubstitution get binaryExpression_substitution;
+
@VariantId(2, variant: LinkedNodeKind.block)
List<LinkedNode> get block_statements;
@@ -847,11 +864,11 @@
@VariantId(3, variant: LinkedNodeKind.compilationUnit)
List<LinkedNode> get compilationUnit_directives;
- @VariantId(19, variant: LinkedNodeKind.compilationUnit)
+ @VariantId(41, variant: LinkedNodeKind.compilationUnit)
List<int> get compilationUnit_featureSet;
/// The language version information.
- @VariantId(39, variant: LinkedNodeKind.compilationUnit)
+ @VariantId(40, variant: LinkedNodeKind.compilationUnit)
LinkedLibraryLanguageVersion get compilationUnit_languageVersion;
@VariantId(6, variant: LinkedNodeKind.compilationUnit)
@@ -896,9 +913,15 @@
@VariantId(7, variant: LinkedNodeKind.constructorFieldInitializer)
LinkedNode get constructorFieldInitializer_fieldName;
+ @VariantId(15, variant: LinkedNodeKind.constructorName)
+ int get constructorName_element;
+
@VariantId(6, variant: LinkedNodeKind.constructorName)
LinkedNode get constructorName_name;
+ @VariantId(38, variant: LinkedNodeKind.constructorName)
+ LinkedNodeTypeSubstitution get constructorName_substitution;
+
@VariantId(7, variant: LinkedNodeKind.constructorName)
LinkedNode get constructorName_type;
@@ -946,7 +969,6 @@
LinkedNodeKind.asExpression,
LinkedNodeKind.awaitExpression,
LinkedNodeKind.binaryExpression,
- LinkedNodeKind.booleanLiteral,
LinkedNodeKind.cascadeExpression,
LinkedNodeKind.conditionalExpression,
LinkedNodeKind.functionExpressionInvocation,
@@ -963,6 +985,7 @@
LinkedNodeKind.postfixExpression,
LinkedNodeKind.rethrowExpression,
LinkedNodeKind.setOrMapLiteral,
+ LinkedNodeKind.simpleIdentifier,
LinkedNodeKind.superExpression,
LinkedNodeKind.symbolLiteral,
LinkedNodeKind.thisExpression,
@@ -1003,7 +1026,7 @@
@VariantId(8, variant: LinkedNodeKind.extensionOverride)
LinkedNode get extensionOverride_typeArguments;
- @VariantId(38, variant: LinkedNodeKind.extensionOverride)
+ @VariantId(39, variant: LinkedNodeKind.extensionOverride)
List<LinkedNodeType> get extensionOverride_typeArgumentTypes;
@VariantId(6, variant: LinkedNodeKind.fieldDeclaration)
@@ -1150,9 +1173,15 @@
@VariantId(1, variant: LinkedNodeKind.importDirective)
String get importDirective_prefix;
+ @VariantId(15, variant: LinkedNodeKind.indexExpression)
+ int get indexExpression_element;
+
@VariantId(6, variant: LinkedNodeKind.indexExpression)
LinkedNode get indexExpression_index;
+ @VariantId(38, variant: LinkedNodeKind.indexExpression)
+ LinkedNodeTypeSubstitution get indexExpression_substitution;
+
@VariantId(7, variant: LinkedNodeKind.indexExpression)
LinkedNode get indexExpression_target;
@@ -1294,25 +1323,7 @@
@VariantId(34, variant: LinkedNodeKind.mixinDeclaration)
List<String> get mixinDeclaration_superInvokedNames;
- @VariantId(37, variantList: [
- LinkedNodeKind.classDeclaration,
- LinkedNodeKind.classTypeAlias,
- LinkedNodeKind.constructorDeclaration,
- LinkedNodeKind.enumDeclaration,
- LinkedNodeKind.enumConstantDeclaration,
- LinkedNodeKind.extensionDeclaration,
- LinkedNodeKind.fieldFormalParameter,
- LinkedNodeKind.functionDeclaration,
- LinkedNodeKind.functionTypeAlias,
- LinkedNodeKind.functionTypedFormalParameter,
- LinkedNodeKind.genericTypeAlias,
- LinkedNodeKind.methodDeclaration,
- LinkedNodeKind.mixinDeclaration,
- LinkedNodeKind.simpleFormalParameter,
- LinkedNodeKind.simpleIdentifier,
- LinkedNodeKind.typeParameter,
- LinkedNodeKind.variableDeclaration,
- ])
+ @Id(37)
String get name;
@VariantId(6, variant: LinkedNodeKind.namedExpression)
@@ -1374,24 +1385,36 @@
@VariantId(7, variant: LinkedNodeKind.partOfDirective)
LinkedNode get partOfDirective_uri;
+ @VariantId(15, variant: LinkedNodeKind.postfixExpression)
+ int get postfixExpression_element;
+
@VariantId(6, variant: LinkedNodeKind.postfixExpression)
LinkedNode get postfixExpression_operand;
@VariantId(28, variant: LinkedNodeKind.postfixExpression)
UnlinkedTokenType get postfixExpression_operator;
+ @VariantId(38, variant: LinkedNodeKind.postfixExpression)
+ LinkedNodeTypeSubstitution get postfixExpression_substitution;
+
@VariantId(6, variant: LinkedNodeKind.prefixedIdentifier)
LinkedNode get prefixedIdentifier_identifier;
@VariantId(7, variant: LinkedNodeKind.prefixedIdentifier)
LinkedNode get prefixedIdentifier_prefix;
+ @VariantId(15, variant: LinkedNodeKind.prefixExpression)
+ int get prefixExpression_element;
+
@VariantId(6, variant: LinkedNodeKind.prefixExpression)
LinkedNode get prefixExpression_operand;
@VariantId(28, variant: LinkedNodeKind.prefixExpression)
UnlinkedTokenType get prefixExpression_operator;
+ @VariantId(38, variant: LinkedNodeKind.prefixExpression)
+ LinkedNodeTypeSubstitution get prefixExpression_substitution;
+
@VariantId(28, variant: LinkedNodeKind.propertyAccess)
UnlinkedTokenType get propertyAccess_operator;
@@ -1407,8 +1430,11 @@
@VariantId(7, variant: LinkedNodeKind.redirectingConstructorInvocation)
LinkedNode get redirectingConstructorInvocation_constructorName;
- @Id(40)
- LinkedNodeResolution get resolution;
+ @VariantId(15, variant: LinkedNodeKind.redirectingConstructorInvocation)
+ int get redirectingConstructorInvocation_element;
+
+ @VariantId(38, variant: LinkedNodeKind.redirectingConstructorInvocation)
+ LinkedNodeTypeSubstitution get redirectingConstructorInvocation_substitution;
@VariantId(6, variant: LinkedNodeKind.returnStatement)
LinkedNode get returnStatement_expression;
@@ -1419,6 +1445,12 @@
@VariantId(6, variant: LinkedNodeKind.simpleFormalParameter)
LinkedNode get simpleFormalParameter_type;
+ @VariantId(15, variant: LinkedNodeKind.simpleIdentifier)
+ int get simpleIdentifier_element;
+
+ @VariantId(38, variant: LinkedNodeKind.simpleIdentifier)
+ LinkedNodeTypeSubstitution get simpleIdentifier_substitution;
+
@VariantId(20, variant: LinkedNodeKind.simpleStringLiteral)
String get simpleStringLiteral_value;
@@ -1446,6 +1478,12 @@
@VariantId(7, variant: LinkedNodeKind.superConstructorInvocation)
LinkedNode get superConstructorInvocation_constructorName;
+ @VariantId(15, variant: LinkedNodeKind.superConstructorInvocation)
+ int get superConstructorInvocation_element;
+
+ @VariantId(38, variant: LinkedNodeKind.superConstructorInvocation)
+ LinkedNodeTypeSubstitution get superConstructorInvocation_substitution;
+
@VariantId(6, variant: LinkedNodeKind.switchCase)
LinkedNode get switchCase_expression;
@@ -1544,6 +1582,13 @@
])
String get uriBasedDirective_uriContent;
+ @VariantId(19, variantList: [
+ LinkedNodeKind.exportDirective,
+ LinkedNodeKind.importDirective,
+ LinkedNodeKind.partDirective,
+ ])
+ int get uriBasedDirective_uriElement;
+
@VariantId(6, variant: LinkedNodeKind.variableDeclaration)
LinkedNode get variableDeclaration_initializer;
@@ -1748,20 +1793,6 @@
List<int> get parent;
}
-/// Resolution information for the whole node, as the sequence of elements
-/// and types for sub-nodes, which the writer and reader visit in the same
-/// order.
-abstract class LinkedNodeResolution extends base.SummaryClass {
- @Id(0)
- List<int> get elements;
-
- @Id(1)
- List<LinkedNodeTypeSubstitution> get substitutions;
-
- @Id(2)
- List<LinkedNodeType> get types;
-}
-
/// Information about a Dart type.
abstract class LinkedNodeType extends base.SummaryClass {
@Id(0)
@@ -1771,10 +1802,10 @@
LinkedNodeType get functionReturnType;
/// The typedef this function type is created for.
- @Id(8)
+ @Id(9)
int get functionTypedef;
- @Id(9)
+ @Id(10)
List<LinkedNodeType> get functionTypedefTypeArguments;
@Id(2)
@@ -1790,10 +1821,13 @@
@Id(5)
LinkedNodeTypeKind get kind;
- @Id(7)
+ @Id(8)
EntityRefNullabilitySuffix get nullabilitySuffix;
@Id(6)
+ int get typeParameterElement;
+
+ @Id(7)
int get typeParameterId;
}
@@ -1815,7 +1849,6 @@
function,
interface,
never,
- null_,
typeParameter,
void_
}
diff --git a/pkg/analyzer/lib/src/summary2/apply_resolution.dart b/pkg/analyzer/lib/src/summary2/apply_resolution.dart
deleted file mode 100644
index e24a642..0000000
--- a/pkg/analyzer/lib/src/summary2/apply_resolution.dart
+++ /dev/null
@@ -1,852 +0,0 @@
-// Copyright (c) 2020, 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.
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/ast/ast.dart';
-import 'package:analyzer/src/dart/element/element.dart';
-import 'package:analyzer/src/dart/element/member.dart';
-import 'package:analyzer/src/dart/element/type_algebra.dart';
-import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary2/ast_binary_flags.dart';
-import 'package:analyzer/src/summary2/lazy_ast.dart';
-import 'package:analyzer/src/summary2/linked_unit_context.dart';
-
-class ApplyResolutionVisitor extends ThrowingAstVisitor<void> {
- final LinkedUnitContext _unitContext;
- final LinkedNodeResolution _resolution;
-
- int _elementPtr = 0;
- int _typePtr = 0;
-
- ApplyResolutionVisitor(this._unitContext, this._resolution);
-
- void addParentTypeParameters(AstNode node) {
- var enclosing = node.parent;
- if (enclosing is ClassOrMixinDeclaration) {
- var typeParameterList = enclosing.typeParameters;
- if (typeParameterList == null) return;
-
- for (var typeParameter in typeParameterList.typeParameters) {
- var element = typeParameter.declaredElement;
- _unitContext.typeParameterStack.add(element);
- }
- } else if (enclosing is ExtensionDeclaration) {
- // TODO
- var typeParameterList = enclosing.typeParameters;
- if (typeParameterList == null) return;
-
- for (var typeParameter in typeParameterList.typeParameters) {
- var element = typeParameter.declaredElement;
- _unitContext.typeParameterStack.add(element);
- }
- } else if (enclosing is VariableDeclarationList) {
- var enclosing2 = enclosing.parent;
- if (enclosing2 is FieldDeclaration) {
- return addParentTypeParameters(enclosing2);
- } else if (enclosing2 is TopLevelVariableDeclaration) {
- return;
- } else {
- throw UnimplementedError('${enclosing2.runtimeType}');
- }
- } else {
- throw UnimplementedError('${enclosing.runtimeType}');
- }
- }
-
- @override
- void visitAdjacentStrings(AdjacentStrings node) {
- node.strings.accept(this);
- // TODO(scheglov) type?
- }
-
- @override
- void visitAnnotation(Annotation node) {
- node.name.accept(this);
- node.constructorName?.accept(this);
- node.arguments?.accept(this);
-
- node.element = _nextElement();
- }
-
- @override
- void visitArgumentList(ArgumentList node) {
- node.arguments.accept(this);
- }
-
- @override
- void visitAsExpression(AsExpression node) {
- node.expression.accept(this);
- node.type.accept(this);
- }
-
- @override
- void visitAssertInitializer(AssertInitializer node) {
- node.condition.accept(this);
- node.message?.accept(this);
- }
-
- @override
- void visitAssignmentExpression(AssignmentExpression node) {
- node.leftHandSide.accept(this);
- node.rightHandSide.accept(this);
- _expression(node);
- node.staticElement = _nextElement();
- }
-
- @override
- void visitBinaryExpression(BinaryExpression node) {
- node.leftOperand.accept(this);
- node.rightOperand.accept(this);
-
- node.staticType = _nextType();
- node.staticElement = _nextElement();
- }
-
- @override
- void visitBooleanLiteral(BooleanLiteral node) {
- node.staticType = _nextType();
- }
-
- @override
- void visitCascadeExpression(CascadeExpression node) {
- node.target.accept(this);
- node.cascadeSections.accept(this);
- _expression(node);
- }
-
- @override
- visitClassDeclaration(ClassDeclaration node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.extendsClause?.accept(this);
- node.nativeClause?.accept(this);
- node.withClause?.accept(this);
- node.implementsClause?.accept(this);
- _namedCompilationUnitMember(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitClassTypeAlias(ClassTypeAlias node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.superclass?.accept(this);
- node.withClause?.accept(this);
- node.implementsClause?.accept(this);
- node.metadata?.accept(this);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitConditionalExpression(ConditionalExpression node) {
- node.condition.accept(this);
- node.thenExpression.accept(this);
- node.elseExpression.accept(this);
- node.staticType = _nextType();
- }
-
- @override
- void visitConfiguration(Configuration node) {
- node.name?.accept(this);
- node.value?.accept(this);
- node.uri?.accept(this);
- }
-
- @override
- void visitConstructorDeclaration(ConstructorDeclaration node) {
- node.returnType?.accept(this);
- node.parameters?.accept(this);
- node.initializers?.accept(this);
- node.redirectedConstructor?.accept(this);
- node.metadata?.accept(this);
- }
-
- @override
- void visitConstructorFieldInitializer(ConstructorFieldInitializer node) {
- node.fieldName.accept(this);
- node.expression.accept(this);
- }
-
- @override
- void visitConstructorName(ConstructorName node) {
- node.type.accept(this);
- node.name?.accept(this);
-
- node.staticElement = _nextElement();
- }
-
- @override
- void visitDeclaredIdentifier(DeclaredIdentifier node) {
- node.type?.accept(this);
- node.identifier.accept(this);
- _declaration(node);
- }
-
- @override
- visitDefaultFormalParameter(DefaultFormalParameter node) {
- node.parameter.accept(this);
- node.defaultValue?.accept(this);
- }
-
- @override
- void visitDottedName(DottedName node) {
- node.components.accept(this);
- }
-
- @override
- void visitDoubleLiteral(DoubleLiteral node) {
- // TODO(scheglov) type?
- }
-
- @override
- void visitEnumConstantDeclaration(EnumConstantDeclaration node) {
- node.metadata?.accept(this);
- }
-
- @override
- void visitEnumDeclaration(EnumDeclaration node) {
- node.constants.accept(this);
- node.metadata?.accept(this);
- }
-
- @override
- void visitExportDirective(ExportDirective node) {
- _namespaceDirective(node);
- }
-
- @override
- void visitExpressionFunctionBody(ExpressionFunctionBody node) {
- node.expression.accept(this);
- }
-
- @override
- visitExtendsClause(ExtendsClause node) {
- node.superclass.accept(this);
- }
-
- @override
- void visitExtensionDeclaration(ExtensionDeclaration node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.extendedType?.accept(this);
- node.metadata?.accept(this);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitExtensionOverride(ExtensionOverride node) {
- node.extensionName.accept(this);
- node.typeArguments?.accept(this);
- node.argumentList.accept(this);
- (node as ExtensionOverrideImpl).extendedType = _nextType();
- // TODO(scheglov) typeArgumentTypes?
- }
-
- @override
- void visitFieldDeclaration(FieldDeclaration node) {
- node.fields.accept(this);
- node.metadata?.accept(this);
- }
-
- @override
- void visitFieldFormalParameter(FieldFormalParameter node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.type?.accept(this);
- node.parameters?.accept(this);
-
- _normalFormalParameter(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitForEachPartsWithDeclaration(ForEachPartsWithDeclaration node) {
- node.loopVariable.accept(this);
- _forEachParts(node);
- }
-
- @override
- void visitForElement(ForElement node) {
- node.body.accept(this);
- node.forLoopParts.accept(this);
- }
-
- @override
- visitFormalParameterList(FormalParameterList node) {
- node.parameters.accept(this);
- }
-
- @override
- void visitForPartsWithDeclarations(ForPartsWithDeclarations node) {
- node.variables.accept(this);
- _forParts(node);
- }
-
- @override
- void visitFunctionDeclaration(FunctionDeclaration node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- var node2 = node.functionExpression;
- node2.typeParameters?.accept(this);
- node2.parameters?.accept(this);
- node2.body?.accept(this);
-
- node.returnType?.accept(this);
- node.metadata?.accept(this);
- _setActualReturnType(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitFunctionExpression(FunctionExpression node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.parameters?.accept(this);
- node.body?.accept(this);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitFunctionExpressionInvocation(FunctionExpressionInvocation node) {
- node.function.accept(this);
- _invocationExpression(node);
- }
-
- @override
- void visitFunctionTypeAlias(FunctionTypeAlias node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.returnType?.accept(this);
- node.parameters?.accept(this);
- node.metadata?.accept(this);
- _setActualReturnType(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.returnType?.accept(this);
- node.parameters?.accept(this);
- _normalFormalParameter(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitGenericFunctionType(GenericFunctionType node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.returnType?.accept(this);
- node.parameters?.accept(this);
- (node as GenericFunctionTypeImpl).type = _nextType();
- _setActualReturnType(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitGenericTypeAlias(GenericTypeAlias node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.functionType?.accept(this);
- node.metadata?.accept(this);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitHideCombinator(HideCombinator node) {}
-
- @override
- void visitIfElement(IfElement node) {
- node.condition.accept(this);
- node.thenElement.accept(this);
- node.elseElement?.accept(this);
- }
-
- @override
- visitImplementsClause(ImplementsClause node) {
- node.interfaces.accept(this);
- }
-
- @override
- void visitImportDirective(ImportDirective node) {
- _namespaceDirective(node);
- }
-
- @override
- void visitInstanceCreationExpression(InstanceCreationExpression node) {
- node.constructorName.accept(this);
- (node as InstanceCreationExpressionImpl).typeArguments?.accept(this);
- node.argumentList.accept(this);
- node.staticType = _nextType();
- }
-
- @override
- void visitIntegerLiteral(IntegerLiteral node) {
- node.staticType = _nextType();
- }
-
- @override
- void visitInterpolationExpression(InterpolationExpression node) {
- node.expression.accept(this);
- }
-
- @override
- void visitInterpolationString(InterpolationString node) {
- // TODO(scheglov) type?
- }
-
- @override
- void visitIsExpression(IsExpression node) {
- node.expression.accept(this);
- node.type.accept(this);
- }
-
- @override
- void visitLabel(Label node) {
- node.label.accept(this);
- }
-
- @override
- void visitLibraryDirective(LibraryDirective node) {
- node.name.accept(this);
- _directive(node);
- }
-
- @override
- void visitLibraryIdentifier(LibraryIdentifier node) {
- node.components.accept(this);
- }
-
- @override
- void visitListLiteral(ListLiteral node) {
- node.elements.accept(this);
- node.staticType = _nextType();
- node.typeArguments?.accept(this);
- }
-
- @override
- void visitMapLiteralEntry(MapLiteralEntry node) {
- node.key.accept(this);
- node.value.accept(this);
- }
-
- @override
- visitMethodDeclaration(MethodDeclaration node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.returnType?.accept(this);
- node.parameters?.accept(this);
- node.metadata?.accept(this);
- _setActualReturnType(node);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitMethodInvocation(MethodInvocation node) {
- node.target?.accept(this);
- node.methodName.accept(this);
- _invocationExpression(node);
- }
-
- @override
- void visitMixinDeclaration(MixinDeclaration node) {
- var typeParameterStackHeight = _unitContext.typeParameterStack.length;
-
- node.typeParameters?.accept(this);
- node.onClause?.accept(this);
- node.implementsClause?.accept(this);
- node.metadata?.accept(this);
-
- _unitContext.typeParameterStack.length = typeParameterStackHeight;
- }
-
- @override
- void visitNamedExpression(NamedExpression node) {
- node.name.accept(this);
- node.expression.accept(this);
- }
-
- @override
- void visitNativeClause(NativeClause node) {
- node.name.accept(this);
- }
-
- @override
- void visitNullLiteral(NullLiteral node) {
- // TODO(scheglov) type?
- }
-
- @override
- void visitOnClause(OnClause node) {
- node.superclassConstraints.accept(this);
- }
-
- @override
- void visitParenthesizedExpression(ParenthesizedExpression node) {
- node.expression.accept(this);
- node.staticType = _nextType();
- }
-
- @override
- void visitPartDirective(PartDirective node) {
- _uriBasedDirective(node);
- }
-
- @override
- void visitPostfixExpression(PostfixExpression node) {
- node.operand.accept(this);
- node.staticElement = _nextElement();
- _expression(node);
- }
-
- @override
- void visitPrefixedIdentifier(PrefixedIdentifier node) {
- node.prefix.accept(this);
- node.identifier.accept(this);
-
- node.staticType = _nextType();
- }
-
- @override
- void visitPrefixExpression(PrefixExpression node) {
- node.operand.accept(this);
- node.staticElement = _nextElement();
- _expression(node);
- }
-
- @override
- void visitPropertyAccess(PropertyAccess node) {
- node.target.accept(this);
- node.propertyName.accept(this);
-
- node.staticType = _nextType();
- }
-
- @override
- void visitRedirectingConstructorInvocation(
- RedirectingConstructorInvocation node) {
- node.constructorName?.accept(this);
- node.argumentList.accept(this);
- node.staticElement = _nextElement();
- }
-
- @override
- void visitSetOrMapLiteral(SetOrMapLiteral node) {
- node.elements.accept(this);
- node.staticType = _nextType();
- node.typeArguments?.accept(this);
- }
-
- @override
- void visitShowCombinator(ShowCombinator node) {}
-
- @override
- visitSimpleFormalParameter(SimpleFormalParameter node) {
- node.type?.accept(this);
- _normalFormalParameter(node);
- }
-
- @override
- visitSimpleIdentifier(SimpleIdentifier node) {
- var data = LazyAst.getData(node);
-
- node.staticElement = _nextElement();
-
- if (AstBinaryFlags.hasType(data.flags)) {
- node.staticType = _nextType();
- }
- }
-
- @override
- void visitSimpleStringLiteral(SimpleStringLiteral node) {
- // TODO(scheglov) type?
- }
-
- @override
- void visitSpreadElement(SpreadElement node) {
- node.expression.accept(this);
- }
-
- @override
- void visitStringInterpolation(StringInterpolation node) {
- node.elements.accept(this);
- // TODO(scheglov) type?
- }
-
- @override
- void visitSuperConstructorInvocation(SuperConstructorInvocation node) {
- node.constructorName?.accept(this);
- node.argumentList.accept(this);
- node.staticElement = _nextElement();
- }
-
- @override
- void visitSuperExpression(SuperExpression node) {
- node.staticType = _nextType();
- }
-
- @override
- void visitSymbolLiteral(SymbolLiteral node) {
- node.staticType = _nextType();
- }
-
- @override
- void visitThisExpression(ThisExpression node) {
- node.staticType = _nextType();
- }
-
- @override
- void visitThrowExpression(ThrowExpression node) {
- node.expression.accept(this);
- node.staticType = _nextType();
- }
-
- @override
- void visitTopLevelVariableDeclaration(TopLevelVariableDeclaration node) {
- node.variables.accept(this);
- node.metadata?.accept(this);
- }
-
- @override
- visitTypeArgumentList(TypeArgumentList node) {
- node.arguments?.accept(this);
- }
-
- @override
- visitTypeName(TypeName node) {
- node.name.accept(this);
- node.typeArguments?.accept(this);
-
- node.type = _nextType();
- // print('[node: $node][type: ${node.type}]');
- }
-
- @override
- visitTypeParameterList(TypeParameterList node) {
- for (var typeParameter in node.typeParameters) {
- var name = typeParameter.name;
- var element = TypeParameterElementImpl(name.name, name.offset);
- name.staticElement = element;
- _unitContext.typeParameterStack.add(element);
- }
-
- for (var typeParameter in node.typeParameters) {
- var element = typeParameter.declaredElement as TypeParameterElementImpl;
- element.variance = LazyAst.getVariance(typeParameter);
-
- typeParameter.bound?.accept(this);
- element.bound = typeParameter.bound?.type;
-
- element.defaultType = _nextType();
-
- typeParameter.metadata?.accept(this);
- element.metadata = _buildAnnotations2(
- _unitContext.reference.element,
- typeParameter.metadata,
- );
-
- {
- var lazy = LazyTypeParameter.get(typeParameter);
- var informative = _unitContext.getInformativeData(lazy.data);
- element.setCodeRange(
- informative?.codeOffset ?? 0,
- informative?.codeLength ?? 0,
- );
- }
-
- // TODO(scheglov) We used to do this with the previous elements impl.
- // We probably still do this.
- // But the code below is bad and incomplete.
- // And why does this affect MethodMember(s)?
- {
- var parent = node.parent;
- if (parent is ClassDeclaration) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is ClassTypeAlias) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is ExtensionDeclaration) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is FunctionExpression) {
- var parent2 = parent.parent;
- if (parent2 is FunctionDeclaration) {
- (parent2.declaredElement as ElementImpl).encloseElement(element);
- }
- } else if (parent is FunctionTypeAlias) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is GenericTypeAlias) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is MethodDeclaration) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- } else if (parent is MixinDeclaration) {
- (parent.declaredElement as ElementImpl).encloseElement(element);
- }
- }
- }
- }
-
- @override
- void visitVariableDeclaration(VariableDeclaration node) {
- node.initializer?.accept(this);
- _setActualType(node);
- }
-
- @override
- void visitVariableDeclarationList(VariableDeclarationList node) {
- node.type?.accept(this);
- node.variables.accept(this);
- node.metadata?.accept(this);
- }
-
- @override
- void visitWithClause(WithClause node) {
- node.mixinTypes.accept(this);
- }
-
- void _annotatedNode(AnnotatedNode node) {
- node.metadata?.accept(this);
- }
-
- /// Return annotations for the given [nodeList] in the [unit].
- List<ElementAnnotation> _buildAnnotations2(
- CompilationUnitElementImpl unit, List<Annotation> nodeList) {
- var length = nodeList.length;
- if (length == 0) {
- return const <ElementAnnotation>[];
- }
-
- var annotations = List<ElementAnnotation>(length);
- for (int i = 0; i < length; i++) {
- var ast = nodeList[i];
- annotations[i] = ElementAnnotationImpl(unit)
- ..annotationAst = ast
- ..element = ast.element;
- }
- return annotations;
- }
-
- void _compilationUnitMember(CompilationUnitMember node) {
- _declaration(node);
- }
-
- void _declaration(Declaration node) {
- _annotatedNode(node);
- }
-
- void _directive(Directive node) {
- node.metadata?.accept(this);
- }
-
- void _expression(Expression node) {
- node.staticType = _nextType();
- }
-
- void _forEachParts(ForEachParts node) {
- _forLoopParts(node);
- node.iterable.accept(this);
- }
-
- void _forLoopParts(ForLoopParts node) {}
-
- void _formalParameter(FormalParameter node) {
- _setActualType(node);
- }
-
- void _forParts(ForParts node) {
- _forLoopParts(node);
- node.condition?.accept(this);
- node.updaters.accept(this);
- }
-
- void _invocationExpression(InvocationExpression node) {
- _expression(node);
- node.argumentList.accept(this);
- node.staticInvokeType = _nextType();
- node.typeArguments?.accept(this);
- }
-
- void _namedCompilationUnitMember(NamedCompilationUnitMember node) {
- _compilationUnitMember(node);
- }
-
- void _namespaceDirective(NamespaceDirective node) {
- _uriBasedDirective(node);
- node.combinators?.accept(this);
- node.configurations?.accept(this);
- }
-
- Element _nextElement() {
- var ptr = _elementPtr++;
- var elementIndex = _resolution.elements[ptr];
- var element = _unitContext.elementOfIndex(elementIndex);
-
- var substitutionNode = _resolution.substitutions[ptr];
- if (substitutionNode.typeArguments.isNotEmpty) {
- var typeParameters =
- (element.enclosingElement as TypeParameterizedElement).typeParameters;
- var typeArguments = substitutionNode.typeArguments
- .map(_unitContext.readType)
- .toList(growable: false);
- var substitution = Substitution.fromPairs(typeParameters, typeArguments);
- element = ExecutableMember.from2(element, substitution);
- }
-
- if (substitutionNode.isLegacy) {
- element = Member.legacy(element);
- }
-
- return element;
- }
-
- DartType _nextType() {
- var id = _typePtr++;
- var data = _resolution.types[id];
- var type = _unitContext.readType(data);
- return type;
- }
-
- void _normalFormalParameter(NormalFormalParameter node) {
- _formalParameter(node);
- node.metadata?.accept(this);
- }
-
- void _setActualReturnType(AstNode node) {
- var type = _nextType();
- LazyAst.setReturnType(node, type);
- }
-
- void _setActualType(AstNode node) {
- var type = _nextType();
- LazyAst.setType(node, type);
- }
-
- void _uriBasedDirective(UriBasedDirective node) {
- _directive(node);
- node.uri.accept(this);
- }
-}
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart b/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
index 65d0148..beac780 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_flags.dart
@@ -75,11 +75,6 @@
TypeName,
);
- static final _hasType = _checkBit(
- 1,
- SimpleIdentifier,
- );
-
static final _isAbstract = _checkBit(
1,
ClassDeclaration,
@@ -242,7 +237,6 @@
bool hasSeparatorColon = false,
bool hasSeparatorEquals = false,
bool hasThis = false,
- bool hasType = false,
bool hasTypeArguments = false,
bool isAbstract = false,
bool isAsync = false,
@@ -304,9 +298,6 @@
if (hasThis) {
result |= _hasThis;
}
- if (hasType) {
- result |= _hasType;
- }
if (hasTypeArguments) {
result |= _hasTypeArguments;
}
@@ -432,10 +423,6 @@
return (flags & _hasThis) != 0;
}
- static bool hasType(int flags) {
- return (flags & _hasType) != 0;
- }
-
static bool hasTypeArguments(int flags) {
return (flags & _hasTypeArguments) != 0;
}
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 3dda72c..4df499f 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -5,9 +5,13 @@
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/standard_ast_factory.dart';
import 'package:analyzer/dart/ast/token.dart';
+import 'package:analyzer/dart/element/element.dart';
+import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/analysis/experiments.dart';
import 'package:analyzer/src/dart/ast/ast.dart';
import 'package:analyzer/src/dart/ast/ast_factory.dart';
+import 'package:analyzer/src/dart/element/member.dart';
+import 'package:analyzer/src/dart/element/type_algebra.dart';
import 'package:analyzer/src/dart/resolver/variance.dart';
import 'package:analyzer/src/generated/testing/ast_test_factory.dart';
import 'package:analyzer/src/generated/testing/token_factory.dart';
@@ -33,8 +37,25 @@
/// Set to `true` when this reader is used to lazily read its unit.
bool isLazy = false;
+ /// Whether we are reading a directive.
+ ///
+ /// [StringLiteral]s in directives are not actual expressions, and don't need
+ /// a type. Moreover, when we are reading `dart:core` imports, the type
+ /// provider is not ready yet, so we cannot access type `String`.
+ bool _isReadingDirective = false;
+
AstBinaryReader(this._unitContext);
+ InterfaceType get _boolType => _unitContext.typeProvider.boolType;
+
+ InterfaceType get _doubleType => _unitContext.typeProvider.doubleType;
+
+ InterfaceType get _intType => _unitContext.typeProvider.intType;
+
+ DartType get _nullType => _unitContext.typeProvider.nullType;
+
+ InterfaceType get _stringType => _unitContext.typeProvider.stringType;
+
AstNode readNode(LinkedNode data) {
timerAstBinaryReader.start();
try {
@@ -44,6 +65,10 @@
}
}
+ DartType readType(LinkedNodeType data) {
+ return _readType(data);
+ }
+
Token _combinatorKeyword(LinkedNode data, Keyword keyword, Token def) {
var informativeData = _unitContext.getInformativeData(data);
if (informativeData != null) {
@@ -71,10 +96,40 @@
return def;
}
+ Element _elementOfComponents(
+ int rawElementIndex,
+ LinkedNodeTypeSubstitution substitutionNode,
+ ) {
+ var element = _getElement(rawElementIndex);
+ if (substitutionNode == null) return element;
+
+ var typeParameters = substitutionNode.typeParameters
+ .map<TypeParameterElement>(_getElement)
+ .toList();
+ var typeArguments = substitutionNode.typeArguments.map(_readType).toList();
+ var substitution = Substitution.fromPairs(typeParameters, typeArguments);
+
+ var member = ExecutableMember.from2(element, substitution);
+ if (substitutionNode.isLegacy) {
+ member = Member.legacy(member);
+ }
+
+ return member;
+ }
+
+ T _getElement<T extends Element>(int index) {
+ var bundleContext = _unitContext.bundleContext;
+ return bundleContext.elementOfIndex(index);
+ }
+
AdjacentStrings _read_adjacentStrings(LinkedNode data) {
- return astFactory.adjacentStrings(
+ var node = astFactory.adjacentStrings(
_readNodeList(data.adjacentStrings_strings),
);
+ if (!_isReadingDirective) {
+ node.staticType = _stringType;
+ }
+ return node;
}
Annotation _read_annotation(LinkedNode data) {
@@ -84,7 +139,10 @@
_Tokens.PERIOD,
_readNode(data.annotation_constructorName),
_readNode(data.annotation_arguments),
- );
+ )..element = _elementOfComponents(
+ data.annotation_element,
+ data.annotation_substitution,
+ );
}
ArgumentList _read_argumentList(LinkedNode data) {
@@ -100,7 +158,7 @@
_readNode(data.asExpression_expression),
_Tokens.AS,
_readNode(data.asExpression_type),
- );
+ )..staticType = _readType(data.expression_type);
}
AssertInitializer _read_assertInitializer(LinkedNode data) {
@@ -131,14 +189,19 @@
_readNode(data.assignmentExpression_leftHandSide),
_Tokens.fromType(data.assignmentExpression_operator),
_readNode(data.assignmentExpression_rightHandSide),
- );
+ )
+ ..staticElement = _elementOfComponents(
+ data.assignmentExpression_element,
+ data.assignmentExpression_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
AwaitExpression _read_awaitExpression(LinkedNode data) {
return astFactory.awaitExpression(
_Tokens.AWAIT,
_readNode(data.awaitExpression_expression),
- );
+ )..staticType = _readType(data.expression_type);
}
BinaryExpression _read_binaryExpression(LinkedNode data) {
@@ -146,7 +209,12 @@
_readNode(data.binaryExpression_leftOperand),
_Tokens.fromType(data.binaryExpression_operator),
_readNode(data.binaryExpression_rightOperand),
- );
+ )
+ ..staticElement = _elementOfComponents(
+ data.binaryExpression_element,
+ data.binaryExpression_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
Block _read_block(LinkedNode data) {
@@ -176,7 +244,8 @@
}
BooleanLiteral _read_booleanLiteral(LinkedNode data) {
- return AstTestFactory.booleanLiteral(data.booleanLiteral_value);
+ return AstTestFactory.booleanLiteral(data.booleanLiteral_value)
+ ..staticType = _boolType;
}
BreakStatement _read_breakStatement(LinkedNode data) {
@@ -191,7 +260,7 @@
return astFactory.cascadeExpression(
_readNode(data.cascadeExpression_target),
_readNodeList(data.cascadeExpression_sections),
- );
+ )..staticType = _readType(data.expression_type);
}
CatchClause _read_catchClause(LinkedNode data) {
@@ -216,20 +285,20 @@
try {
var node = astFactory.classDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
AstBinaryFlags.isAbstract(data.flags) ? _Tokens.ABSTRACT : null,
_Tokens.CLASS,
_declaredIdentifier(data),
_readNode(data.classOrMixinDeclaration_typeParameters),
- _readNode(data.classDeclaration_extendsClause),
- _readNode(data.classDeclaration_withClause),
- _readNode(data.classOrMixinDeclaration_implementsClause),
+ _readNodeLazy(data.classDeclaration_extendsClause),
+ _readNodeLazy(data.classDeclaration_withClause),
+ _readNodeLazy(data.classOrMixinDeclaration_implementsClause),
_Tokens.OPEN_CURLY_BRACKET,
_readNodeListLazy(data.classOrMixinDeclaration_members),
_Tokens.CLOSE_CURLY_BRACKET,
);
- node.nativeClause = _readNode(data.classDeclaration_nativeClause);
- LazyClassDeclaration.setData(_unitContext, data, node);
+ node.nativeClause = _readNodeLazy(data.classDeclaration_nativeClause);
+ LazyClassDeclaration.setData(node, data);
return node;
} finally {
timerAstBinaryReaderClass.stop();
@@ -241,18 +310,18 @@
try {
var node = astFactory.classTypeAlias(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.CLASS,
_declaredIdentifier(data),
_readNode(data.classTypeAlias_typeParameters),
_Tokens.EQ,
AstBinaryFlags.isAbstract(data.flags) ? _Tokens.ABSTRACT : null,
- _readNode(data.classTypeAlias_superclass),
- _readNode(data.classTypeAlias_withClause),
- _readNode(data.classTypeAlias_implementsClause),
+ _readNodeLazy(data.classTypeAlias_superclass),
+ _readNodeLazy(data.classTypeAlias_withClause),
+ _readNodeLazy(data.classTypeAlias_implementsClause),
_Tokens.SEMICOLON,
);
- LazyClassTypeAlias.setData(_unitContext, data, node);
+ LazyClassTypeAlias.setData(node, data);
return node;
} finally {
timerAstBinaryReaderClass.stop();
@@ -311,7 +380,7 @@
_readNode(data.conditionalExpression_thenExpression),
_Tokens.COLON,
_readNode(data.conditionalExpression_elseExpression),
- );
+ )..staticType = _readType(data.expression_type);
}
Configuration _read_configuration(LinkedNode data) {
@@ -347,25 +416,25 @@
var node = astFactory.constructorDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
AstBinaryFlags.isConst(data.flags) ? _Tokens.CONST : null,
AstBinaryFlags.isFactory(data.flags) ? _Tokens.FACTORY : null,
returnType,
periodToken,
nameIdentifier,
- _readNode(data.constructorDeclaration_parameters),
+ _readNodeLazy(data.constructorDeclaration_parameters),
_Tokens.choose(
AstBinaryFlags.hasSeparatorColon(data.flags),
_Tokens.COLON,
AstBinaryFlags.hasSeparatorEquals(data.flags),
_Tokens.EQ,
),
- _readNodeList(data.constructorDeclaration_initializers),
- _readNode(data.constructorDeclaration_redirectedConstructor),
- _readNode(data.constructorDeclaration_body),
+ _readNodeListLazy(data.constructorDeclaration_initializers),
+ _readNodeLazy(data.constructorDeclaration_redirectedConstructor),
+ _readNodeLazy(data.constructorDeclaration_body),
);
- LazyConstructorDeclaration.setData(_unitContext, data, node);
+ LazyConstructorDeclaration.setData(node, data);
return node;
}
@@ -386,7 +455,10 @@
_readNode(data.constructorName_type),
data.constructorName_name != null ? _Tokens.PERIOD : null,
_readNode(data.constructorName_name),
- );
+ )..staticElement = _elementOfComponents(
+ data.constructorName_element,
+ data.constructorName_substitution,
+ );
}
ContinueStatement _read_continueStatement(LinkedNode data) {
@@ -419,7 +491,7 @@
_readNode(data.defaultFormalParameter_parameter),
_toParameterKind(data.defaultFormalParameter_kind),
data.defaultFormalParameter_defaultValue != null ? _Tokens.COLON : null,
- _readNode(data.defaultFormalParameter_defaultValue),
+ _readNodeLazy(data.defaultFormalParameter_defaultValue),
);
LazyFormalParameter.setData(node, data);
return node;
@@ -444,7 +516,8 @@
}
DoubleLiteral _read_doubleLiteral(LinkedNode data) {
- return AstTestFactory.doubleLiteral(data.doubleLiteral_value);
+ return AstTestFactory.doubleLiteral(data.doubleLiteral_value)
+ ..staticType = _doubleType;
}
EmptyFunctionBody _read_emptyFunctionBody(LinkedNode data) {
@@ -462,7 +535,7 @@
EnumConstantDeclaration _read_enumConstantDeclaration(LinkedNode data) {
var node = astFactory.enumConstantDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_declaredIdentifier(data),
);
LazyEnumConstantDeclaration.setData(node, data);
@@ -472,32 +545,34 @@
EnumDeclaration _read_enumDeclaration(LinkedNode data) {
var node = astFactory.enumDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.ENUM,
_declaredIdentifier(data),
_Tokens.OPEN_CURLY_BRACKET,
- _readNodeList(data.enumDeclaration_constants),
+ _readNodeListLazy(data.enumDeclaration_constants),
_Tokens.CLOSE_CURLY_BRACKET,
);
- LazyEnumDeclaration.setData(_unitContext, data, node);
+ LazyEnumDeclaration.setData(node, data);
return node;
}
ExportDirective _read_exportDirective(LinkedNode data) {
timerAstBinaryReaderDirective.start();
+ _isReadingDirective = true;
try {
var node = astFactory.exportDirective(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_directiveKeyword(data, Keyword.EXPORT, _Tokens.EXPORT),
_readNode(data.uriBasedDirective_uri),
_readNodeList(data.namespaceDirective_configurations),
_readNodeList(data.namespaceDirective_combinators),
_Tokens.SEMICOLON,
);
- LazyDirective.setData(_unitContext, data, node);
+ LazyDirective.setData(node, data);
return node;
} finally {
+ _isReadingDirective = false;
timerAstBinaryReaderDirective.stop();
}
}
@@ -540,17 +615,17 @@
try {
var node = astFactory.extensionDeclaration(
comment: _readDocumentationComment(data),
- metadata: _readNodeList(data.annotatedNode_metadata),
+ metadata: _readNodeListLazy(data.annotatedNode_metadata),
extensionKeyword: _Tokens.EXTENSION,
name: data.name.isNotEmpty ? _declaredIdentifier(data) : null,
typeParameters: _readNode(data.extensionDeclaration_typeParameters),
onKeyword: _Tokens.ON,
- extendedType: _readNode(data.extensionDeclaration_extendedType),
+ extendedType: _readNodeLazy(data.extensionDeclaration_extendedType),
leftBracket: _Tokens.OPEN_CURLY_BRACKET,
- members: _readNodeList(data.extensionDeclaration_members),
+ members: _readNodeListLazy(data.extensionDeclaration_members),
rightBracket: _Tokens.CLOSE_CURLY_BRACKET,
);
- LazyExtensionDeclaration(_unitContext, data, node);
+ LazyExtensionDeclaration(node, data);
return node;
} finally {
timerAstBinaryReaderClass.stop();
@@ -569,6 +644,9 @@
),
typeArguments: _readNode(data.extensionOverride_typeArguments),
) as ExtensionOverrideImpl;
+ node.extendedType = _readType(data.extensionOverride_extendedType);
+ node.typeArgumentTypes =
+ data.extensionOverride_typeArgumentTypes.map(_readType).toList();
return node;
}
@@ -582,12 +660,12 @@
externalKeyword:
AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
fieldList: _readNode(data.fieldDeclaration_fields),
- metadata: _readNodeList(data.annotatedNode_metadata),
+ metadata: _readNodeListLazy(data.annotatedNode_metadata),
semicolon: _Tokens.SEMICOLON,
staticKeyword:
AstBinaryFlags.isStatic(data.flags) ? _Tokens.STATIC : null,
);
- LazyFieldDeclaration.setData(_unitContext, data, node);
+ LazyFieldDeclaration.setData(node, data);
return node;
}
@@ -609,8 +687,8 @@
),
metadata: _readNodeList(data.normalFormalParameter_metadata),
comment: _readDocumentationComment(data),
- type: _readNode(data.fieldFormalParameter_type),
- parameters: _readNode(data.fieldFormalParameter_formalParameters),
+ type: _readNodeLazy(data.fieldFormalParameter_type),
+ parameters: _readNodeLazy(data.fieldFormalParameter_formalParameters),
question:
AstBinaryFlags.hasQuestion(data.flags) ? _Tokens.QUESTION : null,
requiredKeyword:
@@ -704,9 +782,9 @@
try {
var node = astFactory.functionDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
- _readNode(data.functionDeclaration_returnType),
+ _readNodeLazy(data.functionDeclaration_returnType),
_Tokens.choose(
AstBinaryFlags.isGet(data.flags),
_Tokens.GET,
@@ -714,9 +792,9 @@
_Tokens.SET,
),
_declaredIdentifier(data),
- _readNode(data.functionDeclaration_functionExpression),
+ _readNodeLazy(data.functionDeclaration_functionExpression),
);
- LazyFunctionDeclaration.setData(_unitContext, data, node);
+ LazyFunctionDeclaration.setData(node, data);
return node;
} finally {
timerAstBinaryReaderFunctionDeclaration.stop();
@@ -733,8 +811,8 @@
FunctionExpression _read_functionExpression(LinkedNode data) {
var node = astFactory.functionExpression(
_readNode(data.functionExpression_typeParameters),
- _readNode(data.functionExpression_formalParameters),
- _readNode(data.functionExpression_body),
+ _readNodeLazy(data.functionExpression_formalParameters),
+ _readNodeLazy(data.functionExpression_body),
);
LazyFunctionExpression.setData(node, data);
return node;
@@ -746,21 +824,21 @@
_readNode(data.functionExpressionInvocation_function),
_readNode(data.invocationExpression_typeArguments),
_readNode(data.invocationExpression_arguments),
- );
+ )..staticInvokeType = _readType(data.invocationExpression_invokeType);
}
FunctionTypeAlias _read_functionTypeAlias(LinkedNode data) {
var node = astFactory.functionTypeAlias(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.TYPEDEF,
- _readNode(data.functionTypeAlias_returnType),
+ _readNodeLazy(data.functionTypeAlias_returnType),
_declaredIdentifier(data),
_readNode(data.functionTypeAlias_typeParameters),
- _readNode(data.functionTypeAlias_formalParameters),
+ _readNodeLazy(data.functionTypeAlias_formalParameters),
_Tokens.SEMICOLON,
);
- LazyFunctionTypeAlias.setData(_unitContext, data, node);
+ LazyFunctionTypeAlias.setData(node, data);
LazyFunctionTypeAlias.setHasSelfReference(
node,
data.typeAlias_hasSelfReference,
@@ -775,13 +853,13 @@
covariantKeyword:
AstBinaryFlags.isCovariant(data.flags) ? _Tokens.COVARIANT : null,
identifier: _declaredIdentifier(data),
- metadata: _readNodeList(data.normalFormalParameter_metadata),
- parameters: _readNode(
+ metadata: _readNodeListLazy(data.normalFormalParameter_metadata),
+ parameters: _readNodeLazy(
data.functionTypedFormalParameter_formalParameters,
),
requiredKeyword:
AstBinaryFlags.isRequired(data.flags) ? _Tokens.REQUIRED : null,
- returnType: _readNode(data.functionTypedFormalParameter_returnType),
+ returnType: _readNodeLazy(data.functionTypedFormalParameter_returnType),
typeParameters: _readNode(
data.functionTypedFormalParameter_typeParameters,
),
@@ -791,32 +869,73 @@
}
GenericFunctionType _read_genericFunctionType(LinkedNode data) {
- return astFactory.genericFunctionType(
- readNode(data.genericFunctionType_returnType),
+ var id = data.genericFunctionType_id;
+
+ // Read type parameters, without bounds, to avoid forward references.
+ TypeParameterList typeParameterList;
+ var typeParameterListData = data.genericFunctionType_typeParameters;
+ if (typeParameterListData != null) {
+ var dataList = typeParameterListData.typeParameterList_typeParameters;
+ var typeParameters = List<TypeParameter>(dataList.length);
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ typeParameters[i] = astFactory.typeParameter(
+ _readDocumentationComment(data),
+ _readNodeList(data.annotatedNode_metadata),
+ _declaredIdentifier(data),
+ data.typeParameter_bound != null ? _Tokens.EXTENDS : null,
+ null,
+ );
+ }
+ typeParameterList = astFactory.typeParameterList(
+ _Tokens.LT,
+ typeParameters,
+ _Tokens.GT,
+ );
+ }
+
+ GenericFunctionTypeImpl node = astFactory.genericFunctionType(
+ null,
_Tokens.FUNCTION,
- _readNode(data.genericFunctionType_typeParameters),
- _readNode(data.genericFunctionType_formalParameters),
+ typeParameterList,
+ null,
question:
AstBinaryFlags.hasQuestion(data.flags) ? _Tokens.QUESTION : null,
);
+
+ // Create the node element, so now type parameter elements are available.
+ LazyAst.setGenericFunctionTypeId(node, id);
+ _unitContext.createGenericFunctionTypeElement(id, node);
+
+ // Finish reading.
+ if (typeParameterListData != null) {
+ var dataList = typeParameterListData.typeParameterList_typeParameters;
+ var typeParameters = typeParameterList.typeParameters;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ var node = typeParameters[i];
+ node.bound = _readNode(data.typeParameter_bound);
+ }
+ }
+ node.returnType = readNode(data.genericFunctionType_returnType);
+ node.parameters = _readNode(data.genericFunctionType_formalParameters);
+ node.type = _readType(data.genericFunctionType_type);
+
+ return node;
}
GenericTypeAlias _read_genericTypeAlias(LinkedNode data) {
var node = astFactory.genericTypeAlias(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.TYPEDEF,
_declaredIdentifier(data),
_readNode(data.genericTypeAlias_typeParameters),
_Tokens.EQ,
- _readNode(data.genericTypeAlias_functionType),
+ _readNodeLazy(data.genericTypeAlias_functionType),
_Tokens.SEMICOLON,
);
- LazyGenericTypeAlias.setData(
- _unitContext,
- data,
- node,
- );
+ LazyGenericTypeAlias.setData(node, data);
LazyGenericTypeAlias.setHasSelfReference(
node,
data.typeAlias_hasSelfReference,
@@ -868,6 +987,7 @@
ImportDirective _read_importDirective(LinkedNode data) {
timerAstBinaryReaderDirective.start();
+ _isReadingDirective = true;
try {
SimpleIdentifier prefix;
if (data.importDirective_prefix.isNotEmpty) {
@@ -882,7 +1002,7 @@
var node = astFactory.importDirective(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_directiveKeyword(data, Keyword.IMPORT, _Tokens.IMPORT),
_readNode(data.uriBasedDirective_uri),
_readNodeList(data.namespaceDirective_configurations),
@@ -892,9 +1012,10 @@
_readNodeList(data.namespaceDirective_combinators),
_Tokens.SEMICOLON,
);
- LazyDirective.setData(_unitContext, data, node);
+ LazyDirective.setData(node, data);
return node;
} finally {
+ _isReadingDirective = false;
timerAstBinaryReaderDirective.stop();
}
}
@@ -907,8 +1028,14 @@
leftBracket: _Tokens.OPEN_SQUARE_BRACKET,
index: _readNode(data.indexExpression_index),
rightBracket: _Tokens.CLOSE_SQUARE_BRACKET,
- )..period =
- AstBinaryFlags.hasPeriod(data.flags) ? _Tokens.PERIOD_PERIOD : null;
+ )
+ ..period =
+ AstBinaryFlags.hasPeriod(data.flags) ? _Tokens.PERIOD_PERIOD : null
+ ..staticElement = _elementOfComponents(
+ data.indexExpression_element,
+ data.indexExpression_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
InstanceCreationExpression _read_instanceCreationExpression(LinkedNode data) {
@@ -929,11 +1056,14 @@
),
typeArguments: _readNode(data.instanceCreationExpression_typeArguments),
);
+ node.staticType = _readType(data.expression_type);
return node;
}
IntegerLiteral _read_integerLiteral(LinkedNode data) {
- return AstTestFactory.integer(data.integerLiteral_value);
+ // TODO(scheglov) Remove `?? _intType` after internal SDK roll.
+ return AstTestFactory.integer(data.integerLiteral_value)
+ ..staticType = _readType(data.expression_type) ?? _intType;
}
InterpolationExpression _read_interpolationExpression(LinkedNode data) {
@@ -961,7 +1091,7 @@
_Tokens.IS,
AstBinaryFlags.hasNot(data.flags) ? _Tokens.BANG : null,
_readNode(data.isExpression_type),
- );
+ )..staticType = _boolType;
}
Label _read_label(LinkedNode data) {
@@ -980,17 +1110,19 @@
LibraryDirective _read_libraryDirective(LinkedNode data) {
timerAstBinaryReaderDirective.start();
+ _isReadingDirective = true;
try {
var node = astFactory.libraryDirective(
_unitContext.createComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.LIBRARY,
_readNode(data.libraryDirective_name),
_Tokens.SEMICOLON,
);
- LazyDirective.setData(_unitContext, data, node);
+ LazyDirective.setData(node, data);
return node;
} finally {
+ _isReadingDirective = false;
timerAstBinaryReaderDirective.stop();
}
}
@@ -1014,7 +1146,7 @@
_Tokens.OPEN_SQUARE_BRACKET,
_readNodeList(data.listLiteral_elements),
_Tokens.CLOSE_SQUARE_BRACKET,
- );
+ )..staticType = _readType(data.expression_type);
}
MapLiteralEntry _read_mapLiteralEntry(LinkedNode data) {
@@ -1037,10 +1169,10 @@
var node = astFactory.methodDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
AstBinaryFlags.isStatic(data.flags) ? _Tokens.STATIC : null,
- _readNode(data.methodDeclaration_returnType),
+ _readNodeLazy(data.methodDeclaration_returnType),
_Tokens.choose(
AstBinaryFlags.isGet(data.flags),
_Tokens.GET,
@@ -1050,10 +1182,10 @@
AstBinaryFlags.isOperator(data.flags) ? _Tokens.OPERATOR : null,
_declaredIdentifier(data),
_readNode(data.methodDeclaration_typeParameters),
- _readNode(data.methodDeclaration_formalParameters),
+ _readNodeLazy(data.methodDeclaration_formalParameters),
body,
);
- LazyMethodDeclaration.setData(_unitContext, data, node);
+ LazyMethodDeclaration.setData(node, data);
LazyAst.setOperatorEqualParameterTypeFromObject(
node,
data.methodDeclaration_hasOperatorEqualWithParameterTypeFromObject,
@@ -1073,7 +1205,7 @@
_readNode(data.methodInvocation_methodName),
_readNode(data.invocationExpression_typeArguments),
_readNode(data.invocationExpression_arguments),
- );
+ )..staticInvokeType = _readType(data.invocationExpression_invokeType);
}
MixinDeclaration _read_mixinDeclaration(LinkedNode data) {
@@ -1081,17 +1213,17 @@
try {
var node = astFactory.mixinDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.MIXIN,
_declaredIdentifier(data),
_readNode(data.classOrMixinDeclaration_typeParameters),
- _readNode(data.mixinDeclaration_onClause),
- _readNode(data.classOrMixinDeclaration_implementsClause),
+ _readNodeLazy(data.mixinDeclaration_onClause),
+ _readNodeLazy(data.classOrMixinDeclaration_implementsClause),
_Tokens.OPEN_CURLY_BRACKET,
_readNodeListLazy(data.classOrMixinDeclaration_members),
_Tokens.CLOSE_CURLY_BRACKET,
);
- LazyMixinDeclaration(_unitContext, data, node);
+ LazyMixinDeclaration(node, data);
return node;
} finally {
timerAstBinaryReaderMixin.stop();
@@ -1124,7 +1256,7 @@
NullLiteral _read_nullLiteral(LinkedNode data) {
return astFactory.nullLiteral(
_Tokens.NULL,
- )..staticType;
+ )..staticType = _nullType;
}
OnClause _read_onClause(LinkedNode data) {
@@ -1139,41 +1271,45 @@
_Tokens.OPEN_PAREN,
_readNode(data.parenthesizedExpression_expression),
_Tokens.CLOSE_PAREN,
- );
+ )..staticType = _readType(data.expression_type);
}
PartDirective _read_partDirective(LinkedNode data) {
timerAstBinaryReaderDirective.start();
+ _isReadingDirective = true;
try {
var node = astFactory.partDirective(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.PART,
_readNode(data.uriBasedDirective_uri),
_Tokens.SEMICOLON,
);
- LazyDirective.setData(_unitContext, data, node);
+ LazyDirective.setData(node, data);
return node;
} finally {
+ _isReadingDirective = false;
timerAstBinaryReaderDirective.stop();
}
}
PartOfDirective _read_partOfDirective(LinkedNode data) {
timerAstBinaryReaderDirective.start();
+ _isReadingDirective = true;
try {
var node = astFactory.partOfDirective(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_Tokens.PART,
_Tokens.OF,
_readNode(data.partOfDirective_uri),
_readNode(data.partOfDirective_libraryName),
_Tokens.SEMICOLON,
);
- LazyDirective.setData(_unitContext, data, node);
+ LazyDirective.setData(node, data);
return node;
} finally {
+ _isReadingDirective = false;
timerAstBinaryReaderDirective.stop();
}
}
@@ -1182,7 +1318,12 @@
return astFactory.postfixExpression(
_readNode(data.postfixExpression_operand),
_Tokens.fromType(data.postfixExpression_operator),
- );
+ )
+ ..staticElement = _elementOfComponents(
+ data.postfixExpression_element,
+ data.postfixExpression_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
PrefixedIdentifier _read_prefixedIdentifier(LinkedNode data) {
@@ -1190,14 +1331,19 @@
_readNode(data.prefixedIdentifier_prefix),
_Tokens.PERIOD,
_readNode(data.prefixedIdentifier_identifier),
- );
+ )..staticType = _readType(data.expression_type);
}
PrefixExpression _read_prefixExpression(LinkedNode data) {
return astFactory.prefixExpression(
_Tokens.fromType(data.prefixExpression_operator),
_readNode(data.prefixExpression_operand),
- );
+ )
+ ..staticElement = _elementOfComponents(
+ data.prefixExpression_element,
+ data.prefixExpression_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
PropertyAccess _read_propertyAccess(LinkedNode data) {
@@ -1205,7 +1351,7 @@
_readNode(data.propertyAccess_target),
_Tokens.fromType(data.propertyAccess_operator),
_readNode(data.propertyAccess_propertyName),
- );
+ )..staticType = _readType(data.expression_type);
}
RedirectingConstructorInvocation _read_redirectingConstructorInvocation(
@@ -1216,13 +1362,16 @@
hasThis ? _Tokens.PERIOD : null,
_readNode(data.redirectingConstructorInvocation_constructorName),
_readNode(data.redirectingConstructorInvocation_arguments),
- );
+ )..staticElement = _elementOfComponents(
+ data.redirectingConstructorInvocation_element,
+ data.redirectingConstructorInvocation_substitution,
+ );
}
RethrowExpression _read_rethrowExpression(LinkedNode data) {
return astFactory.rethrowExpression(
_Tokens.RETHROW,
- );
+ )..staticType = _readType(data.expression_type);
}
ReturnStatement _read_returnStatement(LinkedNode data) {
@@ -1246,7 +1395,7 @@
)
: null,
rightBracket: _Tokens.CLOSE_CURLY_BRACKET,
- );
+ )..staticType = _readType(data.expression_type);
if (AstBinaryFlags.isMap(data.flags)) {
node.becomeMap();
} else if (AstBinaryFlags.isSet(data.flags)) {
@@ -1289,16 +1438,23 @@
}
SimpleIdentifier _read_simpleIdentifier(LinkedNode data) {
- var node = astFactory.simpleIdentifier(
+ return astFactory.simpleIdentifier(
TokenFactory.tokenFromString(data.name),
isDeclaration: AstBinaryFlags.isDeclaration(data.flags),
- );
- LazyAst.setData(node, data);
- return node;
+ )
+ ..staticElement = _elementOfComponents(
+ data.simpleIdentifier_element,
+ data.simpleIdentifier_substitution,
+ )
+ ..staticType = _readType(data.expression_type);
}
SimpleStringLiteral _read_simpleStringLiteral(LinkedNode data) {
- return AstTestFactory.string2(data.simpleStringLiteral_value);
+ var node = AstTestFactory.string2(data.simpleStringLiteral_value);
+ if (!_isReadingDirective) {
+ node.staticType = _stringType;
+ }
+ return node;
}
SpreadElement _read_spreadElement(LinkedNode data) {
@@ -1309,9 +1465,13 @@
}
StringInterpolation _read_stringInterpolation(LinkedNode data) {
- return astFactory.stringInterpolation(
+ var node = astFactory.stringInterpolation(
_readNodeList(data.stringInterpolation_elements),
);
+ if (!_isReadingDirective) {
+ node.staticType = _stringType;
+ }
+ return node;
}
SuperConstructorInvocation _read_superConstructorInvocation(LinkedNode data) {
@@ -1320,13 +1480,16 @@
_Tokens.PERIOD,
_readNode(data.superConstructorInvocation_constructorName),
_readNode(data.superConstructorInvocation_arguments),
- );
+ )..staticElement = _elementOfComponents(
+ data.superConstructorInvocation_element,
+ data.superConstructorInvocation_substitution,
+ );
}
SuperExpression _read_superExpression(LinkedNode data) {
return astFactory.superExpression(
_Tokens.SUPER,
- );
+ )..staticType = _readType(data.expression_type);
}
SwitchCase _read_switchCase(LinkedNode data) {
@@ -1364,20 +1527,20 @@
return astFactory.symbolLiteral(
_Tokens.HASH,
data.names.map((lexeme) => TokenFactory.tokenFromString(lexeme)).toList(),
- );
+ )..staticType = _readType(data.expression_type);
}
ThisExpression _read_thisExpression(LinkedNode data) {
return astFactory.thisExpression(
_Tokens.THIS,
- );
+ )..staticType = _readType(data.expression_type);
}
ThrowExpression _read_throwExpression(LinkedNode data) {
return astFactory.throwExpression(
_Tokens.THROW,
_readNode(data.throwExpression_expression),
- );
+ )..staticType = _readType(data.expression_type);
}
TopLevelVariableDeclaration _read_topLevelVariableDeclaration(
@@ -1386,13 +1549,13 @@
try {
var node = astFactory.topLevelVariableDeclaration(
_readDocumentationComment(data),
- _readNodeList(data.annotatedNode_metadata),
+ _readNodeListLazy(data.annotatedNode_metadata),
_readNode(data.topLevelVariableDeclaration_variableList),
_Tokens.SEMICOLON,
externalKeyword:
AstBinaryFlags.isExternal(data.flags) ? _Tokens.EXTERNAL : null,
);
- LazyTopLevelVariableDeclaration.setData(_unitContext, data, node);
+ LazyTopLevelVariableDeclaration.setData(node, data);
return node;
} finally {
timerAstBinaryReaderTopLevelVar.stop();
@@ -1429,7 +1592,7 @@
: null,
question:
AstBinaryFlags.hasQuestion(data.flags) ? _Tokens.QUESTION : null,
- );
+ )..type = _readType(data.typeName_type);
}
TypeParameter _read_typeParameter(LinkedNode data) {
@@ -1437,10 +1600,10 @@
// added to the interface.
var node = (astFactory as AstFactoryImpl).typeParameter2(
comment: _readDocumentationComment(data),
- metadata: _readNodeList(data.annotatedNode_metadata),
+ metadata: _readNodeListLazy(data.annotatedNode_metadata),
name: _declaredIdentifier(data),
extendsKeyword: _Tokens.EXTENDS,
- bound: _readNode(data.typeParameter_bound),
+ bound: _readNodeLazy(data.typeParameter_bound),
);
LazyAst.setVariance(node, _decodeVariance(data.typeParameter_variance));
LazyTypeParameter.setData(node, data);
@@ -1459,7 +1622,7 @@
var node = astFactory.variableDeclaration(
_declaredIdentifier(data),
_Tokens.EQ,
- _readNode(data.variableDeclaration_initializer),
+ _readNodeLazy(data.variableDeclaration_initializer),
);
LazyVariableDeclaration.setData(node, data);
LazyAst.setInheritsCovariant(node, data.inheritsCovariant);
@@ -1478,8 +1641,8 @@
_Tokens.VAR,
),
lateKeyword: AstBinaryFlags.isLate(data.flags) ? _Tokens.LATE : null,
- metadata: _readNodeList(data.annotatedNode_metadata),
- type: _readNode(data.variableDeclarationList_type),
+ metadata: _readNodeListLazy(data.annotatedNode_metadata),
+ type: _readNodeLazy(data.variableDeclarationList_type),
variables: _readNodeList(data.variableDeclarationList_variables),
);
LazyVariableDeclarationList.setData(node, data);
@@ -1773,6 +1936,11 @@
}
}
+ AstNode _readNodeLazy(LinkedNode data) {
+ if (isLazy) return null;
+ return _readNode(data);
+ }
+
List<T> _readNodeList<T>(List<LinkedNode> nodeList) {
var result = List<T>.filled(nodeList.length, null);
for (var i = 0; i < nodeList.length; ++i) {
@@ -1789,6 +1957,10 @@
return _readNodeList(nodeList);
}
+ DartType _readType(LinkedNodeType data) {
+ return _unitContext.readType(data);
+ }
+
static Variance _decodeVariance(int encoding) {
if (encoding == 0) {
return null;
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
index 175ffc9..0035dd8 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_writer.dart
@@ -35,8 +35,6 @@
/// so initializers of final fields should be written.
bool _hasConstConstructor = false;
- _ResolutionBuilder _resolutionBuilder;
-
AstBinaryWriter(this._linkingContext);
@override
@@ -48,10 +46,7 @@
@override
LinkedNodeBuilder visitAnnotation(Annotation node) {
- var builder = LinkedNodeBuilder.annotation(
- annotation_name: node.name?.accept(this),
- annotation_constructorName: node.constructorName?.accept(this),
- );
+ var elementComponents = _componentsOfElement(node.element);
LinkedNodeBuilder storedArguments;
var arguments = node.arguments;
@@ -62,11 +57,14 @@
storedArguments = LinkedNodeBuilder.argumentList();
}
}
- builder.annotation_arguments = storedArguments;
- _componentsOfElement(node.element);
-
- return builder;
+ return LinkedNodeBuilder.annotation(
+ annotation_arguments: storedArguments,
+ annotation_constructorName: node.constructorName?.accept(this),
+ annotation_element: elementComponents.rawElement,
+ annotation_substitution: elementComponents.substitution,
+ annotation_name: node.name?.accept(this),
+ );
}
@override
@@ -104,42 +102,40 @@
@override
LinkedNodeBuilder visitAssignmentExpression(AssignmentExpression node) {
- var builder = LinkedNodeBuilder.assignmentExpression(
+ var elementComponents = _componentsOfElement(node.staticElement);
+ return LinkedNodeBuilder.assignmentExpression(
+ assignmentExpression_element: elementComponents.rawElement,
+ assignmentExpression_substitution: elementComponents.substitution,
assignmentExpression_leftHandSide: node.leftHandSide.accept(this),
assignmentExpression_operator: TokensWriter.astToBinaryTokenType(
node.operator.type,
),
assignmentExpression_rightHandSide: node.rightHandSide.accept(this),
+ expression_type: _writeType(node.staticType),
);
- _storeExpression(builder, node);
-
- _componentsOfElement(node.staticElement);
-
- return builder;
}
@override
LinkedNodeBuilder visitAwaitExpression(AwaitExpression node) {
return LinkedNodeBuilder.awaitExpression(
awaitExpression_expression: node.expression.accept(this),
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
}
@override
LinkedNodeBuilder visitBinaryExpression(BinaryExpression node) {
- var builder = LinkedNodeBuilder.binaryExpression(
+ var elementComponents = _componentsOfElement(node.staticElement);
+ return LinkedNodeBuilder.binaryExpression(
+ binaryExpression_element: elementComponents.rawElement,
+ binaryExpression_substitution: elementComponents.substitution,
binaryExpression_leftOperand: node.leftOperand.accept(this),
binaryExpression_operator: TokensWriter.astToBinaryTokenType(
node.operator.type,
),
binaryExpression_rightOperand: node.rightOperand.accept(this),
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
-
- _componentsOfElement(node.staticElement);
-
- return builder;
}
@override
@@ -171,7 +167,6 @@
LinkedNodeBuilder visitBooleanLiteral(BooleanLiteral node) {
return LinkedNodeBuilder.booleanLiteral(
booleanLiteral_value: node.value,
- expression_type: _writeType('staticType', node.staticType),
);
}
@@ -209,8 +204,6 @@
try {
timerAstBinaryWriterClass.start();
- _resolutionBuilder = _ResolutionBuilder();
-
_hasConstConstructor = false;
for (var member in node.members) {
if (member is ConstructorDeclaration && member.constKeyword != null) {
@@ -219,29 +212,15 @@
}
}
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
var builder = LinkedNodeBuilder.classDeclaration(
- classOrMixinDeclaration_typeParameters:
- node.typeParameters?.accept(this),
classDeclaration_extendsClause: node.extendsClause?.accept(this),
classDeclaration_nativeClause: node.nativeClause?.accept(this),
classDeclaration_withClause: node.withClause?.accept(this),
- classOrMixinDeclaration_implementsClause:
- node.implementsClause?.accept(this),
);
builder.flags = AstBinaryFlags.encode(
isAbstract: node.abstractKeyword != null,
);
-
_storeClassOrMixinDeclaration(builder, node);
-
- _storeResolution(builder);
-
- builder.classOrMixinDeclaration_members = _writeNodeList(node.members);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
-
return builder;
} finally {
timerAstBinaryWriterClass.stop();
@@ -252,25 +231,17 @@
LinkedNodeBuilder visitClassTypeAlias(ClassTypeAlias node) {
timerAstBinaryWriterClass.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
-
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
var builder = LinkedNodeBuilder.classTypeAlias(
- classTypeAlias_typeParameters: node.typeParameters?.accept(this),
- classTypeAlias_superclass: node.superclass.accept(this),
- classTypeAlias_withClause: node.withClause.accept(this),
classTypeAlias_implementsClause: node.implementsClause?.accept(this),
+ classTypeAlias_superclass: node.superclass.accept(this),
+ classTypeAlias_typeParameters: node.typeParameters?.accept(this),
+ classTypeAlias_withClause: node.withClause.accept(this),
);
builder.flags = AstBinaryFlags.encode(
isAbstract: node.abstractKeyword != null,
);
_storeTypeAlias(builder, node);
_storeIsSimpleBounded(builder, node);
-
- _storeResolution(builder);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
} finally {
timerAstBinaryWriterClass.stop();
@@ -341,8 +312,8 @@
LinkedNodeBuilder visitConditionalExpression(ConditionalExpression node) {
var builder = LinkedNodeBuilder.conditionalExpression(
conditionalExpression_condition: node.condition.accept(this),
- conditionalExpression_thenExpression: node.thenExpression.accept(this),
conditionalExpression_elseExpression: node.elseExpression.accept(this),
+ conditionalExpression_thenExpression: node.thenExpression.accept(this),
);
_storeExpression(builder, node);
return builder;
@@ -363,14 +334,12 @@
@override
LinkedNodeBuilder visitConstructorDeclaration(ConstructorDeclaration node) {
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.constructorDeclaration(
- constructorDeclaration_returnType: node.returnType.accept(this),
- constructorDeclaration_parameters: node.parameters.accept(this),
constructorDeclaration_initializers: _writeNodeList(node.initializers),
+ constructorDeclaration_parameters: node.parameters.accept(this),
constructorDeclaration_redirectedConstructor:
node.redirectedConstructor?.accept(this),
+ constructorDeclaration_returnType: node.returnType.accept(this),
informativeId: getInformativeId(node),
);
builder.flags = AstBinaryFlags.encode(
@@ -384,9 +353,6 @@
);
builder.name = node.name?.name;
_storeClassMember(builder, node);
-
- _storeResolution(builder);
-
return builder;
}
@@ -394,8 +360,8 @@
LinkedNodeBuilder visitConstructorFieldInitializer(
ConstructorFieldInitializer node) {
var builder = LinkedNodeBuilder.constructorFieldInitializer(
- constructorFieldInitializer_fieldName: node.fieldName.accept(this),
constructorFieldInitializer_expression: node.expression.accept(this),
+ constructorFieldInitializer_fieldName: node.fieldName.accept(this),
);
builder.flags = AstBinaryFlags.encode(
hasThis: node.thisKeyword != null,
@@ -406,14 +372,13 @@
@override
LinkedNodeBuilder visitConstructorName(ConstructorName node) {
- var builder = LinkedNodeBuilder.constructorName(
- constructorName_type: node.type.accept(this),
+ var elementComponents = _componentsOfElement(node.staticElement);
+ return LinkedNodeBuilder.constructorName(
+ constructorName_element: elementComponents.rawElement,
+ constructorName_substitution: elementComponents.substitution,
constructorName_name: node.name?.accept(this),
+ constructorName_type: node.type.accept(this),
);
-
- _componentsOfElement(node.staticElement);
-
- return builder;
}
@override
@@ -428,8 +393,8 @@
@override
LinkedNodeBuilder visitDeclaredIdentifier(DeclaredIdentifier node) {
var builder = LinkedNodeBuilder.declaredIdentifier(
- declaredIdentifier_type: node.type?.accept(this),
declaredIdentifier_identifier: node.identifier.accept(this),
+ declaredIdentifier_type: node.type?.accept(this),
);
builder.flags = AstBinaryFlags.encode(
isConst: node.keyword?.keyword == Keyword.CONST,
@@ -448,9 +413,9 @@
}
var builder = LinkedNodeBuilder.defaultFormalParameter(
- defaultFormalParameter_parameter: node.parameter.accept(this),
defaultFormalParameter_defaultValue: defaultValue?.accept(this),
defaultFormalParameter_kind: _toParameterKind(node),
+ defaultFormalParameter_parameter: node.parameter.accept(this),
informativeId: getInformativeId(node),
);
builder.flags = AstBinaryFlags.encode(
@@ -505,12 +470,10 @@
@override
LinkedNodeBuilder visitEnumDeclaration(EnumDeclaration node) {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.enumDeclaration(
enumDeclaration_constants: _writeNodeList(node.constants),
);
_storeNamedCompilationUnitMember(builder, node);
- _storeResolution(builder);
return builder;
}
@@ -518,10 +481,8 @@
LinkedNodeBuilder visitExportDirective(ExportDirective node) {
timerAstBinaryWriterDirective.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.exportDirective();
_storeNamespaceDirective(builder, node);
- _storeResolution(builder);
return builder;
} finally {
timerAstBinaryWriterDirective.stop();
@@ -561,12 +522,10 @@
@override
LinkedNodeBuilder visitExtensionDeclaration(ExtensionDeclaration node) {
- var typeParameters = _enterTypeParameters(node.typeParameters);
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.extensionDeclaration(
- extensionDeclaration_typeParameters: node.typeParameters?.accept(this),
extensionDeclaration_extendedType: node.extendedType.accept(this),
+ extensionDeclaration_members: _writeNodeList(node.members),
+ extensionDeclaration_typeParameters: node.typeParameters?.accept(this),
);
_storeCompilationUnitMember(builder, node);
@@ -574,34 +533,26 @@
builder.name = node.name?.name;
LazyExtensionDeclaration.get(node).put(builder);
- _storeResolution(builder);
-
- builder.extensionDeclaration_members = _writeNodeList(node.members);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
}
@override
LinkedNodeBuilder visitExtensionOverride(ExtensionOverride node) {
var builder = LinkedNodeBuilder.extensionOverride(
- extensionOverride_extensionName: node.extensionName.accept(this),
- extensionOverride_typeArguments: node.typeArguments?.accept(this),
extensionOverride_arguments: _writeNodeList(
node.argumentList.arguments,
),
- extensionOverride_typeArgumentTypes: node.typeArgumentTypes
- .map((t) => _writeType('typeArgumentType', t))
- .toList(),
- extensionOverride_extendedType:
- _writeType('extendedType', node.extendedType),
+ extensionOverride_extensionName: node.extensionName.accept(this),
+ extensionOverride_typeArguments: node.typeArguments?.accept(this),
+ extensionOverride_typeArgumentTypes:
+ node.typeArgumentTypes.map(_writeType).toList(),
+ extensionOverride_extendedType: _writeType(node.extendedType),
);
return builder;
}
@override
LinkedNodeBuilder visitFieldDeclaration(FieldDeclaration node) {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.fieldDeclaration(
fieldDeclaration_fields: node.fields.accept(this),
informativeId: getInformativeId(node),
@@ -613,22 +564,19 @@
isStatic: node.staticKeyword != null,
);
_storeClassMember(builder, node);
- _storeResolution(builder);
return builder;
}
@override
LinkedNodeBuilder visitFieldFormalParameter(FieldFormalParameter node) {
- var typeParameters = _enterTypeParameters(node.typeParameters);
var builder = LinkedNodeBuilder.fieldFormalParameter(
- fieldFormalParameter_typeParameters: node.typeParameters?.accept(this),
- fieldFormalParameter_type: node.type?.accept(this),
fieldFormalParameter_formalParameters: node.parameters?.accept(this),
+ fieldFormalParameter_type: node.type?.accept(this),
+ fieldFormalParameter_typeParameters: node.typeParameters?.accept(this),
);
_storeNormalFormalParameter(builder, node, node.keyword);
builder.flags |= AstBinaryFlags.encode(hasQuestion: node.question != null);
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
}
@@ -705,14 +653,10 @@
@override
LinkedNodeBuilder visitFunctionDeclaration(FunctionDeclaration node) {
- _resolutionBuilder = _ResolutionBuilder();
-
- var typeParameters =
- _enterTypeParameters(node.functionExpression.typeParameters);
var builder = LinkedNodeBuilder.functionDeclaration(
+ functionDeclaration_returnType: node.returnType?.accept(this),
functionDeclaration_functionExpression:
node.functionExpression?.accept(this),
- functionDeclaration_returnType: node.returnType?.accept(this),
);
builder.flags = AstBinaryFlags.encode(
isExternal: node.externalKeyword != null,
@@ -721,8 +665,6 @@
);
_storeNamedCompilationUnitMember(builder, node);
_writeActualReturnType(builder, node);
- _linkingContext.typeParameterIndexer.exit(typeParameters);
- _storeResolution(builder);
return builder;
}
@@ -767,24 +709,16 @@
LinkedNodeBuilder visitFunctionTypeAlias(FunctionTypeAlias node) {
timerAstBinaryWriterTypedef.start();
try {
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.functionTypeAlias(
- functionTypeAlias_typeParameters: node.typeParameters?.accept(this),
- functionTypeAlias_returnType: node.returnType?.accept(this),
functionTypeAlias_formalParameters: node.parameters.accept(this),
+ functionTypeAlias_returnType: node.returnType?.accept(this),
+ functionTypeAlias_typeParameters: node.typeParameters?.accept(this),
typeAlias_hasSelfReference:
LazyFunctionTypeAlias.getHasSelfReference(node),
);
_storeTypeAlias(builder, node);
_writeActualReturnType(builder, node);
_storeIsSimpleBounded(builder, node);
-
- _storeResolution(builder);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
} finally {
timerAstBinaryWriterTypedef.stop();
@@ -794,16 +728,14 @@
@override
LinkedNodeBuilder visitFunctionTypedFormalParameter(
FunctionTypedFormalParameter node) {
- var typeParameters = _enterTypeParameters(node.typeParameters);
var builder = LinkedNodeBuilder.functionTypedFormalParameter(
- functionTypedFormalParameter_typeParameters:
- node.typeParameters?.accept(this),
- functionTypedFormalParameter_returnType: node.returnType?.accept(this),
functionTypedFormalParameter_formalParameters:
node.parameters.accept(this),
+ functionTypedFormalParameter_returnType: node.returnType?.accept(this),
+ functionTypedFormalParameter_typeParameters:
+ node.typeParameters?.accept(this),
);
_storeNormalFormalParameter(builder, node, null);
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
}
@@ -812,22 +744,18 @@
var id = LazyAst.getGenericFunctionTypeId(node);
assert(id != null);
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
var builder = LinkedNodeBuilder.genericFunctionType(
genericFunctionType_id: id,
- genericFunctionType_typeParameters: node.typeParameters?.accept(this),
genericFunctionType_returnType: node.returnType?.accept(this),
+ genericFunctionType_typeParameters: node.typeParameters?.accept(this),
genericFunctionType_formalParameters: node.parameters.accept(this),
- genericFunctionType_type: _writeType('type', node.type),
+ genericFunctionType_type: _writeType(node.type),
);
builder.flags = AstBinaryFlags.encode(
hasQuestion: node.question != null,
);
_writeActualReturnType(builder, node);
- _linkingContext.typeParameterIndexer.exit(typeParameters);
-
return builder;
}
@@ -835,10 +763,6 @@
LinkedNodeBuilder visitGenericTypeAlias(GenericTypeAlias node) {
timerAstBinaryWriterTypedef.start();
try {
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.genericTypeAlias(
genericTypeAlias_typeParameters: node.typeParameters?.accept(this),
genericTypeAlias_functionType: node.functionType?.accept(this),
@@ -847,10 +771,6 @@
);
_storeTypeAlias(builder, node);
_storeIsSimpleBounded(builder, node);
-
- _storeResolution(builder);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
return builder;
} finally {
timerAstBinaryWriterTypedef.stop();
@@ -870,8 +790,8 @@
LinkedNodeBuilder visitIfElement(IfElement node) {
var builder = LinkedNodeBuilder.ifElement(
ifMixin_condition: node.condition.accept(this),
- ifElement_thenElement: node.thenElement.accept(this),
ifElement_elseElement: node.elseElement?.accept(this),
+ ifElement_thenElement: node.thenElement.accept(this),
);
return builder;
}
@@ -897,7 +817,6 @@
LinkedNodeBuilder visitImportDirective(ImportDirective node) {
timerAstBinaryWriterDirective.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.importDirective(
importDirective_prefix: node.prefix?.name,
);
@@ -905,7 +824,6 @@
isDeferred: node.deferredKeyword != null,
);
_storeNamespaceDirective(builder, node);
- _storeResolution(builder);
return builder;
} finally {
timerAstBinaryWriterDirective.stop();
@@ -914,12 +832,14 @@
@override
LinkedNodeBuilder visitIndexExpression(IndexExpression node) {
+ var elementComponents = _componentsOfElement(node.staticElement);
var builder = LinkedNodeBuilder.indexExpression(
+ indexExpression_element: elementComponents.rawElement,
+ indexExpression_substitution: elementComponents.substitution,
indexExpression_index: node.index.accept(this),
indexExpression_target: node.target?.accept(this),
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
- _componentsOfElement(node.staticElement);
builder.flags = AstBinaryFlags.encode(
hasPeriod: node.period != null,
hasQuestion: node.question != null,
@@ -932,14 +852,14 @@
InstanceCreationExpression node) {
InstanceCreationExpressionImpl nodeImpl = node;
var builder = LinkedNodeBuilder.instanceCreationExpression(
+ instanceCreationExpression_arguments: _writeNodeList(
+ node.argumentList.arguments,
+ ),
instanceCreationExpression_constructorName:
node.constructorName.accept(this),
instanceCreationExpression_typeArguments:
nodeImpl.typeArguments?.accept(this),
- instanceCreationExpression_arguments: _writeNodeList(
- node.argumentList.arguments,
- ),
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
builder.flags = AstBinaryFlags.encode(
isConst: node.keyword?.type == Keyword.CONST,
@@ -951,7 +871,7 @@
@override
LinkedNodeBuilder visitIntegerLiteral(IntegerLiteral node) {
return LinkedNodeBuilder.integerLiteral(
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
integerLiteral_value: node.value,
);
}
@@ -1004,13 +924,11 @@
LinkedNodeBuilder visitLibraryDirective(LibraryDirective node) {
timerAstBinaryWriterDirective.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.libraryDirective(
informativeId: getInformativeId(node),
libraryDirective_name: node.name.accept(this),
);
_storeDirective(builder, node);
- _storeResolution(builder);
return builder;
} finally {
timerAstBinaryWriterDirective.stop();
@@ -1043,13 +961,9 @@
@override
LinkedNodeBuilder visitMethodDeclaration(MethodDeclaration node) {
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.methodDeclaration(
- methodDeclaration_typeParameters: node.typeParameters?.accept(this),
methodDeclaration_returnType: node.returnType?.accept(this),
+ methodDeclaration_typeParameters: node.typeParameters?.accept(this),
methodDeclaration_formalParameters: node.parameters?.accept(this),
methodDeclaration_hasOperatorEqualWithParameterTypeFromObject:
LazyAst.hasOperatorEqualParameterTypeFromObject(node),
@@ -1066,22 +980,18 @@
isSet: node.isSetter,
isStatic: node.isStatic,
);
-
- _storeClassMember(builder, node);
-
builder.topLevelTypeInferenceError = LazyAst.getTypeInferenceError(node);
+ _storeClassMember(builder, node);
_storeInformativeId(builder, node);
_writeActualReturnType(builder, node);
- _linkingContext.typeParameterIndexer.exit(typeParameters);
- _storeResolution(builder);
return builder;
}
@override
LinkedNodeBuilder visitMethodInvocation(MethodInvocation node) {
var builder = LinkedNodeBuilder.methodInvocation(
- methodInvocation_target: node.target?.accept(this),
methodInvocation_methodName: node.methodName?.accept(this),
+ methodInvocation_target: node.target?.accept(this),
);
builder.flags = AstBinaryFlags.encode(
hasPeriod: node.operator?.type == TokenType.PERIOD,
@@ -1095,26 +1005,10 @@
LinkedNodeBuilder visitMixinDeclaration(MixinDeclaration node) {
timerAstBinaryWriterMixin.start();
try {
- var typeParameters = _enterTypeParameters(node.typeParameters);
-
- _resolutionBuilder = _ResolutionBuilder();
-
var builder = LinkedNodeBuilder.mixinDeclaration(
- classOrMixinDeclaration_typeParameters:
- node.typeParameters?.accept(this),
mixinDeclaration_onClause: node.onClause?.accept(this),
- classOrMixinDeclaration_implementsClause:
- node.implementsClause?.accept(this),
);
-
_storeClassOrMixinDeclaration(builder, node);
-
- _storeResolution(builder);
-
- builder.classOrMixinDeclaration_members = _writeNodeList(node.members);
-
- _linkingContext.typeParameterIndexer.exit(typeParameters);
-
LazyMixinDeclaration.get(node).put(builder);
return builder;
} finally {
@@ -1125,8 +1019,8 @@
@override
LinkedNodeBuilder visitNamedExpression(NamedExpression node) {
return LinkedNodeBuilder.namedExpression(
- namedExpression_name: node.name.accept(this),
namedExpression_expression: node.expression.accept(this),
+ namedExpression_name: node.name.accept(this),
);
}
@@ -1170,10 +1064,8 @@
LinkedNodeBuilder visitPartDirective(PartDirective node) {
timerAstBinaryWriterDirective.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.partDirective();
_storeUriBasedDirective(builder, node);
- _storeResolution(builder);
return builder;
} finally {
timerAstBinaryWriterDirective.stop();
@@ -1184,13 +1076,11 @@
LinkedNodeBuilder visitPartOfDirective(PartOfDirective node) {
timerAstBinaryWriterDirective.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.partOfDirective(
partOfDirective_libraryName: node.libraryName?.accept(this),
partOfDirective_uri: node.uri?.accept(this),
);
_storeDirective(builder, node);
- _storeResolution(builder);
return builder;
} finally {
timerAstBinaryWriterDirective.stop();
@@ -1199,53 +1089,49 @@
@override
LinkedNodeBuilder visitPostfixExpression(PostfixExpression node) {
- var builder = LinkedNodeBuilder.postfixExpression(
+ var elementComponents = _componentsOfElement(node.staticElement);
+ return LinkedNodeBuilder.postfixExpression(
+ expression_type: _writeType(node.staticType),
+ postfixExpression_element: elementComponents.rawElement,
+ postfixExpression_substitution: elementComponents.substitution,
postfixExpression_operand: node.operand.accept(this),
postfixExpression_operator: TokensWriter.astToBinaryTokenType(
node.operator.type,
),
);
-
- _componentsOfElement(node.staticElement);
-
- _storeExpression(builder, node);
-
- return builder;
}
@override
LinkedNodeBuilder visitPrefixedIdentifier(PrefixedIdentifier node) {
return LinkedNodeBuilder.prefixedIdentifier(
- prefixedIdentifier_prefix: node.prefix.accept(this),
prefixedIdentifier_identifier: node.identifier.accept(this),
- expression_type: _writeType('staticType', node.staticType),
+ prefixedIdentifier_prefix: node.prefix.accept(this),
+ expression_type: _writeType(node.staticType),
);
}
@override
LinkedNodeBuilder visitPrefixExpression(PrefixExpression node) {
- var builder = LinkedNodeBuilder.prefixExpression(
+ var elementComponents = _componentsOfElement(node.staticElement);
+ return LinkedNodeBuilder.prefixExpression(
+ expression_type: _writeType(node.staticType),
+ prefixExpression_element: elementComponents.rawElement,
+ prefixExpression_substitution: elementComponents.substitution,
prefixExpression_operand: node.operand.accept(this),
prefixExpression_operator: TokensWriter.astToBinaryTokenType(
node.operator.type,
),
);
-
- _componentsOfElement(node.staticElement);
-
- _storeExpression(builder, node);
-
- return builder;
}
@override
LinkedNodeBuilder visitPropertyAccess(PropertyAccess node) {
var builder = LinkedNodeBuilder.propertyAccess(
- propertyAccess_target: node.target?.accept(this),
propertyAccess_operator: TokensWriter.astToBinaryTokenType(
node.operator.type,
),
propertyAccess_propertyName: node.propertyName.accept(this),
+ propertyAccess_target: node.target?.accept(this),
);
_storeExpression(builder, node);
return builder;
@@ -1254,18 +1140,19 @@
@override
LinkedNodeBuilder visitRedirectingConstructorInvocation(
RedirectingConstructorInvocation node) {
+ var elementComponents = _componentsOfElement(node.staticElement);
var builder = LinkedNodeBuilder.redirectingConstructorInvocation(
- redirectingConstructorInvocation_constructorName:
- node.constructorName?.accept(this),
redirectingConstructorInvocation_arguments:
node.argumentList.accept(this),
+ redirectingConstructorInvocation_constructorName:
+ node.constructorName?.accept(this),
+ redirectingConstructorInvocation_element: elementComponents.rawElement,
+ redirectingConstructorInvocation_substitution:
+ elementComponents.substitution,
);
builder.flags = AstBinaryFlags.encode(
hasThis: node.thisKeyword != null,
);
-
- _componentsOfElement(node.staticElement);
-
_storeConstructorInitializer(builder, node);
return builder;
}
@@ -1273,7 +1160,7 @@
@override
LinkedNodeBuilder visitRethrowExpression(RethrowExpression node) {
return LinkedNodeBuilder.rethrowExpression(
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
}
@@ -1328,22 +1215,16 @@
}
}
+ var elementComponents = _componentsOfElement(element);
var builder = LinkedNodeBuilder.simpleIdentifier(
- name: node.name,
+ simpleIdentifier_element: elementComponents.rawElement,
+ simpleIdentifier_substitution: elementComponents.substitution,
+ expression_type: _writeType(node.staticType),
);
-
- var hasType = node.staticType != null;
builder.flags = AstBinaryFlags.encode(
isDeclaration: node is DeclaredSimpleIdentifier,
- hasType: hasType,
);
-
- _componentsOfElement(element);
-
- if (hasType) {
- _writeType('staticType', node.staticType);
- }
-
+ builder.name = node.name;
return builder;
}
@@ -1375,14 +1256,14 @@
@override
LinkedNodeBuilder visitSuperConstructorInvocation(
SuperConstructorInvocation node) {
+ var elementComponents = _componentsOfElement(node.staticElement);
var builder = LinkedNodeBuilder.superConstructorInvocation(
+ superConstructorInvocation_arguments: node.argumentList.accept(this),
superConstructorInvocation_constructorName:
node.constructorName?.accept(this),
- superConstructorInvocation_arguments: node.argumentList.accept(this),
+ superConstructorInvocation_element: elementComponents.rawElement,
+ superConstructorInvocation_substitution: elementComponents.substitution,
);
-
- _componentsOfElement(node.staticElement);
-
_storeConstructorInitializer(builder, node);
return builder;
}
@@ -1438,7 +1319,7 @@
LinkedNodeBuilder visitThrowExpression(ThrowExpression node) {
return LinkedNodeBuilder.throwExpression(
throwExpression_expression: node.expression.accept(this),
- expression_type: _writeType('staticType', node.staticType),
+ expression_type: _writeType(node.staticType),
);
}
@@ -1447,7 +1328,6 @@
TopLevelVariableDeclaration node) {
timerAstBinaryWriterTopVar.start();
try {
- _resolutionBuilder = _ResolutionBuilder();
var builder = LinkedNodeBuilder.topLevelVariableDeclaration(
informativeId: getInformativeId(node),
topLevelVariableDeclaration_variableList: node.variables?.accept(this),
@@ -1457,8 +1337,6 @@
);
_storeCompilationUnitMember(builder, node);
- _storeResolution(builder);
-
return builder;
} finally {
timerAstBinaryWriterTopVar.stop();
@@ -1483,26 +1361,23 @@
@override
LinkedNodeBuilder visitTypeName(TypeName node) {
- var builder = LinkedNodeBuilder.typeName(
+ return LinkedNodeBuilder.typeName(
typeName_name: node.name.accept(this),
+ typeName_type: _writeType(node.type),
typeName_typeArguments: _writeNodeList(
node.typeArguments?.arguments,
),
- typeName_type: _writeType('type', node.type),
)..flags = AstBinaryFlags.encode(
hasQuestion: node.question != null,
hasTypeArguments: node.typeArguments != null,
);
-
- return builder;
}
@override
LinkedNodeBuilder visitTypeParameter(TypeParameter node) {
var builder = LinkedNodeBuilder.typeParameter(
typeParameter_bound: node.bound?.accept(this),
- typeParameter_defaultType:
- _writeType('defaultType', LazyAst.getDefaultType(node)),
+ typeParameter_defaultType: _writeType(LazyAst.getDefaultType(node)),
typeParameter_variance: _encodeVariance(LazyAst.getVariance(node)),
informativeId: getInformativeId(node),
);
@@ -1614,54 +1489,24 @@
}
}
- void _componentsOfElement(Element element) {
+ _ElementComponents _componentsOfElement(Element element) {
if (element is ParameterMember) {
element = element.declaration;
}
if (element is Member) {
- var declaration = element.declaration;
- var elementIndex = _indexOfElement(declaration);
-
- var typeArguments = _enclosingClassTypeArguments(
- declaration,
- element.substitution.map,
- );
+ var elementIndex = _indexOfElement(element.declaration);
+ var substitution = element.substitution.map;
var substitutionBuilder = LinkedNodeTypeSubstitutionBuilder(
isLegacy: element.isLegacy,
- typeArguments: typeArguments
- .map((type) => _linkingContext.writeType(type))
- .toList(),
+ typeParameters: substitution.keys.map(_indexOfElement).toList(),
+ typeArguments: substitution.values.map(_writeType).toList(),
);
-
- if (_resolutionBuilder != null) {
- _resolutionBuilder.elements.add(elementIndex);
- _resolutionBuilder.substitutions.add(substitutionBuilder);
- }
- } else {
- var elementIndex = _indexOfElement(element);
-
- if (_resolutionBuilder != null) {
- _resolutionBuilder.elements.add(elementIndex);
- _resolutionBuilder.substitutions
- .add(LinkedNodeTypeSubstitutionBuilder());
- }
- }
- }
-
- List<TypeParameterElement> _enterTypeParameters(TypeParameterList node) {
- if (node == null) {
- return const [];
+ return _ElementComponents(elementIndex, substitutionBuilder);
}
- var typeParameterElements = <TypeParameterElement>[];
- for (var typeParameter in node.typeParameters) {
- typeParameterElements.add(typeParameter.declaredElement);
- }
-
- _linkingContext.typeParameterIndexer.enter(typeParameterElements);
-
- return typeParameterElements;
+ var elementIndex = _indexOfElement(element);
+ return _ElementComponents(elementIndex, null);
}
int _indexOfElement(Element element) {
@@ -1677,9 +1522,13 @@
}
void _storeClassOrMixinDeclaration(
- LinkedNodeBuilder builder,
- ClassOrMixinDeclaration node,
- ) {
+ LinkedNodeBuilder builder, ClassOrMixinDeclaration node) {
+ builder
+ ..classOrMixinDeclaration_implementsClause =
+ node.implementsClause?.accept(this)
+ ..classOrMixinDeclaration_members = _writeNodeList(node.members)
+ ..classOrMixinDeclaration_typeParameters =
+ node.typeParameters?.accept(this);
_storeNamedCompilationUnitMember(builder, node);
_storeIsSimpleBounded(builder, node);
}
@@ -1702,7 +1551,7 @@
}
void _storeExpression(LinkedNodeBuilder builder, Expression node) {
- builder.expression_type = _writeType('staticType', node.staticType);
+ builder.expression_type = _writeType(node.staticType);
}
void _storeForEachParts(LinkedNodeBuilder builder, ForEachParts node) {
@@ -1746,8 +1595,7 @@
_storeExpression(builder, node);
builder
..invocationExpression_arguments = node.argumentList.accept(this)
- ..invocationExpression_invokeType =
- _writeType('invokeType', node.staticInvokeType)
+ ..invocationExpression_invokeType = _writeType(node.staticInvokeType)
..invocationExpression_typeArguments = node.typeArguments?.accept(this);
}
@@ -1789,15 +1637,6 @@
..normalFormalParameter_metadata = _writeNodeList(node.metadata);
}
- void _storeResolution(LinkedNodeBuilder builder) {
- builder.resolution = LinkedNodeResolutionBuilder(
- elements: _resolutionBuilder.elements,
- substitutions: _resolutionBuilder.substitutions,
- types: _resolutionBuilder.types,
- );
- _resolutionBuilder = null;
- }
-
void _storeStatement(LinkedNodeBuilder builder, Statement node) {}
void _storeSwitchMember(LinkedNodeBuilder builder, SwitchMember node) {
@@ -1829,19 +1668,20 @@
_storeDirective(builder, node);
builder
..uriBasedDirective_uri = node.uri.accept(this)
- ..uriBasedDirective_uriContent = node.uriContent;
+ ..uriBasedDirective_uriContent = node.uriContent
+ ..uriBasedDirective_uriElement = _indexOfElement(node.uriElement);
}
void _writeActualReturnType(LinkedNodeBuilder builder, AstNode node) {
var type = LazyAst.getReturnType(node);
// TODO(scheglov) Check for `null` when writing resolved AST.
- builder.actualReturnType = _writeType('actualReturnType', type);
+ builder.actualReturnType = _writeType(type);
}
void _writeActualType(LinkedNodeBuilder builder, AstNode node) {
var type = LazyAst.getType(node);
// TODO(scheglov) Check for `null` when writing resolved AST.
- builder.actualType = _writeType('actualType', type);
+ builder.actualType = _writeType(type);
}
List<LinkedNodeBuilder> _writeNodeList(List<AstNode> nodeList) {
@@ -1860,38 +1700,8 @@
return result;
}
- LinkedNodeTypeBuilder _writeType(String name, DartType type) {
- var typeBuilder = _linkingContext.writeType(type);
-
- if (_resolutionBuilder != null) {
- _resolutionBuilder.addType(name, typeBuilder);
- return null;
- }
-
- return typeBuilder;
- }
-
- static List<DartType> _enclosingClassTypeArguments(
- Element declaration,
- Map<TypeParameterElement, DartType> substitution,
- ) {
- var enclosing = declaration.enclosingElement;
- if (enclosing is TypeParameterizedElement) {
- if (enclosing is! ClassElement && enclosing is! ExtensionElement) {
- return const <DartType>[];
- }
-
- var typeParameters = enclosing.typeParameters;
- if (typeParameters.isEmpty) {
- return const <DartType>[];
- }
-
- return typeParameters
- .map((typeParameter) => substitution[typeParameter])
- .toList(growable: false);
- }
-
- return const <DartType>[];
+ LinkedNodeTypeBuilder _writeType(DartType type) {
+ return _linkingContext.writeType(type);
}
static int _encodeVariance(Variance variance) {
@@ -1939,6 +1749,14 @@
}
}
+/// Components of a [Member] - the raw element, and the substitution.
+class _ElementComponents {
+ final int rawElement;
+ final LinkedNodeTypeSubstitutionBuilder substitution;
+
+ _ElementComponents(this.rawElement, this.substitution);
+}
+
class _IsSerializableExpressionVisitor extends RecursiveAstVisitor<void> {
bool result = true;
@@ -1947,13 +1765,3 @@
result = false;
}
}
-
-class _ResolutionBuilder {
- final List<int> elements = [];
- final List<LinkedNodeTypeSubstitutionBuilder> substitutions = [];
- final List<LinkedNodeTypeBuilder> types = [];
-
- void addType(String name, LinkedNodeTypeBuilder type) {
- types.add(type);
- }
-}
diff --git a/pkg/analyzer/lib/src/summary2/default_types_builder.dart b/pkg/analyzer/lib/src/summary2/default_types_builder.dart
index 3eac814..4a8d0c5 100644
--- a/pkg/analyzer/lib/src/summary2/default_types_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/default_types_builder.dart
@@ -235,7 +235,7 @@
void recurseParameters(List<TypeParameterElement> parameters) {
for (TypeParameterElementImpl parameter in parameters) {
TypeParameter parameterNode = parameter.linkedNode;
- var bound = parameterNode?.bound;
+ var bound = parameterNode.bound;
if (bound != null) {
var tails = _findRawTypePathsToDeclaration(
parameterNode,
diff --git a/pkg/analyzer/lib/src/summary2/lazy_ast.dart b/pkg/analyzer/lib/src/summary2/lazy_ast.dart
index 25f5416..dea4fa9 100644
--- a/pkg/analyzer/lib/src/summary2/lazy_ast.dart
+++ b/pkg/analyzer/lib/src/summary2/lazy_ast.dart
@@ -9,7 +9,6 @@
import 'package:analyzer/src/dart/resolver/variance.dart';
import 'package:analyzer/src/summary/format.dart';
import 'package:analyzer/src/summary/idl.dart';
-import 'package:analyzer/src/summary2/apply_resolution.dart';
import 'package:analyzer/src/summary2/ast_binary_flags.dart';
import 'package:analyzer/src/summary2/ast_binary_reader.dart';
import 'package:analyzer/src/summary2/linked_unit_context.dart';
@@ -31,78 +30,10 @@
static const _typeKey = 'lazyAst_type';
static const _varianceKey = 'lazyAst_variance';
- static final Expando<LinkedNode> _dataExpando = Expando();
-
final LinkedNode data;
LazyAst(this.data);
- static void applyResolution(AstNode node) {
- if (node is ClassDeclaration) {
- var lazy = LazyClassDeclaration.get(node);
- lazy?.applyResolution();
- } else if (node is ClassTypeAlias) {
- var lazy = LazyClassTypeAlias.get(node);
- lazy?.applyResolution();
- } else if (node is CompilationUnit) {
- // TODO(scheglov)
- } else if (node is ConstructorDeclaration) {
- var lazy = LazyConstructorDeclaration.get(node);
- lazy?.applyResolution();
- } else if (node is Directive) {
- var lazy = LazyDirective.get(node);
- lazy?.applyResolution();
- } else if (node is EnumDeclaration) {
- var lazy = LazyEnumDeclaration.get(node);
- lazy?.applyResolution();
- } else if (node is ExtensionDeclaration) {
- var lazy = LazyExtensionDeclaration.get(node);
- if (lazy?.data != null) {
- lazy?.applyResolution();
- }
- } else if (node is FieldFormalParameter) {
- // TODO(scheglov)
- } else if (node is FunctionDeclaration) {
- var lazy = LazyFunctionDeclaration.get(node);
- lazy?.applyResolution();
- } else if (node is FunctionTypeAlias) {
- var lazy = LazyFunctionTypeAlias.get(node);
- lazy?.applyResolution();
- } else if (node is GenericFunctionType) {
- // TODO(scheglov)
- } else if (node is GenericTypeAlias) {
- var lazy = LazyGenericTypeAlias.get(node);
- lazy?.applyResolution();
- } else if (node is ImportDirective) {
- // TODO(scheglov)
- } else if (node is MethodDeclaration) {
- var lazy = LazyMethodDeclaration.get(node);
- lazy?.applyResolution();
- } else if (node is MixinDeclaration) {
- var lazy = LazyMixinDeclaration.get(node);
- if (lazy?.data != null) {
- lazy?.applyResolution();
- }
- } else if (node is SimpleFormalParameter) {
- // TODO(scheglov)
- } else if (node is VariableDeclaration) {
- var parent2 = node.parent.parent;
- if (parent2 is FieldDeclaration) {
- var lazy = LazyFieldDeclaration.get(parent2);
- lazy?.applyResolution();
- } else if (parent2 is TopLevelVariableDeclaration) {
- var lazy = LazyTopLevelVariableDeclaration.get(parent2);
- lazy?.applyResolution();
- } else {
- throw UnimplementedError('${parent2.runtimeType}');
- }
- }
- }
-
- static LinkedNode getData(AstNode node) {
- return _dataExpando[node];
- }
-
static DartType getDefaultType(TypeParameter node) {
return node.getProperty(_defaultTypeKey);
}
@@ -148,10 +79,6 @@
return node.getProperty(_isSimplyBoundedKey);
}
- static void setData(AstNode node, LinkedNode data) {
- _dataExpando[node] = data;
- }
-
static void setDefaultType(TypeParameter node, DartType type) {
node.setProperty(_defaultTypeKey, type);
}
@@ -201,29 +128,16 @@
class LazyClassDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final ClassDeclaration node;
bool _hasDocumentationComment = false;
+ bool _hasExtendsClause = false;
+ bool _hasImplementsClause = false;
bool _hasMembers = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
+ bool _hasWithClause = false;
- LazyClassDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyClassDeclaration(this.data);
static LazyClassDeclaration get(ClassDeclaration node) {
return node.getProperty(_key);
@@ -262,6 +176,32 @@
}
}
+ static void readExtendsClause(
+ AstBinaryReader reader,
+ ClassDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasExtendsClause) {
+ node.extendsClause = reader.readNode(
+ lazy.data.classDeclaration_extendsClause,
+ );
+ lazy._hasExtendsClause = true;
+ }
+ }
+
+ static void readImplementsClause(
+ AstBinaryReader reader,
+ ClassDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasImplementsClause) {
+ node.implementsClause = reader.readNode(
+ lazy.data.classOrMixinDeclaration_implementsClause,
+ );
+ lazy._hasImplementsClause = true;
+ }
+ }
+
static void readMembers(
AstBinaryReader reader,
ClassDeclaration node,
@@ -277,12 +217,36 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readMetadata(
+ AstBinaryReader reader,
ClassDeclaration node,
) {
- node.setProperty(_key, LazyClassDeclaration(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readWithClause(
+ AstBinaryReader reader,
+ ClassDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasWithClause) {
+ node.withClause = reader.readNode(
+ lazy.data.classDeclaration_withClause,
+ );
+ lazy._hasWithClause = true;
+ }
+ }
+
+ static void setData(ClassDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyClassDeclaration(data));
LazyAst.setSimplyBounded(node, data.simplyBoundable_isSimplyBounded);
}
}
@@ -290,28 +254,15 @@
class LazyClassTypeAlias {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final ClassTypeAlias node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasImplementsClause = false;
+ bool _hasMetadata = false;
+ bool _hasSuperclass = false;
+ bool _hasWithClause = false;
- LazyClassTypeAlias(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyClassTypeAlias(this.data);
static LazyClassTypeAlias get(ClassTypeAlias node) {
return node.getProperty(_key);
@@ -350,12 +301,62 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readImplementsClause(
+ AstBinaryReader reader,
ClassTypeAlias node,
) {
- node.setProperty(_key, LazyClassTypeAlias(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasImplementsClause) {
+ node.implementsClause = reader.readNode(
+ lazy.data.classTypeAlias_implementsClause,
+ );
+ lazy._hasImplementsClause = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ ClassTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readSuperclass(
+ AstBinaryReader reader,
+ ClassTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasSuperclass) {
+ node.superclass = reader.readNode(
+ lazy.data.classTypeAlias_superclass,
+ );
+ lazy._hasSuperclass = true;
+ }
+ }
+
+ static void readWithClause(
+ AstBinaryReader reader,
+ ClassTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasWithClause) {
+ node.withClause = reader.readNode(
+ lazy.data.classTypeAlias_withClause,
+ );
+ lazy._hasWithClause = true;
+ }
+ }
+
+ static void setData(ClassTypeAlias node, LinkedNode data) {
+ node.setProperty(_key, LazyClassTypeAlias(data));
LazyAst.setSimplyBounded(node, data.simplyBoundable_isSimplyBounded);
}
}
@@ -418,29 +419,16 @@
class LazyConstructorDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final ConstructorDeclaration node;
+ bool _hasBody = false;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasFormalParameters = false;
+ bool _hasInitializers = false;
+ bool _hasMetadata = false;
+ bool _hasRedirectedConstructor = false;
- LazyConstructorDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- visitor.addParentTypeParameters(node);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyConstructorDeclaration(this.data);
static LazyConstructorDeclaration get(ConstructorDeclaration node) {
return node.getProperty(_key);
@@ -468,6 +456,19 @@
return node.offset;
}
+ static void readBody(
+ AstBinaryReader reader,
+ ConstructorDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasBody) {
+ node.body = reader.readNode(
+ lazy.data.constructorDeclaration_body,
+ );
+ lazy._hasBody = true;
+ }
+ }
+
static void readDocumentationComment(
LinkedUnitContext context,
ConstructorDeclaration node,
@@ -479,12 +480,64 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readFormalParameters(
+ AstBinaryReader reader,
ConstructorDeclaration node,
) {
- node.setProperty(_key, LazyConstructorDeclaration(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFormalParameters) {
+ node.parameters = reader.readNode(
+ lazy.data.constructorDeclaration_parameters,
+ );
+ lazy._hasFormalParameters = true;
+ }
+ }
+
+ static void readInitializers(
+ AstBinaryReader reader,
+ ConstructorDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasInitializers) {
+ var dataList = lazy.data.constructorDeclaration_initializers;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.initializers[i] = reader.readNode(data);
+ }
+ lazy._hasInitializers = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ ConstructorDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readRedirectedConstructor(
+ AstBinaryReader reader,
+ ConstructorDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasRedirectedConstructor) {
+ node.redirectedConstructor = reader.readNode(
+ lazy.data.constructorDeclaration_redirectedConstructor,
+ );
+ lazy._hasRedirectedConstructor = true;
+ }
+ }
+
+ static void setData(ConstructorDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyConstructorDeclaration(data));
}
}
@@ -492,24 +545,11 @@
static const _key = 'lazyAst';
static const _uriKey = 'lazyAst_selectedUri';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final Directive node;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
- LazyDirective(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- _hasResolutionApplied = true;
- }
+ LazyDirective(this.data);
static LazyDirective get(Directive node) {
return node.getProperty(_key);
@@ -519,12 +559,20 @@
return node.getProperty(_uriKey);
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
- Directive node,
- ) {
- node.setProperty(_key, LazyDirective(unitContext, data, node));
+ static void readMetadata(AstBinaryReader reader, Directive node) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void setData(Directive node, LinkedNode data) {
+ node.setProperty(_key, LazyDirective(data));
if (node is NamespaceDirective) {
node.setProperty(_uriKey, data.namespaceDirective_selectedUri);
}
@@ -541,6 +589,7 @@
final LinkedNode data;
bool _hasDocumentationComment = false;
+ bool _hasMetadata = false;
LazyEnumConstantDeclaration(this.data);
@@ -581,6 +630,21 @@
}
}
+ static void readMetadata(
+ AstBinaryReader reader,
+ EnumConstantDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
static void setData(EnumConstantDeclaration node, LinkedNode data) {
node.setProperty(_key, LazyEnumConstantDeclaration(data));
}
@@ -589,28 +653,13 @@
class LazyEnumDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final EnumDeclaration node;
+ bool _hasConstants = false;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
- LazyEnumDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyEnumDeclaration(this.data);
static LazyEnumDeclaration get(EnumDeclaration node) {
return node.getProperty(_key);
@@ -638,6 +687,21 @@
return node.offset;
}
+ static void readConstants(
+ AstBinaryReader reader,
+ EnumDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasConstants) {
+ var dataList = lazy.data.enumDeclaration_constants;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.constants[i] = reader.readNode(data);
+ }
+ lazy._hasConstants = true;
+ }
+ }
+
static void readDocumentationComment(
LinkedUnitContext context,
EnumDeclaration node,
@@ -649,31 +713,41 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readMetadata(
+ AstBinaryReader reader,
EnumDeclaration node,
) {
- node.setProperty(_key, LazyEnumDeclaration(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void setData(EnumDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyEnumDeclaration(data));
}
}
class LazyExtensionDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final ExtensionDeclaration node;
bool _hasDocumentationComment = false;
+ bool _hasExtendedType = false;
bool _hasMembers = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
/// The name for use in `Reference`. If the extension is named, the name
/// of the extension. If the extension is unnamed, a synthetic name.
String _refName;
- LazyExtensionDeclaration(this.unitContext, this.data, this.node) {
+ LazyExtensionDeclaration(ExtensionDeclaration node, this.data) {
node.setProperty(_key, this);
if (data != null) {
_refName = data.extensionDeclaration_refName;
@@ -682,16 +756,6 @@
String get refName => _refName;
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
- }
-
void put(LinkedNodeBuilder builder) {
assert(_refName != null);
builder.extensionDeclaration_refName = _refName;
@@ -704,7 +768,7 @@
static LazyExtensionDeclaration get(ExtensionDeclaration node) {
LazyExtensionDeclaration lazy = node.getProperty(_key);
if (lazy == null) {
- return LazyExtensionDeclaration(null, null, node);
+ return LazyExtensionDeclaration(node, null);
}
return lazy;
}
@@ -742,6 +806,19 @@
}
}
+ static void readExtendedType(
+ AstBinaryReader reader,
+ ExtensionDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy?.data != null && !lazy._hasExtendedType) {
+ (node as ExtensionDeclarationImpl).extendedType = reader.readNode(
+ lazy.data.extensionDeclaration_extendedType,
+ );
+ lazy._hasExtendedType = true;
+ }
+ }
+
static void readMembers(
AstBinaryReader reader,
ExtensionDeclaration node,
@@ -756,34 +833,32 @@
lazy._hasMembers = true;
}
}
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ ExtensionDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy?.data != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
}
class LazyFieldDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final FieldDeclaration node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
- LazyFieldDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- visitor.addParentTypeParameters(node);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyFieldDeclaration(this.data);
static LazyFieldDeclaration get(FieldDeclaration node) {
return node.getProperty(_key);
@@ -800,12 +875,23 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readMetadata(
+ AstBinaryReader reader,
FieldDeclaration node,
) {
- node.setProperty(_key, LazyFieldDeclaration(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void setData(FieldDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyFieldDeclaration(data));
}
}
@@ -814,7 +900,12 @@
final LinkedNode data;
+ bool _hasDefaultValue = false;
+ bool _hasFormalParameters = false;
+ bool _hasMetadata = false;
+ bool _hasType = false;
bool _hasTypeInferenceError = false;
+ bool _hasTypeNode = false;
LazyFormalParameter(this.data);
@@ -859,6 +950,19 @@
}
}
+ static DartType getType(
+ AstBinaryReader reader,
+ FormalParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasType) {
+ var type = reader.readType(lazy.data.actualType);
+ LazyAst.setType(node, type);
+ lazy._hasType = true;
+ }
+ return LazyAst.getType(node);
+ }
+
static TopLevelInferenceError getTypeInferenceError(FormalParameter node) {
var lazy = get(node);
if (lazy != null && !lazy._hasTypeInferenceError) {
@@ -878,6 +982,68 @@
}
}
+ static void readDefaultValue(
+ AstBinaryReader reader,
+ DefaultFormalParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasDefaultValue) {
+ node.defaultValue = reader.readNode(
+ lazy.data.defaultFormalParameter_defaultValue,
+ );
+ lazy._hasDefaultValue = true;
+ }
+ }
+
+ static void readFormalParameters(
+ AstBinaryReader reader,
+ FormalParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFormalParameters) {
+ if (node is FunctionTypedFormalParameter) {
+ node.parameters = reader.readNode(
+ lazy.data.functionTypedFormalParameter_formalParameters,
+ );
+ } else if (node is FieldFormalParameter) {
+ node.parameters = reader.readNode(
+ lazy.data.fieldFormalParameter_formalParameters,
+ );
+ }
+ lazy._hasFormalParameters = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ FormalParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.normalFormalParameter_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readTypeNode(
+ AstBinaryReader reader,
+ FormalParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasTypeNode) {
+ if (node is SimpleFormalParameter) {
+ node.type = reader.readNode(
+ lazy.data.simpleFormalParameter_type,
+ );
+ }
+ lazy._hasTypeNode = true;
+ }
+ }
+
static void setData(FormalParameter node, LinkedNode data) {
node.setProperty(_key, LazyFormalParameter(data));
}
@@ -886,28 +1052,14 @@
class LazyFunctionDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final FunctionDeclaration node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
+ bool _hasReturnType = false;
+ bool _hasReturnTypeNode = false;
- LazyFunctionDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyFunctionDeclaration(this.data);
static LazyFunctionDeclaration get(FunctionDeclaration node) {
return node.getProperty(_key);
@@ -935,6 +1087,22 @@
return node.offset;
}
+ static DartType getReturnType(
+ AstBinaryReader reader,
+ FunctionDeclaration node,
+ ) {
+ readFunctionExpression(reader, node);
+
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnType) {
+ var type = reader.readType(lazy.data.actualReturnType);
+ LazyAst.setReturnType(node, type);
+ lazy._hasReturnType = true;
+ }
+
+ return LazyAst.getReturnType(node);
+ }
+
static void readDocumentationComment(
LinkedUnitContext context,
FunctionDeclaration node,
@@ -946,12 +1114,48 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readFunctionExpression(
+ AstBinaryReader reader,
FunctionDeclaration node,
) {
- node.setProperty(_key, LazyFunctionDeclaration(unitContext, data, node));
+ if (node.functionExpression == null) {
+ var lazy = get(node);
+ node.functionExpression = reader.readNode(
+ lazy.data.functionDeclaration_functionExpression,
+ );
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ FunctionDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readReturnTypeNode(
+ AstBinaryReader reader,
+ FunctionDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnTypeNode) {
+ node.returnType = reader.readNode(
+ lazy.data.functionDeclaration_returnType,
+ );
+ lazy._hasReturnTypeNode = true;
+ }
+ }
+
+ static void setData(FunctionDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyFunctionDeclaration(data));
}
}
@@ -961,6 +1165,7 @@
final LinkedNode data;
bool _hasBody = false;
+ bool _hasFormalParameters = false;
LazyFunctionExpression(this.data);
@@ -999,6 +1204,19 @@
}
}
+ static void readFormalParameters(
+ AstBinaryReader reader,
+ FunctionExpression node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFormalParameters) {
+ node.parameters = reader.readNode(
+ lazy.data.functionExpression_formalParameters,
+ );
+ lazy._hasFormalParameters = true;
+ }
+ }
+
static void setData(FunctionExpression node, LinkedNode data) {
node.setProperty(_key, LazyFunctionExpression(data));
}
@@ -1008,25 +1226,15 @@
static const _key = 'lazyAst';
static const _hasSelfReferenceKey = 'lazyAst_hasSelfReferenceKey';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final FunctionTypeAlias node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasFormalParameters = false;
+ bool _hasMetadata = false;
+ bool _hasReturnType = false;
+ bool _hasReturnTypeNode = false;
- LazyFunctionTypeAlias(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- _hasResolutionApplied = true;
- }
+ LazyFunctionTypeAlias(this.data);
static LazyFunctionTypeAlias get(FunctionTypeAlias node) {
return node.getProperty(_key);
@@ -1058,6 +1266,19 @@
return node.getProperty(_hasSelfReferenceKey);
}
+ static DartType getReturnType(
+ AstBinaryReader reader,
+ FunctionTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnType) {
+ var type = reader.readType(lazy.data.actualReturnType);
+ LazyAst.setReturnType(node, type);
+ lazy._hasReturnType = true;
+ }
+ return LazyAst.getReturnType(node);
+ }
+
static void readDocumentationComment(
LinkedUnitContext context,
FunctionTypeAlias node,
@@ -1069,12 +1290,49 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readFormalParameters(
+ AstBinaryReader reader,
FunctionTypeAlias node,
) {
- node.setProperty(_key, LazyFunctionTypeAlias(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFormalParameters) {
+ node.parameters = reader.readNode(
+ lazy.data.functionTypeAlias_formalParameters,
+ );
+ lazy._hasFormalParameters = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ FunctionTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readReturnTypeNode(
+ AstBinaryReader reader,
+ FunctionTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnTypeNode) {
+ node.returnType = reader.readNode(
+ lazy.data.functionTypeAlias_returnType,
+ );
+ lazy._hasReturnTypeNode = true;
+ }
+ }
+
+ static void setData(FunctionTypeAlias node, LinkedNode data) {
+ node.setProperty(_key, LazyFunctionTypeAlias(data));
LazyAst.setSimplyBounded(node, data.simplyBoundable_isSimplyBounded);
}
@@ -1087,25 +1345,13 @@
static const _key = 'lazyAst';
static const _hasSelfReferenceKey = 'lazyAst_hasSelfReferenceKey';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final GenericTypeAlias node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasFunction = false;
+ bool _hasMetadata = false;
- LazyGenericTypeAlias(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- _hasResolutionApplied = true;
- }
+ LazyGenericTypeAlias(this.data);
static LazyGenericTypeAlias get(GenericTypeAlias node) {
return node.getProperty(_key);
@@ -1148,12 +1394,36 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readFunctionType(
+ AstBinaryReader reader,
GenericTypeAlias node,
) {
- node.setProperty(_key, LazyGenericTypeAlias(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFunction) {
+ node.functionType = reader.readNode(
+ lazy.data.genericTypeAlias_functionType,
+ );
+ lazy._hasFunction = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ GenericTypeAlias node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void setData(GenericTypeAlias node, LinkedNode data) {
+ node.setProperty(_key, LazyGenericTypeAlias(data));
LazyAst.setSimplyBounded(node, data.simplyBoundable_isSimplyBounded);
}
@@ -1165,30 +1435,17 @@
class LazyMethodDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final MethodDeclaration node;
+ bool _hasBody = false;
bool _hasDocumentationComment = false;
+ bool _hasFormalParameters = false;
+ bool _hasMetadata = false;
+ bool _hasReturnType = false;
+ bool _hasReturnTypeNode = false;
bool _hasTypeInferenceError = false;
- bool _hasResolutionApplied = false;
- LazyMethodDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- visitor.addParentTypeParameters(node);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyMethodDeclaration(this.data);
static LazyMethodDeclaration get(MethodDeclaration node) {
return node.getProperty(_key);
@@ -1216,6 +1473,19 @@
return node.offset;
}
+ static DartType getReturnType(
+ AstBinaryReader reader,
+ MethodDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnType) {
+ var type = reader.readType(lazy.data.actualReturnType);
+ LazyAst.setReturnType(node, type);
+ lazy._hasReturnType = true;
+ }
+ return LazyAst.getReturnType(node);
+ }
+
static TopLevelInferenceError getTypeInferenceError(MethodDeclaration node) {
var lazy = get(node);
if (lazy != null && !lazy._hasTypeInferenceError) {
@@ -1253,6 +1523,19 @@
}
}
+ static void readBody(
+ AstBinaryReader reader,
+ MethodDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasBody) {
+ node.body = reader.readNode(
+ lazy.data.methodDeclaration_body,
+ );
+ lazy._hasBody = true;
+ }
+ }
+
static void readDocumentationComment(
LinkedUnitContext context,
MethodDeclaration node,
@@ -1264,49 +1547,72 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readFormalParameters(
+ AstBinaryReader reader,
MethodDeclaration node,
) {
- node.setProperty(_key, LazyMethodDeclaration(unitContext, data, node));
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasFormalParameters) {
+ node.parameters = reader.readNode(
+ lazy.data.methodDeclaration_formalParameters,
+ );
+ lazy._hasFormalParameters = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ MethodDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readReturnTypeNode(
+ AstBinaryReader reader,
+ MethodDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasReturnTypeNode) {
+ node.returnType = reader.readNode(
+ lazy.data.methodDeclaration_returnType,
+ );
+ lazy._hasReturnTypeNode = true;
+ }
+ }
+
+ static void setData(MethodDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyMethodDeclaration(data));
}
}
class LazyMixinDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final MixinDeclaration node;
bool _hasDocumentationComment = false;
+ bool _hasOnClause = false;
+ bool _hasImplementsClause = false;
bool _hasMembers = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
List<String> _superInvokedNames;
- LazyMixinDeclaration(this.unitContext, this.data, this.node) {
+ LazyMixinDeclaration(MixinDeclaration node, this.data) {
node.setProperty(_key, this);
if (data != null) {
LazyAst.setSimplyBounded(node, data.simplyBoundable_isSimplyBounded);
}
}
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
-
List<String> getSuperInvokedNames() {
return _superInvokedNames ??= data.mixinDeclaration_superInvokedNames;
}
@@ -1322,7 +1628,7 @@
static LazyMixinDeclaration get(MixinDeclaration node) {
LazyMixinDeclaration lazy = node.getProperty(_key);
if (lazy == null) {
- return LazyMixinDeclaration(null, null, node);
+ return LazyMixinDeclaration(node, null);
}
return lazy;
}
@@ -1360,6 +1666,19 @@
}
}
+ static void readImplementsClause(
+ AstBinaryReader reader,
+ MixinDeclarationImpl node,
+ ) {
+ var lazy = get(node);
+ if (lazy.data != null && !lazy._hasImplementsClause) {
+ node.implementsClause = reader.readNode(
+ lazy.data.classOrMixinDeclaration_implementsClause,
+ );
+ lazy._hasImplementsClause = true;
+ }
+ }
+
static void readMembers(
AstBinaryReader reader,
MixinDeclaration node,
@@ -1374,33 +1693,45 @@
lazy._hasMembers = true;
}
}
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ MixinDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy.data != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void readOnClause(
+ AstBinaryReader reader,
+ MixinDeclarationImpl node,
+ ) {
+ var lazy = get(node);
+ if (lazy.data != null && !lazy._hasOnClause) {
+ node.onClause = reader.readNode(
+ lazy.data.mixinDeclaration_onClause,
+ );
+ lazy._hasOnClause = true;
+ }
+ }
}
class LazyTopLevelVariableDeclaration {
static const _key = 'lazyAst';
- final LinkedUnitContext unitContext;
final LinkedNode data;
- final TopLevelVariableDeclaration node;
bool _hasDocumentationComment = false;
- bool _hasResolutionApplied = false;
+ bool _hasMetadata = false;
- LazyTopLevelVariableDeclaration(this.unitContext, this.data, this.node);
-
- void applyResolution() {
- if (_hasResolutionApplied) {
- return;
- }
- _hasResolutionApplied = true;
-
- unitContext.pushTypeParameterStack();
-
- var visitor = ApplyResolutionVisitor(unitContext, data.resolution);
- node.accept(visitor);
-
- unitContext.popTypeParameterStack();
- }
+ LazyTopLevelVariableDeclaration(this.data);
static LazyTopLevelVariableDeclaration get(TopLevelVariableDeclaration node) {
return node.getProperty(_key);
@@ -1417,24 +1748,35 @@
}
}
- static void setData(
- LinkedUnitContext unitContext,
- LinkedNode data,
+ static void readMetadata(
+ AstBinaryReader reader,
TopLevelVariableDeclaration node,
) {
- node.setProperty(
- _key,
- LazyTopLevelVariableDeclaration(unitContext, data, node),
- );
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
+ static void setData(TopLevelVariableDeclaration node, LinkedNode data) {
+ node.setProperty(_key, LazyTopLevelVariableDeclaration(data));
}
}
-/// TODO(scheglov) remove completely?
class LazyTypeParameter {
static const _key = 'lazyAst';
final LinkedNode data;
+ bool _hasBound = false;
+ bool _hasDefaultType = false;
+ bool _hasMetadata = false;
+
LazyTypeParameter(this.data);
static LazyTypeParameter get(TypeParameter node) {
@@ -1463,17 +1805,52 @@
return node.offset;
}
+ static DartType getDefaultType(AstBinaryReader reader, TypeParameter node) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasDefaultType) {
+ lazy._hasDefaultType = true;
+ var type = reader.readType(lazy.data.typeParameter_defaultType);
+ LazyAst.setDefaultType(node, type);
+ return type;
+ }
+ return LazyAst.getDefaultType(node);
+ }
+
+ static void readBound(AstBinaryReader reader, TypeParameter node) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasBound) {
+ node.bound = reader.readNode(lazy.data.typeParameter_bound);
+ lazy._hasBound = true;
+ }
+ }
+
+ static void readMetadata(
+ AstBinaryReader reader,
+ TypeParameter node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasMetadata) {
+ var dataList = lazy.data.annotatedNode_metadata;
+ for (var i = 0; i < dataList.length; ++i) {
+ var data = dataList[i];
+ node.metadata[i] = reader.readNode(data);
+ }
+ lazy._hasMetadata = true;
+ }
+ }
+
static void setData(TypeParameter node, LinkedNode data) {
node.setProperty(_key, LazyTypeParameter(data));
}
}
-/// TODO(scheglov) remove completely?
class LazyVariableDeclaration {
static const _key = 'lazyAst';
final LinkedNode data;
+ bool _hasInitializer = false;
+ bool _hasType = false;
bool _hasTypeInferenceError = false;
LazyVariableDeclaration(this.data);
@@ -1514,6 +1891,19 @@
}
}
+ static DartType getType(
+ AstBinaryReader reader,
+ VariableDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasType) {
+ var type = reader.readType(lazy.data.actualType);
+ LazyAst.setType(node, type);
+ lazy._hasType = true;
+ }
+ return LazyAst.getType(node);
+ }
+
static TopLevelInferenceError getTypeInferenceError(
VariableDeclaration node) {
var lazy = get(node);
@@ -1534,6 +1924,19 @@
}
}
+ static void readInitializer(
+ AstBinaryReader reader,
+ VariableDeclaration node,
+ ) {
+ var lazy = get(node);
+ if (lazy != null && !lazy._hasInitializer) {
+ node.initializer = reader.readNode(
+ lazy.data.variableDeclaration_initializer,
+ );
+ lazy._hasInitializer = true;
+ }
+ }
+
static void setData(VariableDeclaration node, LinkedNode data) {
node.setProperty(_key, LazyVariableDeclaration(data));
}
diff --git a/pkg/analyzer/lib/src/summary2/linked_bundle_context.dart b/pkg/analyzer/lib/src/summary2/linked_bundle_context.dart
index 8b8269b..7047fb0 100644
--- a/pkg/analyzer/lib/src/summary2/linked_bundle_context.dart
+++ b/pkg/analyzer/lib/src/summary2/linked_bundle_context.dart
@@ -93,7 +93,7 @@
}
T elementOfIndex<T extends Element>(int index) {
- var reference = referenceOfIndex(index >> 1);
+ var reference = referenceOfIndex(index);
return elementFactory.elementOfReference(reference);
}
diff --git a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
index 8666757..ff54b07 100644
--- a/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
+++ b/pkg/analyzer/lib/src/summary2/linked_unit_context.dart
@@ -41,8 +41,13 @@
CompilationUnit _unit;
bool _hasDirectivesRead = false;
- final List<List<TypeParameterElement>> _typeParameterStack = [];
- List<TypeParameterElement> typeParameterStack = [];
+ /// Mapping from identifiers to synthetic type parameters.
+ ///
+ /// Synthetic type parameters are added when [readType] begins reading a
+ /// [FunctionType], and removed when reading is done.
+ final Map<int, TypeParameterElementImpl> _typeParameters = {};
+
+ int _nextSyntheticTypeParameterId = 0x10000;
LinkedUnitContext(
this.bundleContext,
@@ -112,6 +117,17 @@
return astFactory.documentationComment(tokens);
}
+ void createGenericFunctionTypeElement(int id, GenericFunctionTypeImpl node) {
+ var containerRef = this.reference.getChild('@genericFunctionType');
+ var reference = containerRef.getChild('$id');
+ var element = GenericFunctionTypeElementImpl.forLinkedNode(
+ this.reference.element,
+ reference,
+ node,
+ );
+ node.declaredElement = element;
+ }
+
/// Return the [LibraryElement] referenced in the [node].
LibraryElement directiveLibrary(UriBasedDirective node) {
var uriStr = LazyDirective.getSelectedUri(node);
@@ -119,13 +135,6 @@
return bundleContext.elementFactory.libraryOfUri(uriStr);
}
- T elementOfIndex<T extends Element>(int index) {
- if ((index & 0x1) == 0x1) {
- return typeParameterStack[index >> 1] as T;
- }
- return bundleContext.elementOfIndex(index);
- }
-
int getCodeLength(AstNode node) {
if (node is ClassDeclaration) {
return LazyClassDeclaration.getCodeLength(this, node);
@@ -204,6 +213,18 @@
return LazyCombinator.getEnd(this, node);
}
+ List<ConstructorInitializer> getConstructorInitializers(
+ ConstructorDeclaration node,
+ ) {
+ LazyConstructorDeclaration.readInitializers(_astReader, node);
+ return node.initializers;
+ }
+
+ ConstructorName getConstructorRedirected(ConstructorDeclaration node) {
+ LazyConstructorDeclaration.readRedirectedConstructor(_astReader, node);
+ return node.redirectedConstructor;
+ }
+
Iterable<ConstructorDeclaration> getConstructors(AstNode node) sync* {
if (node is ClassOrMixinDeclaration) {
var members = _getClassOrExtensionOrMixinMembers(node);
@@ -216,7 +237,7 @@
}
DartType getDefaultType(TypeParameter node) {
- var type = LazyAst.getDefaultType(node);
+ var type = LazyTypeParameter.getDefaultType(_astReader, node);
if (type is TypeBuilder) {
type = (type as TypeBuilder).build();
LazyAst.setDefaultType(node, type);
@@ -293,6 +314,16 @@
}
}
+ List<EnumConstantDeclaration> getEnumConstants(EnumDeclaration node) {
+ LazyEnumDeclaration.readConstants(_astReader, node);
+ return node.constants;
+ }
+
+ TypeAnnotation getExtendedType(ExtensionDeclaration node) {
+ LazyExtensionDeclaration.readExtendedType(_astReader, node);
+ return node.extendedType;
+ }
+
String getExtensionRefName(ExtensionDeclaration node) {
return LazyExtensionDeclaration.get(node).refName;
}
@@ -320,32 +351,50 @@
List<FormalParameter> getFormalParameters(AstNode node) {
if (node is ConstructorDeclaration) {
+ LazyConstructorDeclaration.readFormalParameters(_astReader, node);
return node.parameters.parameters;
} else if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readFunctionExpression(_astReader, node);
return getFormalParameters(node.functionExpression);
} else if (node is FunctionExpression) {
+ LazyFunctionExpression.readFormalParameters(_astReader, node);
return node.parameters?.parameters;
} else if (node is FormalParameter) {
if (node is DefaultFormalParameter) {
return getFormalParameters(node.parameter);
} else if (node is FieldFormalParameter) {
+ LazyFormalParameter.readFormalParameters(_astReader, node);
return node.parameters?.parameters;
} else if (node is FunctionTypedFormalParameter) {
+ LazyFormalParameter.readFormalParameters(_astReader, node);
return node.parameters.parameters;
} else {
return null;
}
} else if (node is FunctionTypeAlias) {
+ LazyFunctionTypeAlias.readFormalParameters(_astReader, node);
return node.parameters.parameters;
} else if (node is GenericFunctionType) {
return node.parameters.parameters;
} else if (node is MethodDeclaration) {
+ LazyMethodDeclaration.readFormalParameters(_astReader, node);
return node.parameters?.parameters;
} else {
throw UnimplementedError('${node.runtimeType}');
}
}
+ Reference getGenericFunctionTypeReference(GenericFunctionType node) {
+ var containerRef = reference.getChild('@genericFunctionType');
+ var id = LazyAst.getGenericFunctionTypeId(node);
+ return containerRef.getChild('$id');
+ }
+
+ GenericFunctionType getGeneticTypeAliasFunction(GenericTypeAlias node) {
+ LazyGenericTypeAlias.readFunctionType(_astReader, node);
+ return node.functionType;
+ }
+
bool getHasTypedefSelfReference(AstNode node) {
if (node is FunctionTypeAlias) {
return LazyFunctionTypeAlias.getHasSelfReference(node);
@@ -357,10 +406,13 @@
ImplementsClause getImplementsClause(AstNode node) {
if (node is ClassDeclaration) {
+ LazyClassDeclaration.readImplementsClause(_astReader, node);
return node.implementsClause;
} else if (node is ClassTypeAlias) {
+ LazyClassTypeAlias.readImplementsClause(_astReader, node);
return node.implementsClause;
} else if (node is MixinDeclaration) {
+ LazyMixinDeclaration.readImplementsClause(_astReader, node);
return node.implementsClause;
} else {
throw UnimplementedError('${node.runtimeType}');
@@ -404,7 +456,6 @@
List<Annotation> getLibraryMetadata(CompilationUnit unit) {
for (var directive in unit.directives) {
if (directive is LibraryDirective) {
- LazyAst.applyResolution(directive);
return getMetadata(directive);
}
}
@@ -413,8 +464,10 @@
List<Annotation> getMetadata(AstNode node) {
if (node is ClassDeclaration) {
+ LazyClassDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is ClassTypeAlias) {
+ LazyClassTypeAlias.readMetadata(_astReader, node);
return node.metadata;
} else if (node is CompilationUnit) {
assert(node == _unit);
@@ -424,36 +477,50 @@
return const <Annotation>[];
}
} else if (node is ConstructorDeclaration) {
+ LazyConstructorDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is DefaultFormalParameter) {
return getMetadata(node.parameter);
} else if (node is Directive) {
+ LazyDirective.readMetadata(_astReader, node);
return node.metadata;
} else if (node is EnumConstantDeclaration) {
+ LazyEnumConstantDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is EnumDeclaration) {
+ LazyEnumDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is ExtensionDeclaration) {
+ LazyExtensionDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is FormalParameter) {
+ LazyFormalParameter.readMetadata(_astReader, node);
return node.metadata;
} else if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is FunctionTypeAlias) {
+ LazyFunctionTypeAlias.readMetadata(_astReader, node);
return node.metadata;
} else if (node is GenericTypeAlias) {
+ LazyGenericTypeAlias.readMetadata(_astReader, node);
return node.metadata;
} else if (node is MethodDeclaration) {
+ LazyMethodDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is MixinDeclaration) {
+ LazyMixinDeclaration.readMetadata(_astReader, node);
return node.metadata;
} else if (node is TypeParameter) {
+ LazyTypeParameter.readMetadata(_astReader, node);
return node.metadata;
} else if (node is VariableDeclaration) {
var parent2 = node.parent.parent;
if (parent2 is FieldDeclaration) {
+ LazyFieldDeclaration.readMetadata(_astReader, parent2);
return parent2.metadata;
} else if (parent2 is TopLevelVariableDeclaration) {
+ LazyTopLevelVariableDeclaration.readMetadata(_astReader, parent2);
return parent2.metadata;
}
}
@@ -498,16 +565,21 @@
throw UnimplementedError('${node.runtimeType}');
}
+ OnClause getOnClause(MixinDeclaration node) {
+ LazyMixinDeclaration.readOnClause(_astReader, node);
+ return node.onClause;
+ }
+
/// Return the actual return type for the [node] - explicit or inferred.
DartType getReturnType(AstNode node) {
if (node is FunctionDeclaration) {
- return LazyAst.getReturnType(node);
+ return LazyFunctionDeclaration.getReturnType(_astReader, node);
} else if (node is FunctionTypeAlias) {
- return LazyAst.getReturnType(node);
+ return LazyFunctionTypeAlias.getReturnType(_astReader, node);
} else if (node is GenericFunctionType) {
return node.returnType?.type ?? DynamicTypeImpl.instance;
} else if (node is MethodDeclaration) {
- return LazyAst.getReturnType(node);
+ return LazyMethodDeclaration.getReturnType(_astReader, node);
} else {
throw UnimplementedError('${node.runtimeType}');
}
@@ -515,12 +587,15 @@
TypeAnnotation getReturnTypeNode(AstNode node) {
if (node is FunctionTypeAlias) {
+ LazyFunctionTypeAlias.readReturnTypeNode(_astReader, node);
return node.returnType;
} else if (node is GenericFunctionType) {
return node.returnType;
} else if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readReturnTypeNode(_astReader, node);
return node.returnType;
} else if (node is MethodDeclaration) {
+ LazyMethodDeclaration.readReturnTypeNode(_astReader, node);
return node.returnType;
} else {
throw UnimplementedError('${node.runtimeType}');
@@ -533,8 +608,10 @@
TypeName getSuperclass(AstNode node) {
if (node is ClassDeclaration) {
+ LazyClassDeclaration.readExtendsClause(_astReader, node);
return node.extendsClause?.superclass;
} else if (node is ClassTypeAlias) {
+ LazyClassTypeAlias.readSuperclass(_astReader, node);
return node.superclass;
} else {
throw StateError('${node.runtimeType}');
@@ -546,9 +623,9 @@
if (node is DefaultFormalParameter) {
return getType(node.parameter);
} else if (node is FormalParameter) {
- return LazyAst.getType(node);
+ return LazyFormalParameter.getType(_astReader, node);
} else if (node is VariableDeclaration) {
- return LazyAst.getType(node);
+ return LazyVariableDeclaration.getType(_astReader, node);
} else {
throw UnimplementedError('${node.runtimeType}');
}
@@ -564,7 +641,12 @@
}
}
- TypeParameterList getTypeParameters(AstNode node) {
+ TypeAnnotation getTypeParameterBound(TypeParameter node) {
+ LazyTypeParameter.readBound(_astReader, node);
+ return node.bound;
+ }
+
+ TypeParameterList getTypeParameters2(AstNode node) {
if (node is ClassDeclaration) {
return node.typeParameters;
} else if (node is ClassTypeAlias) {
@@ -572,13 +654,14 @@
} else if (node is ConstructorDeclaration) {
return null;
} else if (node is DefaultFormalParameter) {
- return getTypeParameters(node.parameter);
+ return getTypeParameters2(node.parameter);
} else if (node is ExtensionDeclaration) {
return node.typeParameters;
} else if (node is FieldFormalParameter) {
return node.typeParameters;
} else if (node is FunctionDeclaration) {
- return getTypeParameters(node.functionExpression);
+ LazyFunctionDeclaration.readFunctionExpression(_astReader, node);
+ return getTypeParameters2(node.functionExpression);
} else if (node is FunctionExpression) {
return node.typeParameters;
} else if (node is FunctionTypedFormalParameter) {
@@ -606,8 +689,10 @@
WithClause getWithClause(AstNode node) {
if (node is ClassDeclaration) {
+ LazyClassDeclaration.readWithClause(_astReader, node);
return node.withClause;
} else if (node is ClassTypeAlias) {
+ LazyClassTypeAlias.readWithClause(_astReader, node);
return node.withClause;
} else {
throw UnimplementedError('${node.runtimeType}');
@@ -623,9 +708,11 @@
bool hasImplicitReturnType(AstNode node) {
if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readReturnTypeNode(_astReader, node);
return node.returnType == null;
}
if (node is MethodDeclaration) {
+ LazyMethodDeclaration.readReturnTypeNode(_astReader, node);
return node.returnType == null;
}
return false;
@@ -692,6 +779,7 @@
if (node is ConstructorDeclaration) {
return false;
} else if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readFunctionExpression(_astReader, node);
return isAsynchronous(node.functionExpression);
} else if (node is FunctionExpression) {
return LazyFunctionExpression.isAsynchronous(node);
@@ -771,6 +859,7 @@
if (node is ConstructorDeclaration) {
return false;
} else if (node is FunctionDeclaration) {
+ LazyFunctionDeclaration.readFunctionExpression(_astReader, node);
return isGenerator(node.functionExpression);
} else if (node is FunctionExpression) {
return LazyFunctionExpression.isGenerator(node);
@@ -835,25 +924,12 @@
throw UnimplementedError('${node.runtimeType}');
}
- /// Restore the stack previously saved by [pushTypeParameterStack].
- void popTypeParameterStack() {
- typeParameterStack = _typeParameterStack.removeLast();
- }
-
- /// We are about to start applying resolution to a declaration. But this
- /// might be a recursive process, and so we might still be applying
- /// resolution to some other declaration. These have their own indexes for
- /// type parameters, so we want to push the current stack, and start with
- /// a new one. Later we will restore it with [popTypeParameterStack].
- void pushTypeParameterStack() {
- _typeParameterStack.add(typeParameterStack);
- typeParameterStack = [];
- }
-
Expression readInitializer(AstNode node) {
if (node is DefaultFormalParameter) {
+ LazyFormalParameter.readDefaultValue(_astReader, node);
return node.defaultValue;
} else if (node is VariableDeclaration) {
+ LazyVariableDeclaration.readInitializer(_astReader, node);
return node.initializer;
} else {
throw StateError('${node.runtimeType}');
@@ -864,9 +940,7 @@
if (linkedType == null) return null;
var kind = linkedType.kind;
- if (kind == LinkedNodeTypeKind.null_) {
- return null;
- } else if (kind == LinkedNodeTypeKind.dynamic_) {
+ if (kind == LinkedNodeTypeKind.dynamic_) {
return DynamicTypeImpl.instance;
} else if (kind == LinkedNodeTypeKind.function) {
var typeParameterDataList = linkedType.functionTypeParameters;
@@ -877,11 +951,9 @@
var typeParameterData = typeParameterDataList[i];
var element = TypeParameterElementImpl(typeParameterData.name, -1);
typeParameters[i] = element;
+ _typeParameters[_nextSyntheticTypeParameterId++] = element;
}
- var typeParameterStackHeight = typeParameterStack.length;
- typeParameterStack.addAll(typeParameters);
-
// Type parameters might use each other in bounds, including forward
// references. So, we read bounds after reading all type parameters.
for (var i = 0; i < typeParametersLength; ++i) {
@@ -897,7 +969,9 @@
return ParameterElementImpl.synthetic(p.name, type, kind);
}).toList();
- typeParameterStack.length = typeParameterStackHeight;
+ for (var i = 0; i < typeParametersLength; ++i) {
+ _typeParameters.remove(--_nextSyntheticTypeParameterId);
+ }
FunctionTypeAliasElement typedefElement;
List<DartType> typedefTypeArguments = const <DartType>[];
@@ -930,7 +1004,15 @@
var nullabilitySuffix = _nullabilitySuffix(linkedType.nullabilitySuffix);
return NeverTypeImpl.instance.withNullability(nullabilitySuffix);
} else if (kind == LinkedNodeTypeKind.typeParameter) {
- var element = elementOfIndex(linkedType.typeParameterId);
+ TypeParameterElement element;
+ var id = linkedType.typeParameterId;
+ if (id != 0) {
+ element = _typeParameters[id];
+ assert(element != null);
+ } else {
+ var index = linkedType.typeParameterElement;
+ element = bundleContext.elementOfIndex(index);
+ }
var nullabilitySuffix = _nullabilitySuffix(linkedType.nullabilitySuffix);
return TypeParameterTypeImpl(
element: element,
@@ -1061,7 +1143,7 @@
if (directive is PartDirective) {
partDirectiveIndex++;
if (partDirectiveIndex == indexInLibrary) {
- LazyAst.applyResolution(directive);
+ LazyDirective.readMetadata(definingContext._astReader, directive);
return directive.metadata;
}
}
diff --git a/pkg/analyzer/lib/src/summary2/linking_bundle_context.dart b/pkg/analyzer/lib/src/summary2/linking_bundle_context.dart
index 8c3b810..81cf9c2b 100644
--- a/pkg/analyzer/lib/src/summary2/linking_bundle_context.dart
+++ b/pkg/analyzer/lib/src/summary2/linking_bundle_context.dart
@@ -29,7 +29,8 @@
name: [''],
);
- final _TypeParameterIndexer typeParameterIndexer = _TypeParameterIndexer();
+ final Map<TypeParameterElement, int> _typeParameters = Map.identity();
+ int _nextSyntheticTypeParameterId = 0x10000;
LinkingBundleContext(this.dynamicReference);
@@ -43,21 +44,21 @@
}
}
+ int idOfTypeParameter(TypeParameterElement element) {
+ return _typeParameters[element];
+ }
+
int indexOfElement(Element element) {
if (element == null) return 0;
if (element is MultiplyDefinedElement) return 0;
assert(element is! Member);
- if (element is TypeParameterElement) {
- return typeParameterIndexer[element] << 1 | 0x1;
- }
-
if (identical(element, DynamicElementImpl.instance)) {
- return indexOfReference(dynamicReference) << 1;
+ return indexOfReference(dynamicReference);
}
var reference = (element as ElementImpl).reference;
- return indexOfReference(reference) << 1;
+ return indexOfReference(reference);
}
int indexOfReference(Reference reference) {
@@ -75,11 +76,9 @@
}
LinkedNodeTypeBuilder writeType(DartType type) {
- if (type == null) {
- return LinkedNodeTypeBuilder(
- kind: LinkedNodeTypeKind.null_,
- );
- } else if (type.isDynamic) {
+ if (type == null) return null;
+
+ if (type.isDynamic) {
return LinkedNodeTypeBuilder(
kind: LinkedNodeTypeKind.dynamic_,
);
@@ -98,11 +97,22 @@
nullabilitySuffix: _nullabilitySuffix(type),
);
} else if (type is TypeParameterType) {
- return LinkedNodeTypeBuilder(
- kind: LinkedNodeTypeKind.typeParameter,
- nullabilitySuffix: _nullabilitySuffix(type),
- typeParameterId: indexOfElement(type.element),
- );
+ TypeParameterElementImpl element = type.element;
+ var id = _typeParameters[element];
+ if (id != null) {
+ return LinkedNodeTypeBuilder(
+ kind: LinkedNodeTypeKind.typeParameter,
+ nullabilitySuffix: _nullabilitySuffix(type),
+ typeParameterId: id,
+ );
+ } else {
+ var index = indexOfElement(element);
+ return LinkedNodeTypeBuilder(
+ kind: LinkedNodeTypeKind.typeParameter,
+ nullabilitySuffix: _nullabilitySuffix(type),
+ typeParameterElement: index,
+ );
+ }
} else if (type is VoidType) {
return LinkedNodeTypeBuilder(
kind: LinkedNodeTypeKind.void_,
@@ -146,16 +156,17 @@
var typeParameterBuilders = <LinkedNodeTypeTypeParameterBuilder>[];
var typeParameters = type.typeFormals;
- typeParameterIndexer.enter(typeParameters);
+ for (var i = 0; i < typeParameters.length; ++i) {
+ var typeParameter = typeParameters[i];
+ _typeParameters[typeParameter] = _nextSyntheticTypeParameterId++;
+ typeParameterBuilders.add(
+ LinkedNodeTypeTypeParameterBuilder(name: typeParameter.name),
+ );
+ }
for (var i = 0; i < typeParameters.length; ++i) {
var typeParameter = typeParameters[i];
- typeParameterBuilders.add(
- LinkedNodeTypeTypeParameterBuilder(
- name: typeParameter.name,
- bound: writeType(typeParameter.bound),
- ),
- );
+ typeParameterBuilders[i].bound = writeType(typeParameter.bound);
}
Element typedefElement;
@@ -188,7 +199,10 @@
nullabilitySuffix: _nullabilitySuffix(type),
);
- typeParameterIndexer.exit(typeParameters);
+ for (var typeParameter in typeParameters) {
+ _typeParameters.remove(typeParameter);
+ --_nextSyntheticTypeParameterId;
+ }
return result;
}
@@ -207,27 +221,3 @@
}
}
}
-
-class _TypeParameterIndexer {
- final Map<TypeParameterElement, int> _index = Map.identity();
- int _stackHeight = 0;
-
- int operator [](TypeParameterElement parameter) {
- return _index[parameter] ??
- (throw ArgumentError('Type parameter $parameter is not indexed'));
- }
-
- void enter(List<TypeParameterElement> typeParameters) {
- for (var i = 0; i < typeParameters.length; i++) {
- var parameter = typeParameters[i];
- _index[parameter] = _stackHeight++;
- }
- }
-
- void exit(List<TypeParameterElement> typeParameters) {
- _stackHeight -= typeParameters.length;
- for (var i = 0; i < typeParameters.length; i++) {
- _index.remove(typeParameters[i]);
- }
- }
-}
diff --git a/pkg/analyzer/test/generated/invalid_code_test.dart b/pkg/analyzer/test/generated/invalid_code_test.dart
index fefa0f8..a116216 100644
--- a/pkg/analyzer/test/generated/invalid_code_test.dart
+++ b/pkg/analyzer/test/generated/invalid_code_test.dart
@@ -196,10 +196,11 @@
''');
}
+ @failingTest
test_fuzz_12() async {
- // This code used to crash because we were reading AST lazily, so we did
- // not read metadata `@b` for `c`. But now we read AST of each declaration
- // (`f` here) fully, and apply resolution. So, it works now.
+ // This code crashed with summary2 because usually AST reader is lazy,
+ // so we did not read metadata `@b` for `c`. But default values must be
+ // read fully.
await _assertCanBeAnalyzed(r'''
void f({a = [for (@b c = 0;;)]}) {}
''');
diff --git a/pkg/analyzer/test/src/diagnostics/const_initialized_with_non_constant_value_test.dart b/pkg/analyzer/test/src/diagnostics/const_initialized_with_non_constant_value_test.dart
index 6277909..8e28cd4 100644
--- a/pkg/analyzer/test/src/diagnostics/const_initialized_with_non_constant_value_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/const_initialized_with_non_constant_value_test.dart
@@ -16,20 +16,6 @@
@reflectiveTest
class ConstInitializedWithNonConstantValueTest
extends PubPackageResolutionTest {
- test_cascade() async {
- await assertErrorsInCode(r'''
-class A {
- const A();
- void foo() {}
-}
-
-const a = const A()..foo();
-''', [
- error(CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, 52,
- 16),
- ]);
- }
-
test_dynamic() async {
await assertErrorsInCode(r'''
f(p) {
diff --git a/pkg/analyzer/test/src/diagnostics/invalid_modifier_on_setter_test.dart b/pkg/analyzer/test/src/diagnostics/invalid_modifier_on_setter_test.dart
index f5fb7e2..58a00af 100644
--- a/pkg/analyzer/test/src/diagnostics/invalid_modifier_on_setter_test.dart
+++ b/pkg/analyzer/test/src/diagnostics/invalid_modifier_on_setter_test.dart
@@ -16,15 +16,12 @@
@reflectiveTest
class InvalidModifierOnSetterTest extends PubPackageResolutionTest {
test_member_async() async {
- // TODO(danrubel): Investigate why error message is duplicated when
- // using fasta parser.
await assertErrorsInCode(r'''
class A {
set x(v) async {}
}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 5),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 5),
]);
}
@@ -35,7 +32,6 @@
}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 5),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 5),
]);
}
@@ -46,7 +42,6 @@
}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 4),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 21, 4),
]);
}
@@ -55,7 +50,6 @@
set x(v) async {}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 5),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 5),
]);
}
@@ -64,7 +58,6 @@
set x(v) async* {}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 5),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 5),
]);
}
@@ -73,7 +66,6 @@
set x(v) sync* {}
''', [
error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 4),
- error(CompileTimeErrorCode.INVALID_MODIFIER_ON_SETTER, 9, 4),
]);
}
}
diff --git a/pkg/analyzer_cli/lib/src/build_mode.dart b/pkg/analyzer_cli/lib/src/build_mode.dart
index 636e11d..3098758 100644
--- a/pkg/analyzer_cli/lib/src/build_mode.dart
+++ b/pkg/analyzer_cli/lib/src/build_mode.dart
@@ -557,9 +557,7 @@
Iterable<String> get dependencies => _dependencies;
- void record(String path) {
- _dependencies.add(path);
- }
+ void record(String path) => _dependencies.add(path);
}
/// [PackageBundleProvider] that always reads from the [ResourceProvider].
diff --git a/pkg/analyzer_cli/test/driver_test.dart b/pkg/analyzer_cli/test/driver_test.dart
index 45d42ab..cae931f 100644
--- a/pkg/analyzer_cli/test/driver_test.dart
+++ b/pkg/analyzer_cli/test/driver_test.dart
@@ -253,19 +253,34 @@
class B extends A {}
''');
- // When we get resolved class `B`, we apply its full resolution.
- // So, we ask for `A`, so dependency on "a".
+ // We don't invoke anything on class `B`, so don't ask its supertype.
+ // So, no dependency on "a".
await _assertDependencies('c', [a, b], '''
import 'package:b/b.dart';
B x;
-''', [a, b]);
+''', [b]);
- // When we get resolved class `B`, we apply its full resolution.
- // So, we ask for `A`, so dependency on "a".
+ // We infer the type of `x` to `B`.
+ // But we don't ask `B` for its supertype.
+ // So, no dependency on "a".
await _assertDependencies('c', [a, b], '''
import 'package:b/b.dart';
var x = B();
-''', [a, b]);
+''', [b]);
+
+ // We perform full analysis, and check that `new B()` is assignable
+ // to `B x`. This is trivially true, we don't need the supertype of `B`.
+ // So, no dependency on "a".
+ await _assertDependencies(
+ 'c',
+ [a, b],
+ '''
+import 'package:b/b.dart';
+var x = B();
+''',
+ [b],
+ summaryOnly: false,
+ );
});
}
diff --git a/tools/VERSION b/tools/VERSION
index f71a9a1..dcbe123 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 11
PATCH 0
-PRERELEASE 246
+PRERELEASE 247
PRERELEASE_PATCH 0
\ No newline at end of file