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 061569bb129b4e2b33a23a12316b05512e2cd767..a595343127a9cdacfe3f0245f30e3d39c47adc69 100644 |
--- a/pkg/analyzer/lib/src/summary/format.dart |
+++ b/pkg/analyzer/lib/src/summary/format.dart |
@@ -2430,11 +2430,14 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
bool _isConst; |
bool _isExternal; |
bool _isFactory; |
+ bool _isRedirectedConstructor; |
bool _isStatic; |
idl.UnlinkedExecutableKind _kind; |
String _name; |
int _nameOffset; |
List<UnlinkedParamBuilder> _parameters; |
+ EntityRefBuilder _redirectedConstructor; |
+ String _redirectedConstructorName; |
EntityRefBuilder _returnType; |
List<UnlinkedTypeParamBuilder> _typeParameters; |
@@ -2534,6 +2537,17 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
} |
@override |
+ bool get isRedirectedConstructor => _isRedirectedConstructor ??= false; |
+ |
+ /** |
+ * Indicates whether the executable is a redirected constructor. |
+ */ |
+ void set isRedirectedConstructor(bool _value) { |
+ assert(!_finished); |
+ _isRedirectedConstructor = _value; |
+ } |
+ |
+ @override |
bool get isStatic => _isStatic ??= false; |
/** |
@@ -2602,6 +2616,31 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
} |
@override |
+ EntityRefBuilder get redirectedConstructor => _redirectedConstructor; |
+ |
+ /** |
+ * If [isRedirectedConstructor] and [isFactory] are both `true`, the |
+ * constructor to which this constructor redirects; otherwise empty. |
+ */ |
+ void set redirectedConstructor(EntityRefBuilder _value) { |
+ assert(!_finished); |
+ _redirectedConstructor = _value; |
+ } |
+ |
+ @override |
+ String get redirectedConstructorName => _redirectedConstructorName ??= ''; |
+ |
+ /** |
+ * If [isRedirectedConstructor] is `true` and [isFactory] is `false`, the |
+ * name of the constructor that this constructor redirects to; otherwise |
+ * empty. |
+ */ |
+ void set redirectedConstructorName(String _value) { |
+ assert(!_finished); |
+ _redirectedConstructorName = _value; |
+ } |
+ |
+ @override |
EntityRefBuilder get returnType => _returnType; |
/** |
@@ -2625,7 +2664,7 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
_typeParameters = _value; |
} |
- UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, List<UnlinkedConstructorInitializerBuilder> constantInitializers, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isConst, bool isExternal, bool isFactory, bool isStatic, idl.UnlinkedExecutableKind kind, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters}) |
+ UnlinkedExecutableBuilder({List<UnlinkedConstBuilder> annotations, List<UnlinkedConstructorInitializerBuilder> constantInitializers, UnlinkedDocumentationCommentBuilder documentationComment, int inferredReturnTypeSlot, bool isAbstract, bool isConst, bool isExternal, bool isFactory, bool isRedirectedConstructor, bool isStatic, idl.UnlinkedExecutableKind kind, String name, int nameOffset, List<UnlinkedParamBuilder> parameters, EntityRefBuilder redirectedConstructor, String redirectedConstructorName, EntityRefBuilder returnType, List<UnlinkedTypeParamBuilder> typeParameters}) |
: _annotations = annotations, |
_constantInitializers = constantInitializers, |
_documentationComment = documentationComment, |
@@ -2634,11 +2673,14 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
_isConst = isConst, |
_isExternal = isExternal, |
_isFactory = isFactory, |
+ _isRedirectedConstructor = isRedirectedConstructor, |
_isStatic = isStatic, |
_kind = kind, |
_name = name, |
_nameOffset = nameOffset, |
_parameters = parameters, |
+ _redirectedConstructor = redirectedConstructor, |
+ _redirectedConstructorName = redirectedConstructorName, |
_returnType = returnType, |
_typeParameters = typeParameters; |
@@ -2650,6 +2692,8 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
fb.Offset offset_documentationComment; |
fb.Offset offset_name; |
fb.Offset offset_parameters; |
+ fb.Offset offset_redirectedConstructor; |
+ fb.Offset offset_redirectedConstructorName; |
fb.Offset offset_returnType; |
fb.Offset offset_typeParameters; |
if (!(_annotations == null || _annotations.isEmpty)) { |
@@ -2667,6 +2711,12 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
if (!(_parameters == null || _parameters.isEmpty)) { |
offset_parameters = fbBuilder.writeList(_parameters.map((b) => b.finish(fbBuilder)).toList()); |
} |
+ if (_redirectedConstructor != null) { |
+ offset_redirectedConstructor = _redirectedConstructor.finish(fbBuilder); |
+ } |
+ if (_redirectedConstructorName != null) { |
+ offset_redirectedConstructorName = fbBuilder.writeString(_redirectedConstructorName); |
+ } |
if (_returnType != null) { |
offset_returnType = _returnType.finish(fbBuilder); |
} |
@@ -2698,26 +2748,35 @@ class UnlinkedExecutableBuilder extends Object with _UnlinkedExecutableMixin imp |
if (_isFactory == true) { |
fbBuilder.addBool(7, true); |
} |
- if (_isStatic == true) { |
+ if (_isRedirectedConstructor == true) { |
fbBuilder.addBool(8, true); |
} |
+ if (_isStatic == true) { |
+ fbBuilder.addBool(9, true); |
+ } |
if (_kind != null && _kind != idl.UnlinkedExecutableKind.functionOrMethod) { |
- fbBuilder.addUint32(9, _kind.index); |
+ fbBuilder.addUint32(10, _kind.index); |
} |
if (offset_name != null) { |
- fbBuilder.addOffset(10, offset_name); |
+ fbBuilder.addOffset(11, offset_name); |
} |
if (_nameOffset != null && _nameOffset != 0) { |
- fbBuilder.addUint32(11, _nameOffset); |
+ fbBuilder.addUint32(12, _nameOffset); |
} |
if (offset_parameters != null) { |
- fbBuilder.addOffset(12, offset_parameters); |
+ fbBuilder.addOffset(13, offset_parameters); |
+ } |
+ if (offset_redirectedConstructor != null) { |
+ fbBuilder.addOffset(14, offset_redirectedConstructor); |
+ } |
+ if (offset_redirectedConstructorName != null) { |
+ fbBuilder.addOffset(15, offset_redirectedConstructorName); |
} |
if (offset_returnType != null) { |
- fbBuilder.addOffset(13, offset_returnType); |
+ fbBuilder.addOffset(16, offset_returnType); |
} |
if (offset_typeParameters != null) { |
- fbBuilder.addOffset(14, offset_typeParameters); |
+ fbBuilder.addOffset(17, offset_typeParameters); |
} |
return fbBuilder.endTable(); |
} |
@@ -2743,11 +2802,14 @@ class _UnlinkedExecutableImpl extends Object with _UnlinkedExecutableMixin imple |
bool _isConst; |
bool _isExternal; |
bool _isFactory; |
+ bool _isRedirectedConstructor; |
bool _isStatic; |
idl.UnlinkedExecutableKind _kind; |
String _name; |
int _nameOffset; |
List<idl.UnlinkedParam> _parameters; |
+ idl.EntityRef _redirectedConstructor; |
+ String _redirectedConstructorName; |
idl.EntityRef _returnType; |
List<idl.UnlinkedTypeParam> _typeParameters; |
@@ -2800,44 +2862,62 @@ class _UnlinkedExecutableImpl extends Object with _UnlinkedExecutableMixin imple |
} |
@override |
+ bool get isRedirectedConstructor { |
+ _isRedirectedConstructor ??= const fb.BoolReader().vTableGet(_bp, 8, false); |
+ return _isRedirectedConstructor; |
+ } |
+ |
+ @override |
bool get isStatic { |
- _isStatic ??= const fb.BoolReader().vTableGet(_bp, 8, false); |
+ _isStatic ??= const fb.BoolReader().vTableGet(_bp, 9, false); |
return _isStatic; |
} |
@override |
idl.UnlinkedExecutableKind get kind { |
- _kind ??= const _UnlinkedExecutableKindReader().vTableGet(_bp, 9, idl.UnlinkedExecutableKind.functionOrMethod); |
+ _kind ??= const _UnlinkedExecutableKindReader().vTableGet(_bp, 10, idl.UnlinkedExecutableKind.functionOrMethod); |
return _kind; |
} |
@override |
String get name { |
- _name ??= const fb.StringReader().vTableGet(_bp, 10, ''); |
+ _name ??= const fb.StringReader().vTableGet(_bp, 11, ''); |
return _name; |
} |
@override |
int get nameOffset { |
- _nameOffset ??= const fb.Uint32Reader().vTableGet(_bp, 11, 0); |
+ _nameOffset ??= const fb.Uint32Reader().vTableGet(_bp, 12, 0); |
return _nameOffset; |
} |
@override |
List<idl.UnlinkedParam> get parameters { |
- _parameters ??= const fb.ListReader<idl.UnlinkedParam>(const _UnlinkedParamReader()).vTableGet(_bp, 12, const <idl.UnlinkedParam>[]); |
+ _parameters ??= const fb.ListReader<idl.UnlinkedParam>(const _UnlinkedParamReader()).vTableGet(_bp, 13, const <idl.UnlinkedParam>[]); |
return _parameters; |
} |
@override |
+ idl.EntityRef get redirectedConstructor { |
+ _redirectedConstructor ??= const _EntityRefReader().vTableGet(_bp, 14, null); |
+ return _redirectedConstructor; |
+ } |
+ |
+ @override |
+ String get redirectedConstructorName { |
+ _redirectedConstructorName ??= const fb.StringReader().vTableGet(_bp, 15, ''); |
+ return _redirectedConstructorName; |
+ } |
+ |
+ @override |
idl.EntityRef get returnType { |
- _returnType ??= const _EntityRefReader().vTableGet(_bp, 13, null); |
+ _returnType ??= const _EntityRefReader().vTableGet(_bp, 16, null); |
return _returnType; |
} |
@override |
List<idl.UnlinkedTypeParam> get typeParameters { |
- _typeParameters ??= const fb.ListReader<idl.UnlinkedTypeParam>(const _UnlinkedTypeParamReader()).vTableGet(_bp, 14, const <idl.UnlinkedTypeParam>[]); |
+ _typeParameters ??= const fb.ListReader<idl.UnlinkedTypeParam>(const _UnlinkedTypeParamReader()).vTableGet(_bp, 17, const <idl.UnlinkedTypeParam>[]); |
return _typeParameters; |
} |
} |
@@ -2853,11 +2933,14 @@ abstract class _UnlinkedExecutableMixin implements idl.UnlinkedExecutable { |
"isConst": isConst, |
"isExternal": isExternal, |
"isFactory": isFactory, |
+ "isRedirectedConstructor": isRedirectedConstructor, |
"isStatic": isStatic, |
"kind": kind, |
"name": name, |
"nameOffset": nameOffset, |
"parameters": parameters, |
+ "redirectedConstructor": redirectedConstructor, |
+ "redirectedConstructorName": redirectedConstructorName, |
"returnType": returnType, |
"typeParameters": typeParameters, |
}; |