Index: pkg/analyzer/lib/src/summary/format.dart |
diff --git a/pkg/analyzer/lib/src/summary/format.dart b/pkg/analyzer/lib/src/summary/format.dart |
index d16a522b24785e01687528c7255a4ee37418e75b..7a60450b378a2ad17bdadad3e9d7b043130ee710 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -3550,35 +3550,35 @@ abstract class _UnlinkedConstMixin implements idl.UnlinkedConst { |
class UnlinkedConstructorInitializerBuilder extends Object with _UnlinkedConstructorInitializerMixin implements idl.UnlinkedConstructorInitializer { |
bool _finished = false; |
- List<UnlinkedConstBuilder> _arguments; |
List<String> _argumentNames; |
+ List<UnlinkedConstBuilder> _arguments; |
UnlinkedConstBuilder _expression; |
idl.UnlinkedConstructorInitializerKind _kind; |
String _name; |
@override |
- List<UnlinkedConstBuilder> get arguments => _arguments ??= <UnlinkedConstBuilder>[]; |
+ List<String> get argumentNames => _argumentNames ??= <String>[]; |
/** |
- * If [kind] is `thisInvocation` or `superInvocation`, the arguments of the |
- * invocation. Otherwise empty. |
+ * If there are `m` [arguments] and `n` [argumentNames], then each argument |
+ * from [arguments] with index `i` such that `n + i - m >= 0`, should be used |
+ * with the name at `n + i - m`. |
*/ |
- void set arguments(List<UnlinkedConstBuilder> _value) { |
+ void set argumentNames(List<String> _value) { |
assert(!_finished); |
- _arguments = _value; |
+ _argumentNames = _value; |
} |
@override |
- List<String> get argumentNames => _argumentNames ??= <String>[]; |
+ List<UnlinkedConstBuilder> get arguments => _arguments ??= <UnlinkedConstBuilder>[]; |
/** |
- * If there are `m` [arguments] and `n` [argumentNames], then each argument |
- * from [arguments] with index `i` such that `n + i - m >= 0`, should be used |
- * with the name at `n + i - m`. |
+ * If [kind] is `thisInvocation` or `superInvocation`, the arguments of the |
+ * invocation. Otherwise empty. |
*/ |
- void set argumentNames(List<String> _value) { |
+ void set arguments(List<UnlinkedConstBuilder> _value) { |
assert(!_finished); |
- _argumentNames = _value; |
+ _arguments = _value; |
} |
@override |
@@ -3618,9 +3618,9 @@ class UnlinkedConstructorInitializerBuilder extends Object with _UnlinkedConstru |
_name = _value; |
} |
- UnlinkedConstructorInitializerBuilder({List<UnlinkedConstBuilder> arguments, List<String> argumentNames, UnlinkedConstBuilder expression, idl.UnlinkedConstructorInitializerKind kind, String name}) |
- : _arguments = arguments, |
- _argumentNames = argumentNames, |
+ UnlinkedConstructorInitializerBuilder({List<String> argumentNames, List<UnlinkedConstBuilder> arguments, UnlinkedConstBuilder expression, idl.UnlinkedConstructorInitializerKind kind, String name}) |
+ : _argumentNames = argumentNames, |
+ _arguments = arguments, |
_expression = expression, |
_kind = kind, |
_name = name; |
@@ -3636,16 +3636,16 @@ class UnlinkedConstructorInitializerBuilder extends Object with _UnlinkedConstru |
fb.Offset finish(fb.Builder fbBuilder) { |
assert(!_finished); |
_finished = true; |
- fb.Offset offset_arguments; |
fb.Offset offset_argumentNames; |
+ fb.Offset offset_arguments; |
fb.Offset offset_expression; |
fb.Offset offset_name; |
- if (!(_arguments == null || _arguments.isEmpty)) { |
- offset_arguments = fbBuilder.writeList(_arguments.map((b) => b.finish(fbBuilder)).toList()); |
- } |
if (!(_argumentNames == null || _argumentNames.isEmpty)) { |
offset_argumentNames = fbBuilder.writeList(_argumentNames.map((b) => fbBuilder.writeString(b)).toList()); |
} |
+ if (!(_arguments == null || _arguments.isEmpty)) { |
+ offset_arguments = fbBuilder.writeList(_arguments.map((b) => b.finish(fbBuilder)).toList()); |
+ } |
if (_expression != null) { |
offset_expression = _expression.finish(fbBuilder); |
} |
@@ -3653,12 +3653,12 @@ class UnlinkedConstructorInitializerBuilder extends Object with _UnlinkedConstru |
offset_name = fbBuilder.writeString(_name); |
} |
fbBuilder.startTable(); |
- if (offset_arguments != null) { |
- fbBuilder.addOffset(3, offset_arguments); |
- } |
if (offset_argumentNames != null) { |
fbBuilder.addOffset(4, offset_argumentNames); |
} |
+ if (offset_arguments != null) { |
+ fbBuilder.addOffset(3, offset_arguments); |
+ } |
if (offset_expression != null) { |
fbBuilder.addOffset(1, offset_expression); |
} |
@@ -3685,25 +3685,25 @@ class _UnlinkedConstructorInitializerImpl extends Object with _UnlinkedConstruct |
_UnlinkedConstructorInitializerImpl(this._bc, this._bcOffset); |
- List<idl.UnlinkedConst> _arguments; |
List<String> _argumentNames; |
+ List<idl.UnlinkedConst> _arguments; |
idl.UnlinkedConst _expression; |
idl.UnlinkedConstructorInitializerKind _kind; |
String _name; |
@override |
- List<idl.UnlinkedConst> get arguments { |
- _arguments ??= const fb.ListReader<idl.UnlinkedConst>(const _UnlinkedConstReader()).vTableGet(_bc, _bcOffset, 3, const <idl.UnlinkedConst>[]); |
- return _arguments; |
- } |
- |
- @override |
List<String> get argumentNames { |
_argumentNames ??= const fb.ListReader<String>(const fb.StringReader()).vTableGet(_bc, _bcOffset, 4, const <String>[]); |
return _argumentNames; |
} |
@override |
+ List<idl.UnlinkedConst> get arguments { |
+ _arguments ??= const fb.ListReader<idl.UnlinkedConst>(const _UnlinkedConstReader()).vTableGet(_bc, _bcOffset, 3, const <idl.UnlinkedConst>[]); |
+ return _arguments; |
+ } |
+ |
+ @override |
idl.UnlinkedConst get expression { |
_expression ??= const _UnlinkedConstReader().vTableGet(_bc, _bcOffset, 1, null); |
return _expression; |
@@ -3726,8 +3726,8 @@ abstract class _UnlinkedConstructorInitializerMixin implements idl.UnlinkedConst |
@override |
Map<String, Object> toJson() { |
Map<String, Object> _result = <String, Object>{}; |
- if (arguments.isNotEmpty) _result["arguments"] = arguments.map((_value) => _value.toJson()).toList(); |
if (argumentNames.isNotEmpty) _result["argumentNames"] = argumentNames; |
+ if (arguments.isNotEmpty) _result["arguments"] = arguments.map((_value) => _value.toJson()).toList(); |
if (expression != null) _result["expression"] = expression.toJson(); |
if (kind != idl.UnlinkedConstructorInitializerKind.field) _result["kind"] = kind.toString().split('.')[1]; |
if (name != '') _result["name"] = name; |
@@ -3736,8 +3736,8 @@ abstract class _UnlinkedConstructorInitializerMixin implements idl.UnlinkedConst |
@override |
Map<String, Object> toMap() => { |
- "arguments": arguments, |
"argumentNames": argumentNames, |
+ "arguments": arguments, |
"expression": expression, |
"kind": kind, |
"name": name, |
@@ -4250,6 +4250,7 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
bool _finished = false; |
List<UnlinkedConstBuilder> _annotations; |
+ UnlinkedConstBuilder _bodyExpr; |
CodeRangeBuilder _codeRange; |
List<UnlinkedConstructorInitializerBuilder> _constantInitializers; |
int _constCycleSlot; |
@@ -4291,6 +4292,19 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
} |
@override |
+ UnlinkedConstBuilder get bodyExpr => _bodyExpr; |
+ |
+ /** |
+ * If this executable's function body is declared using `=>`, the expression |
+ * to the right of the `=>`. May be omitted if neither type inference nor |
+ * constant evaluation depends on the function body. |
+ */ |
+ void set bodyExpr(UnlinkedConstBuilder _value) { |
+ assert(!_finished); |
+ _bodyExpr = _value; |
+ } |
+ |
+ @override |
CodeRangeBuilder get codeRange => _codeRange; |
/** |
@@ -4638,8 +4652,9 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
_visibleOffset = _value; |
} |
- UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, List<UnlinkedConstructorInitializerBuilder> constantInitializers, int constCycleSlot, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isAsynchronous, bool isConst, bool isExternal, bool isFactory, bool isGenerator, bool isRedirectedConstructor, bool isStatic, idl.UnlinkedExecutableKind kind, List<UnlinkedExecutableBuilder> localFunctions, List<UnlinkedLabelBuilder> localLabels, List<UnlinkedVariableBuilder> localVariables, String name, int nameEnd, int nameOffset, List<UnlinkedParamBuilder> parameters, int periodOffset, EntityRefBuilder redirectedConstructor, String redirectedConstructorName, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters, int visibleLength, int visibleOffset}) |
+ UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, UnlinkedConstBuilder bodyExpr, CodeRangeBuilder codeRange, List<UnlinkedConstructorInitializerBuilder> constantInitializers, int constCycleSlot, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isAsynchronous, bool isConst, bool isExternal, bool isFactory, bool isGenerator, bool isRedirectedConstructor, bool isStatic, idl.UnlinkedExecutableKind kind, List<UnlinkedExecutableBuilder> localFunctions, List<UnlinkedLabelBuilder> localLabels, List<UnlinkedVariableBuilder> localVariables, String name, int nameEnd, int nameOffset, List<UnlinkedParamBuilder> parameters, int periodOffset, EntityRefBuilder redirectedConstructor, String redirectedConstructorName, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters, int visibleLength, int visibleOffset}) |
: _annotations = annotations, |
+ _bodyExpr = bodyExpr, |
_codeRange = codeRange, |
_constantInitializers = constantInitializers, |
_constCycleSlot = constCycleSlot, |
@@ -4674,6 +4689,7 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
*/ |
void flushInformative() { |
_annotations?.forEach((b) => b.flushInformative()); |
+ _bodyExpr?.flushInformative(); |
_codeRange = null; |
_constantInitializers?.forEach((b) => b.flushInformative()); |
_documentationComment = null; |
@@ -4695,6 +4711,7 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
assert(!_finished); |
_finished = true; |
fb.Offset offset_annotations; |
+ fb.Offset offset_bodyExpr; |
fb.Offset offset_codeRange; |
fb.Offset offset_constantInitializers; |
fb.Offset offset_documentationComment; |
@@ -4710,6 +4727,9 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
if (!(_annotations == null || _annotations.isEmpty)) { |
offset_annotations = fbBuilder.writeList(_annotations.map((b) => b.finish(fbBuilder)).toList()); |
} |
+ if (_bodyExpr != null) { |
+ offset_bodyExpr = _bodyExpr.finish(fbBuilder); |
+ } |
if (_codeRange != null) { |
offset_codeRange = _codeRange.finish(fbBuilder); |
} |
@@ -4750,6 +4770,9 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
if (offset_annotations != null) { |
fbBuilder.addOffset(6, offset_annotations); |
} |
+ if (offset_bodyExpr != null) { |
+ fbBuilder.addOffset(29, offset_bodyExpr); |
+ } |
if (offset_codeRange != null) { |
fbBuilder.addOffset(26, offset_codeRange); |
} |
@@ -4852,6 +4875,7 @@ class _UnlinkedExecutableImpl extends Object with _UnlinkedExecutableMixin imple |
_UnlinkedExecutableImpl(this._bc, this._bcOffset); |
List<idl.UnlinkedConst> _annotations; |
+ idl.UnlinkedConst _bodyExpr; |
idl.CodeRange _codeRange; |
List<idl.UnlinkedConstructorInitializer> _constantInitializers; |
int _constCycleSlot; |
@@ -4888,6 +4912,12 @@ class _UnlinkedExecutableImpl extends Object with _UnlinkedExecutableMixin imple |
} |
@override |
+ idl.UnlinkedConst get bodyExpr { |
+ _bodyExpr ??= const _UnlinkedConstReader().vTableGet(_bc, _bcOffset, 29, null); |
+ return _bodyExpr; |
+ } |
+ |
+ @override |
idl.CodeRange get codeRange { |
_codeRange ??= const _CodeRangeReader().vTableGet(_bc, _bcOffset, 26, null); |
return _codeRange; |
@@ -5061,6 +5091,7 @@ abstract class _UnlinkedExecutableMixin implements idl.UnlinkedExecutable { |
Map<String, Object> toJson() { |
Map<String, Object> _result = <String, Object>{}; |
if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList(); |
+ if (bodyExpr != null) _result["bodyExpr"] = bodyExpr.toJson(); |
if (codeRange != null) _result["codeRange"] = codeRange.toJson(); |
if (constantInitializers.isNotEmpty) _result["constantInitializers"] = constantInitializers.map((_value) => _value.toJson()).toList(); |
if (constCycleSlot != 0) _result["constCycleSlot"] = constCycleSlot; |
@@ -5095,6 +5126,7 @@ abstract class _UnlinkedExecutableMixin implements idl.UnlinkedExecutable { |
@override |
Map<String, Object> toMap() => { |
"annotations": annotations, |
+ "bodyExpr": bodyExpr, |
"codeRange": codeRange, |
"constantInitializers": constantInitializers, |
"constCycleSlot": constCycleSlot, |
@@ -8002,7 +8034,6 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
List<UnlinkedConstBuilder> _annotations; |
CodeRangeBuilder _codeRange; |
- UnlinkedConstBuilder _constExpr; |
UnlinkedDocumentationCommentBuilder _documentationComment; |
int _inferredTypeSlot; |
UnlinkedExecutableBuilder _initializer; |
@@ -8039,19 +8070,6 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
} |
@override |
- UnlinkedConstBuilder get constExpr => _constExpr; |
- |
- /** |
- * If [isConst] is true, and the variable has an initializer, the constant |
- * expression in the initializer. Note that the presence of this expression |
- * does not mean that it is a valid, check [UnlinkedConst.isInvalid]. |
- */ |
- void set constExpr(UnlinkedConstBuilder _value) { |
- assert(!_finished); |
- _constExpr = _value; |
- } |
- |
- @override |
UnlinkedDocumentationCommentBuilder get documentationComment => _documentationComment; |
/** |
@@ -8202,10 +8220,9 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
_visibleOffset = _value; |
} |
- UnlinkedVariableBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedConstBuilder constExpr, UnlinkedDocumentationCommentBuilder documentationComment, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isConst, bool isFinal, bool isStatic, String name, int nameOffset, int propagatedTypeSlot, EntityRefBuilder type, int visibleLength, int visibleOffset}) |
+ UnlinkedVariableBuilder({List<UnlinkedConstBuilder> annotations, CodeRangeBuilder codeRange, UnlinkedDocumentationCommentBuilder documentationComment, int inferredTypeSlot, UnlinkedExecutableBuilder initializer, bool isConst, bool isFinal, bool isStatic, String name, int nameOffset, int propagatedTypeSlot, EntityRefBuilder type, int visibleLength, int visibleOffset}) |
: _annotations = annotations, |
_codeRange = codeRange, |
- _constExpr = constExpr, |
_documentationComment = documentationComment, |
_inferredTypeSlot = inferredTypeSlot, |
_initializer = initializer, |
@@ -8225,7 +8242,6 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
void flushInformative() { |
_annotations?.forEach((b) => b.flushInformative()); |
_codeRange = null; |
- _constExpr?.flushInformative(); |
_documentationComment = null; |
_initializer?.flushInformative(); |
_nameOffset = null; |
@@ -8237,7 +8253,6 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
_finished = true; |
fb.Offset offset_annotations; |
fb.Offset offset_codeRange; |
- fb.Offset offset_constExpr; |
fb.Offset offset_documentationComment; |
fb.Offset offset_initializer; |
fb.Offset offset_name; |
@@ -8248,9 +8263,6 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
if (_codeRange != null) { |
offset_codeRange = _codeRange.finish(fbBuilder); |
} |
- if (_constExpr != null) { |
- offset_constExpr = _constExpr.finish(fbBuilder); |
- } |
if (_documentationComment != null) { |
offset_documentationComment = _documentationComment.finish(fbBuilder); |
} |
@@ -8268,10 +8280,7 @@ class UnlinkedVariableBuilder extends Object with _UnlinkedVariableMixin impleme |
fbBuilder.addOffset(8, offset_annotations); |
} |
if (offset_codeRange != null) { |
- fbBuilder.addOffset(14, offset_codeRange); |
- } |
- if (offset_constExpr != null) { |
- fbBuilder.addOffset(5, offset_constExpr); |
+ fbBuilder.addOffset(5, offset_codeRange); |
} |
if (offset_documentationComment != null) { |
fbBuilder.addOffset(10, offset_documentationComment); |
@@ -8328,7 +8337,6 @@ class _UnlinkedVariableImpl extends Object with _UnlinkedVariableMixin implement |
List<idl.UnlinkedConst> _annotations; |
idl.CodeRange _codeRange; |
- idl.UnlinkedConst _constExpr; |
idl.UnlinkedDocumentationComment _documentationComment; |
int _inferredTypeSlot; |
idl.UnlinkedExecutable _initializer; |
@@ -8350,17 +8358,11 @@ class _UnlinkedVariableImpl extends Object with _UnlinkedVariableMixin implement |
@override |
idl.CodeRange get codeRange { |
- _codeRange ??= const _CodeRangeReader().vTableGet(_bc, _bcOffset, 14, null); |
+ _codeRange ??= const _CodeRangeReader().vTableGet(_bc, _bcOffset, 5, null); |
return _codeRange; |
} |
@override |
- idl.UnlinkedConst get constExpr { |
- _constExpr ??= const _UnlinkedConstReader().vTableGet(_bc, _bcOffset, 5, null); |
- return _constExpr; |
- } |
- |
- @override |
idl.UnlinkedDocumentationComment get documentationComment { |
_documentationComment ??= const _UnlinkedDocumentationCommentReader().vTableGet(_bc, _bcOffset, 10, null); |
return _documentationComment; |
@@ -8439,7 +8441,6 @@ abstract class _UnlinkedVariableMixin implements idl.UnlinkedVariable { |
Map<String, Object> _result = <String, Object>{}; |
if (annotations.isNotEmpty) _result["annotations"] = annotations.map((_value) => _value.toJson()).toList(); |
if (codeRange != null) _result["codeRange"] = codeRange.toJson(); |
- if (constExpr != null) _result["constExpr"] = constExpr.toJson(); |
if (documentationComment != null) _result["documentationComment"] = documentationComment.toJson(); |
if (inferredTypeSlot != 0) _result["inferredTypeSlot"] = inferredTypeSlot; |
if (initializer != null) _result["initializer"] = initializer.toJson(); |
@@ -8459,7 +8460,6 @@ abstract class _UnlinkedVariableMixin implements idl.UnlinkedVariable { |
Map<String, Object> toMap() => { |
"annotations": annotations, |
"codeRange": codeRange, |
- "constExpr": constExpr, |
"documentationComment": documentationComment, |
"inferredTypeSlot": inferredTypeSlot, |
"initializer": initializer, |