Elements. Replace FragmentImpl.nameOffset with firstTokenOffset.
This will free the name `nameOffset` in `FragmentImpl` for `Fragment.nameOffset2` to be renamed into. Change-Id: I28f4d3f9eae8d96c00eef38fe9495beb3520878b Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/439642 Reviewed-by: Brian Wilkerson <brianwilkerson@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This commit is contained in:
committed by
Commit Queue
parent
14bb2be360
commit
279b379ef9
@@ -110,7 +110,7 @@ testFineAfterLibraryAnalyzerHook;
|
||||
// TODO(scheglov): Clean up the list of implicitly analyzed files.
|
||||
class AnalysisDriver {
|
||||
/// The version of data format, should be incremented on every format change.
|
||||
static const int DATA_VERSION = 493;
|
||||
static const int DATA_VERSION = 494;
|
||||
|
||||
/// The number of exception contexts allowed to write. Once this field is
|
||||
/// zero, we stop writing any new exception contexts in this process.
|
||||
|
||||
@@ -772,7 +772,7 @@ class ElementDisplayStringBuilder {
|
||||
|
||||
var newTypeParameter = TypeParameterFragmentImpl(
|
||||
name: name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
newTypeParameter.bound = typeParameter.bound;
|
||||
newTypeParameters.add(newTypeParameter.asElement2);
|
||||
|
||||
@@ -120,7 +120,7 @@ class BindPatternVariableFragmentImpl extends PatternVariableFragmentImpl
|
||||
BindPatternVariableFragmentImpl({
|
||||
required this.node,
|
||||
required super.name,
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
}) {
|
||||
_element2 = BindPatternVariableElementImpl(this);
|
||||
}
|
||||
@@ -453,7 +453,7 @@ class ClassElementImpl extends InterfaceElementImpl implements ClassElement {
|
||||
superConstructors.map((superConstructor) {
|
||||
var constructorFragment = ConstructorFragmentImpl(
|
||||
name: superConstructor.name ?? 'new',
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
constructorFragment.isSynthetic = true;
|
||||
constructorFragment.typeName = name;
|
||||
@@ -477,7 +477,7 @@ class ClassElementImpl extends InterfaceElementImpl implements ClassElement {
|
||||
var superInvocationArguments = <ExpressionImpl>[];
|
||||
for (var superFormalParameter in superConstructor.formalParameters) {
|
||||
var formalParameterFragment = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: superFormalParameter.name,
|
||||
nameOffset2: null,
|
||||
parameterKind: superFormalParameter.parameterKind,
|
||||
@@ -557,7 +557,7 @@ class ClassFragmentImpl extends ClassOrMixinFragmentImpl
|
||||
|
||||
/// Initialize a newly created class element to have the given [name] at the
|
||||
/// given [offset] in the file that contains the declaration of this element.
|
||||
ClassFragmentImpl({required super.name, required super.nameOffset});
|
||||
ClassFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
bool get hasExtendsClause {
|
||||
return hasModifier(Modifier.HAS_EXTENDS_CLAUSE);
|
||||
@@ -679,7 +679,10 @@ class ClassFragmentImpl extends ClassOrMixinFragmentImpl
|
||||
abstract class ClassOrMixinFragmentImpl extends InterfaceFragmentImpl {
|
||||
/// Initialize a newly created class element to have the given [name] at the
|
||||
/// given [offset] in the file that contains the declaration of this element.
|
||||
ClassOrMixinFragmentImpl({required super.name, required super.nameOffset});
|
||||
ClassOrMixinFragmentImpl({
|
||||
required super.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
bool get isBase {
|
||||
return hasModifier(Modifier.BASE);
|
||||
@@ -981,7 +984,10 @@ class ConstructorFragmentImpl extends ExecutableFragmentImpl
|
||||
|
||||
/// Initialize a newly created constructor element to have the given [name]
|
||||
/// and [offset].
|
||||
ConstructorFragmentImpl({required this.name, required super.nameOffset});
|
||||
ConstructorFragmentImpl({
|
||||
required this.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
/// Return the constant initializers for this element, which will be empty if
|
||||
/// there are no initializers, or `null` if there was an error in the source.
|
||||
@@ -1063,7 +1069,11 @@ class ConstructorFragmentImpl extends ExecutableFragmentImpl
|
||||
String get name2 => name;
|
||||
|
||||
@override
|
||||
int get offset => isSynthetic ? enclosingElement.offset : nameOffset;
|
||||
int get offset =>
|
||||
nameOffset2 ??
|
||||
typeNameOffset ??
|
||||
firstTokenOffset ??
|
||||
enclosingElement.offset;
|
||||
|
||||
@override
|
||||
InterfaceTypeImpl get returnType {
|
||||
@@ -1322,7 +1332,7 @@ class DynamicFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
|
||||
/// should <b>not</b> be created except as part of creating the type
|
||||
/// associated with this element. The single instance of this class should be
|
||||
/// accessed through the method [instance].
|
||||
DynamicFragmentImpl._() : super(nameOffset: -1) {
|
||||
DynamicFragmentImpl._() : super(firstTokenOffset: null) {
|
||||
setModifier(Modifier.SYNTHETIC, true);
|
||||
}
|
||||
|
||||
@@ -2057,7 +2067,7 @@ class EnumFragmentImpl extends InterfaceFragmentImpl implements EnumFragment {
|
||||
|
||||
/// Initialize a newly created class element to have the given [name] at the
|
||||
/// given [offset] in the file that contains the declaration of this element.
|
||||
EnumFragmentImpl({required super.name, required super.nameOffset});
|
||||
EnumFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
// TODO(fshcheglov): Consider removing.
|
||||
List<FieldFragmentImpl> get constants {
|
||||
@@ -2196,7 +2206,7 @@ abstract class ExecutableFragmentImpl extends _ExistingFragmentImpl
|
||||
|
||||
/// Initialize a newly created executable element to have the given [name] and
|
||||
/// [offset].
|
||||
ExecutableFragmentImpl({required super.nameOffset});
|
||||
ExecutableFragmentImpl({required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => [...typeParameters, ...parameters];
|
||||
@@ -2327,7 +2337,7 @@ abstract class ExecutableFragmentImpl extends _ExistingFragmentImpl
|
||||
}
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => nameOffset2 ?? firstTokenOffset!;
|
||||
|
||||
/// The formal parameters defined by this executable fragment.
|
||||
List<FormalParameterFragmentImpl> get parameters {
|
||||
@@ -2462,7 +2472,7 @@ class ExtensionFragmentImpl extends InstanceFragmentImpl
|
||||
/// Initialize a newly created extension element to have the given [name] at
|
||||
/// the given [nameOffset] in the file that contains the declaration of this
|
||||
/// element.
|
||||
ExtensionFragmentImpl({required super.name, required super.nameOffset});
|
||||
ExtensionFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => [
|
||||
@@ -2503,9 +2513,6 @@ class ExtensionFragmentImpl extends InstanceFragmentImpl
|
||||
ExtensionFragmentImpl? get nextFragment =>
|
||||
super.nextFragment as ExtensionFragmentImpl?;
|
||||
|
||||
@override
|
||||
int get offset => nameOffset2 ?? _codeOffset ?? 0;
|
||||
|
||||
@override
|
||||
ExtensionFragmentImpl? get previousFragment =>
|
||||
super.previousFragment as ExtensionFragmentImpl?;
|
||||
@@ -2624,7 +2631,10 @@ class ExtensionTypeFragmentImpl extends InterfaceFragmentImpl
|
||||
/// in implemented superinterfaces.
|
||||
bool hasImplementsSelfReference = false;
|
||||
|
||||
ExtensionTypeFragmentImpl({required super.name, required super.nameOffset});
|
||||
ExtensionTypeFragmentImpl({
|
||||
required super.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
ExtensionTypeFragmentImpl? get nextFragment =>
|
||||
@@ -2832,7 +2842,7 @@ class FieldFormalParameterFragmentImpl extends FormalParameterFragmentImpl
|
||||
/// Initialize a newly created parameter element to have the given [name] and
|
||||
/// [nameOffset].
|
||||
FieldFormalParameterFragmentImpl({
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
required super.name,
|
||||
required super.nameOffset2,
|
||||
required super.parameterKind,
|
||||
@@ -2881,7 +2891,7 @@ class FieldFragmentImpl extends PropertyInducingFragmentImpl
|
||||
|
||||
/// Initialize a newly created synthetic field element to have the given
|
||||
/// [name] at the given [offset].
|
||||
FieldFragmentImpl({required super.name, required super.nameOffset});
|
||||
FieldFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
ExpressionImpl? get constantInitializer {
|
||||
@@ -2955,7 +2965,7 @@ class FieldFragmentImpl extends PropertyInducingFragmentImpl
|
||||
super.nextFragment as FieldFragmentImpl?;
|
||||
|
||||
@override
|
||||
int get offset => isSynthetic ? enclosingFragment.offset : nameOffset;
|
||||
int get offset => nameOffset2 ?? firstTokenOffset ?? enclosingFragment.offset;
|
||||
|
||||
@override
|
||||
FieldFragmentImpl? get previousFragment =>
|
||||
@@ -3226,7 +3236,7 @@ class FormalParameterFragmentImpl extends VariableFragmentImpl
|
||||
/// Initialize a newly created parameter element to have the given [name] and
|
||||
/// [nameOffset].
|
||||
FormalParameterFragmentImpl({
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
required this.name,
|
||||
required this.nameOffset2,
|
||||
required this.parameterKind,
|
||||
@@ -3242,7 +3252,7 @@ class FormalParameterFragmentImpl extends VariableFragmentImpl
|
||||
// parameter which prevents navigation/references from working. See
|
||||
// https://github.com/dart-lang/sdk/issues/60200
|
||||
var element = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: name2,
|
||||
nameOffset2: null,
|
||||
parameterKind: parameterKind,
|
||||
@@ -3624,10 +3634,9 @@ abstract class FragmentImpl implements Fragment {
|
||||
/// is the defining unit of the library.
|
||||
FragmentImpl? enclosingElement;
|
||||
|
||||
/// The offset of the name of this element in the file that contains the
|
||||
/// declaration of this element, or `-1` if this element is synthetic, does
|
||||
/// not have a name, or otherwise does not have an offset.
|
||||
int nameOffset = 0;
|
||||
/// The offset of the first token of the declaration of this fragment,
|
||||
/// or `null` if this fragment is synthetic.
|
||||
int? firstTokenOffset;
|
||||
|
||||
/// The modifiers associated with this element.
|
||||
EnumSet<Modifier> _modifiers = EnumSet.empty();
|
||||
@@ -3645,7 +3654,7 @@ abstract class FragmentImpl implements Fragment {
|
||||
|
||||
/// Initialize a newly created element to have the given [name] at the given
|
||||
/// [_nameOffset].
|
||||
FragmentImpl({required this.nameOffset});
|
||||
FragmentImpl({required this.firstTokenOffset});
|
||||
|
||||
/// The length of the element's code, or `null` if the element is synthetic.
|
||||
int? get codeLength => _codeLength;
|
||||
@@ -3878,13 +3887,12 @@ sealed class FunctionFragmentImpl extends ExecutableFragmentImpl
|
||||
|
||||
/// Initialize a newly created function element to have the given [name] and
|
||||
/// [offset].
|
||||
FunctionFragmentImpl({required this.name, required super.nameOffset});
|
||||
FunctionFragmentImpl({required this.name, required super.firstTokenOffset});
|
||||
|
||||
/// Initialize a newly created function element to have no name and the given
|
||||
/// [nameOffset]. This is used for function expressions, that have no name.
|
||||
FunctionFragmentImpl.forOffset(int nameOffset)
|
||||
: name = null,
|
||||
super(nameOffset: nameOffset);
|
||||
FunctionFragmentImpl.forOffset({required super.firstTokenOffset})
|
||||
: name = null;
|
||||
|
||||
@override
|
||||
ExecutableFragmentImpl get declaration => this;
|
||||
@@ -4059,8 +4067,7 @@ class GenericFunctionTypeFragmentImpl extends _ExistingFragmentImpl
|
||||
|
||||
/// Initialize a newly created function element to have no name and the given
|
||||
/// [nameOffset]. This is used for function expressions, that have no name.
|
||||
GenericFunctionTypeFragmentImpl.forOffset(int nameOffset)
|
||||
: super(nameOffset: nameOffset);
|
||||
GenericFunctionTypeFragmentImpl.forOffset({required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => [...typeParameters, ...parameters];
|
||||
@@ -4092,7 +4099,7 @@ class GenericFunctionTypeFragmentImpl extends _ExistingFragmentImpl
|
||||
GenericFunctionTypeFragmentImpl? get nextFragment => null;
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => firstTokenOffset!;
|
||||
|
||||
@override
|
||||
List<FormalParameterFragmentImpl> get parameters {
|
||||
@@ -4255,7 +4262,7 @@ class GetterFragmentImpl extends PropertyAccessorFragmentImpl
|
||||
@override
|
||||
GetterFragmentImpl? nextFragment;
|
||||
|
||||
GetterFragmentImpl({required super.name, required super.nameOffset});
|
||||
GetterFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
GetterFragmentImpl.forVariable(super.variable) : super.forVariable();
|
||||
|
||||
@@ -4786,7 +4793,7 @@ abstract class InstanceFragmentImpl extends _ExistingFragmentImpl
|
||||
List<SetterFragmentImpl> _setters = _Sentinel.setterElement;
|
||||
List<MethodFragmentImpl> _methods = _Sentinel.methodElement;
|
||||
|
||||
InstanceFragmentImpl({required this.name, required super.nameOffset});
|
||||
InstanceFragmentImpl({required this.name, required super.firstTokenOffset});
|
||||
|
||||
List<PropertyAccessorFragmentImpl> get accessors {
|
||||
return [...getters, ...setters];
|
||||
@@ -4872,7 +4879,7 @@ abstract class InstanceFragmentImpl extends _ExistingFragmentImpl
|
||||
List<MethodFragment> get methods2 => methods.cast<MethodFragment>();
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => nameOffset2 ?? firstTokenOffset!;
|
||||
|
||||
@override
|
||||
List<SetterFragmentImpl> get setters {
|
||||
@@ -5302,7 +5309,7 @@ abstract class InterfaceFragmentImpl extends InstanceFragmentImpl
|
||||
|
||||
/// Initialize a newly created class element to have the given [name] at the
|
||||
/// given [offset] in the file that contains the declaration of this element.
|
||||
InterfaceFragmentImpl({required super.name, required super.nameOffset});
|
||||
InterfaceFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => [
|
||||
@@ -5511,7 +5518,7 @@ class JoinPatternVariableFragmentImpl extends PatternVariableFragmentImpl
|
||||
|
||||
JoinPatternVariableFragmentImpl({
|
||||
required super.name,
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
required this.variables,
|
||||
required this.inconsistency,
|
||||
}) {
|
||||
@@ -5654,7 +5661,7 @@ class LabelFragmentImpl extends FragmentImpl implements LabelFragment {
|
||||
/// `switch` member.
|
||||
LabelFragmentImpl({
|
||||
required this.name,
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
required bool onSwitchMember,
|
||||
}) : _onSwitchMember = onSwitchMember;
|
||||
|
||||
@@ -5679,6 +5686,9 @@ class LabelFragmentImpl extends FragmentImpl implements LabelFragment {
|
||||
ExecutableFragment get enclosingFragment =>
|
||||
enclosingElement as ExecutableFragment;
|
||||
|
||||
@override
|
||||
int get firstTokenOffset => super.firstTokenOffset!;
|
||||
|
||||
/// Return `true` if this label is associated with a `switch` member (`case`
|
||||
/// or `default`).
|
||||
bool get isOnSwitchMember => _onSwitchMember;
|
||||
@@ -5693,13 +5703,13 @@ class LabelFragmentImpl extends FragmentImpl implements LabelFragment {
|
||||
|
||||
@override
|
||||
// TODO(scheglov): make it a nullable field
|
||||
int? get nameOffset2 => nameOffset;
|
||||
int? get nameOffset2 => firstTokenOffset;
|
||||
|
||||
@override
|
||||
LabelFragmentImpl? get nextFragment => null;
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => firstTokenOffset;
|
||||
|
||||
@override
|
||||
LabelFragmentImpl? get previousFragment => null;
|
||||
@@ -6402,7 +6412,7 @@ class LibraryFragmentImpl extends _ExistingFragmentImpl
|
||||
required this.library,
|
||||
required this.source,
|
||||
required this.lineInfo,
|
||||
}) : super(nameOffset: -1);
|
||||
}) : super(firstTokenOffset: 0);
|
||||
|
||||
@override
|
||||
List<ExtensionElement> get accessibleExtensions {
|
||||
@@ -6952,7 +6962,10 @@ final class LoadLibraryFunctionProvider {
|
||||
TopLevelFunctionElementImpl _create(LibraryElementImpl library) {
|
||||
var name = TopLevelFunctionElement.LOAD_LIBRARY_NAME;
|
||||
|
||||
var fragment = TopLevelFunctionFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = TopLevelFunctionFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.isSynthetic = true;
|
||||
fragment.isStatic = true;
|
||||
fragment.returnType = library.typeProvider.futureDynamicType;
|
||||
@@ -7098,9 +7111,13 @@ class LocalFunctionFragmentImpl extends FunctionFragmentImpl
|
||||
@override
|
||||
LocalFunctionFragmentImpl? nextFragment;
|
||||
|
||||
LocalFunctionFragmentImpl({required super.name, required super.nameOffset});
|
||||
LocalFunctionFragmentImpl({
|
||||
required super.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
LocalFunctionFragmentImpl.forOffset(super.nameOffset) : super.forOffset();
|
||||
LocalFunctionFragmentImpl.forOffset({required super.firstTokenOffset})
|
||||
: super.forOffset();
|
||||
|
||||
@override
|
||||
bool get _includeNameOffsetInIdentifier {
|
||||
@@ -7223,12 +7240,18 @@ class LocalVariableFragmentImpl extends NonParameterVariableFragmentImpl
|
||||
@override
|
||||
final String? name;
|
||||
|
||||
@override
|
||||
int? nameOffset2;
|
||||
|
||||
@override
|
||||
MetadataImpl metadata = MetadataImpl(const []);
|
||||
|
||||
/// Initialize a newly created method element to have the given [name] and
|
||||
/// [offset].
|
||||
LocalVariableFragmentImpl({required this.name, required super.nameOffset});
|
||||
LocalVariableFragmentImpl({
|
||||
required this.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => const [];
|
||||
@@ -7255,8 +7278,7 @@ class LocalVariableFragmentImpl extends NonParameterVariableFragmentImpl
|
||||
MetadataImpl get metadata2 => metadata;
|
||||
|
||||
@override
|
||||
// TODO(scheglov): make it a nullable field
|
||||
int? get nameOffset2 => nameOffset;
|
||||
int get nameOffset => firstTokenOffset!;
|
||||
|
||||
@override
|
||||
LocalVariableFragmentImpl? get nextFragment => null;
|
||||
@@ -7788,7 +7810,7 @@ class MethodFragmentImpl extends ExecutableFragmentImpl
|
||||
|
||||
/// Initialize a newly created method element to have the given [name] at the
|
||||
/// given [offset].
|
||||
MethodFragmentImpl({required this.name, required super.nameOffset});
|
||||
MethodFragmentImpl({required this.name, required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
MethodFragmentImpl get declaration => this;
|
||||
@@ -7923,7 +7945,7 @@ class MixinFragmentImpl extends ClassOrMixinFragmentImpl
|
||||
|
||||
/// Initialize a newly created class element to have the given [name] at the
|
||||
/// given [offset] in the file that contains the declaration of this element.
|
||||
MixinFragmentImpl({required super.name, required super.nameOffset});
|
||||
MixinFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
bool get isBase {
|
||||
@@ -8409,7 +8431,7 @@ class NeverFragmentImpl extends FragmentImpl implements TypeDefiningFragment {
|
||||
/// should <b>not</b> be created except as part of creating the type
|
||||
/// associated with this element. The single instance of this class should be
|
||||
/// accessed through the method [instance].
|
||||
NeverFragmentImpl._() : super(nameOffset: -1) {
|
||||
NeverFragmentImpl._() : super(firstTokenOffset: null) {
|
||||
setModifier(Modifier.SYNTHETIC, true);
|
||||
}
|
||||
|
||||
@@ -8473,7 +8495,7 @@ abstract class NonParameterVariableFragmentImpl extends VariableFragmentImpl
|
||||
with _HasLibraryMixin {
|
||||
/// Initialize a newly created variable element to have the given [name] and
|
||||
/// [offset].
|
||||
NonParameterVariableFragmentImpl({required super.nameOffset});
|
||||
NonParameterVariableFragmentImpl({required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
FragmentImpl get enclosingElement {
|
||||
@@ -8576,7 +8598,10 @@ class PatternVariableFragmentImpl extends LocalVariableFragmentImpl
|
||||
/// the [GuardedPattern] that declares this variable.
|
||||
bool isVisitingWhenClause = false;
|
||||
|
||||
PatternVariableFragmentImpl({required super.name, required super.nameOffset});
|
||||
PatternVariableFragmentImpl({
|
||||
required super.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
PatternVariableElementImpl get element =>
|
||||
@@ -8743,8 +8768,9 @@ class PrefixFragmentImpl extends FragmentImpl implements PrefixFragment {
|
||||
required this.enclosingFragment,
|
||||
required this.name,
|
||||
required this.nameOffset2,
|
||||
required super.firstTokenOffset,
|
||||
required this.isDeferred,
|
||||
}) : super(nameOffset: -1);
|
||||
});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => const [];
|
||||
@@ -8842,14 +8868,17 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
|
||||
|
||||
/// Initialize a newly created property accessor element to have the given
|
||||
/// [name] and [offset].
|
||||
PropertyAccessorFragmentImpl({required this.name, required super.nameOffset});
|
||||
PropertyAccessorFragmentImpl({
|
||||
required this.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
/// Initialize a newly created synthetic property accessor element to be
|
||||
/// associated with the given [variable].
|
||||
PropertyAccessorFragmentImpl.forVariable(
|
||||
PropertyInducingFragmentImpl variable,
|
||||
) : name = variable.name,
|
||||
super(nameOffset: -1) {
|
||||
super(firstTokenOffset: null) {
|
||||
isAbstract = variable is FieldFragmentImpl && variable.isAbstract;
|
||||
isStatic = variable.isStatic;
|
||||
isSynthetic = true;
|
||||
@@ -8885,6 +8914,9 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
|
||||
|
||||
@override
|
||||
int get offset {
|
||||
if (nameOffset2 case var nameOffset?) {
|
||||
return nameOffset;
|
||||
}
|
||||
if (isSynthetic) {
|
||||
var variable = element.variable!;
|
||||
if (variable.isSynthetic) {
|
||||
@@ -8892,7 +8924,7 @@ sealed class PropertyAccessorFragmentImpl extends ExecutableFragmentImpl
|
||||
}
|
||||
return variable.firstFragment.offset;
|
||||
}
|
||||
return nameOffset;
|
||||
return firstTokenOffset!;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9063,7 +9095,10 @@ abstract class PropertyInducingFragmentImpl
|
||||
|
||||
/// Initialize a newly created synthetic element to have the given [name] and
|
||||
/// [offset].
|
||||
PropertyInducingFragmentImpl({required this.name, required super.nameOffset});
|
||||
PropertyInducingFragmentImpl({
|
||||
required this.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
List<Fragment> get children => const [];
|
||||
@@ -9231,7 +9266,7 @@ class SetterFragmentImpl extends PropertyAccessorFragmentImpl
|
||||
@override
|
||||
SetterFragmentImpl? nextFragment;
|
||||
|
||||
SetterFragmentImpl({required super.name, required super.nameOffset});
|
||||
SetterFragmentImpl({required super.name, required super.firstTokenOffset});
|
||||
|
||||
SetterFragmentImpl.forVariable(super.variable) : super.forVariable();
|
||||
|
||||
@@ -9413,7 +9448,7 @@ class SuperFormalParameterFragmentImpl extends FormalParameterFragmentImpl
|
||||
/// Initialize a newly created parameter element to have the given [name] and
|
||||
/// [nameOffset].
|
||||
SuperFormalParameterFragmentImpl({
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
required super.name,
|
||||
required super.nameOffset2,
|
||||
required super.parameterKind,
|
||||
@@ -9556,7 +9591,7 @@ class TopLevelFunctionFragmentImpl extends FunctionFragmentImpl
|
||||
|
||||
TopLevelFunctionFragmentImpl({
|
||||
required super.name,
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -9666,7 +9701,7 @@ class TopLevelVariableFragmentImpl extends PropertyInducingFragmentImpl
|
||||
/// the given [name] and [offset].
|
||||
TopLevelVariableFragmentImpl({
|
||||
required super.name,
|
||||
required super.nameOffset,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
@override
|
||||
@@ -9970,7 +10005,7 @@ class TypeAliasFragmentImpl extends _ExistingFragmentImpl
|
||||
@override
|
||||
late TypeAliasElementImpl element;
|
||||
|
||||
TypeAliasFragmentImpl({required this.name, required super.nameOffset});
|
||||
TypeAliasFragmentImpl({required this.name, required super.firstTokenOffset});
|
||||
|
||||
/// If the aliased type has structure, return the corresponding element.
|
||||
/// For example it could be [GenericFunctionTypeElement].
|
||||
@@ -10038,7 +10073,7 @@ class TypeAliasFragmentImpl extends _ExistingFragmentImpl
|
||||
}
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => nameOffset2 ?? firstTokenOffset!;
|
||||
|
||||
void addFragment(TypeAliasFragmentImpl fragment) {
|
||||
fragment.element = element;
|
||||
@@ -10196,12 +10231,15 @@ class TypeParameterFragmentImpl extends FragmentImpl
|
||||
|
||||
/// Initialize a newly created method element to have the given [name] and
|
||||
/// [offset].
|
||||
TypeParameterFragmentImpl({required this.name, required super.nameOffset});
|
||||
TypeParameterFragmentImpl({
|
||||
required this.name,
|
||||
required super.firstTokenOffset,
|
||||
});
|
||||
|
||||
/// Initialize a newly created synthetic type parameter element to have the
|
||||
/// given [name], and with [isSynthetic] set to `true`.
|
||||
TypeParameterFragmentImpl.synthetic({required this.name})
|
||||
: super(nameOffset: -1) {
|
||||
: super(firstTokenOffset: null) {
|
||||
isSynthetic = true;
|
||||
}
|
||||
|
||||
@@ -10287,7 +10325,7 @@ class TypeParameterFragmentImpl extends FragmentImpl
|
||||
TypeParameterFragmentImpl? get nextFragment => null;
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset => nameOffset2 ?? firstTokenOffset!;
|
||||
|
||||
@override
|
||||
// TODO(augmentations): Support chaining between the fragments.
|
||||
@@ -10520,7 +10558,7 @@ abstract class VariableFragmentImpl extends FragmentImpl
|
||||
|
||||
/// Initialize a newly created variable element to have the given [name] and
|
||||
/// [offset].
|
||||
VariableFragmentImpl({required super.nameOffset});
|
||||
VariableFragmentImpl({required super.firstTokenOffset});
|
||||
|
||||
@override
|
||||
VariableFragmentImpl get declaration => this;
|
||||
@@ -10609,7 +10647,20 @@ abstract class VariableFragmentImpl extends FragmentImpl
|
||||
}
|
||||
|
||||
@override
|
||||
int get offset => nameOffset;
|
||||
int get offset {
|
||||
if (nameOffset2 ?? firstTokenOffset case var result?) {
|
||||
return result;
|
||||
}
|
||||
if (this case PropertyInducingFragmentImpl property) {
|
||||
var getter = property.element.getter?.firstFragment;
|
||||
var setter = property.element.setter?.firstFragment;
|
||||
return (getter ?? setter)!.offset;
|
||||
}
|
||||
if (this case FormalParameterFragmentImpl()) {
|
||||
return enclosingFragment!.offset;
|
||||
}
|
||||
throw StateError('($runtimeType) $this');
|
||||
}
|
||||
|
||||
/// The declared type of this variable.
|
||||
// TODO(scheglov): make it nullable and turn into field
|
||||
@@ -10631,7 +10682,7 @@ abstract class VariableFragmentImpl extends FragmentImpl
|
||||
|
||||
abstract class _ExistingFragmentImpl extends FragmentImpl
|
||||
with _HasLibraryMixin {
|
||||
_ExistingFragmentImpl({required super.nameOffset});
|
||||
_ExistingFragmentImpl({required super.firstTokenOffset});
|
||||
}
|
||||
|
||||
/// An element that can be declared in multiple fragments.
|
||||
|
||||
@@ -975,7 +975,7 @@ class InheritanceManager3 {
|
||||
|
||||
var resultFragment = MethodFragmentImpl(
|
||||
name: executable.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultFragment.enclosingElement = class_.firstFragment;
|
||||
resultFragment.isSynthetic = true;
|
||||
@@ -1008,7 +1008,7 @@ class InheritanceManager3 {
|
||||
|
||||
var resultFragment = SetterFragmentImpl(
|
||||
name: executable.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultFragment.enclosingElement = class_.firstFragment;
|
||||
resultFragment.isSynthetic = true;
|
||||
@@ -1020,7 +1020,7 @@ class InheritanceManager3 {
|
||||
|
||||
var resultField = FieldFragmentImpl(
|
||||
name: executable.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultField.enclosingElement = class_.firstFragment;
|
||||
|
||||
@@ -1080,7 +1080,7 @@ class InheritanceManager3 {
|
||||
|
||||
var resultFragment = MethodFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultFragment.enclosingElement = targetClass.firstFragment;
|
||||
resultFragment.typeParameters =
|
||||
@@ -1103,7 +1103,7 @@ class InheritanceManager3 {
|
||||
} else {
|
||||
var firstElement = first as PropertyAccessorElement2OrMember;
|
||||
var fragmentName = first.name!;
|
||||
var field = FieldFragmentImpl(name: fragmentName, nameOffset: -1);
|
||||
var field = FieldFragmentImpl(name: fragmentName, firstTokenOffset: null);
|
||||
|
||||
PropertyAccessorFragmentImpl resultFragment;
|
||||
PropertyAccessorElementImpl resultElement;
|
||||
@@ -1115,7 +1115,10 @@ class InheritanceManager3 {
|
||||
return result;
|
||||
}
|
||||
|
||||
var fragment = GetterFragmentImpl(name: fragmentName, nameOffset: -1);
|
||||
var fragment = GetterFragmentImpl(
|
||||
name: fragmentName,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultFragment = fragment;
|
||||
|
||||
var element = GetterElementImpl(elementReference, fragment);
|
||||
@@ -1129,7 +1132,10 @@ class InheritanceManager3 {
|
||||
return result;
|
||||
}
|
||||
|
||||
var fragment = SetterFragmentImpl(name: fragmentName, nameOffset: -1);
|
||||
var fragment = SetterFragmentImpl(
|
||||
name: fragmentName,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
resultFragment = fragment;
|
||||
|
||||
resultElement = SetterElementImpl(elementReference, fragment);
|
||||
|
||||
@@ -264,7 +264,7 @@ class _FreshTypeParametersSubstitutor extends _TypeSubstitutor {
|
||||
var element = elements[index];
|
||||
var freshElement = TypeParameterFragmentImpl(
|
||||
name: element.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
var freshType = freshElement.instantiate(
|
||||
nullabilitySuffix: NullabilitySuffix.none,
|
||||
|
||||
@@ -275,7 +275,7 @@ class TypeConstraintGatherer
|
||||
// not contain any variables from `L`.
|
||||
var newTypeParameters = <TypeParameterElementImpl>[];
|
||||
for (var i = 0; i < P.typeParameters.length; i++) {
|
||||
var Z = TypeParameterFragmentImpl(name: 'Z$i', nameOffset: -1);
|
||||
var Z = TypeParameterFragmentImpl(name: 'Z$i', firstTokenOffset: null);
|
||||
if (leftSchema) {
|
||||
Z.bound = P.typeParameters[i].bound;
|
||||
} else {
|
||||
|
||||
@@ -234,8 +234,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
if (exceptionNode != null) {
|
||||
var fragment = LocalVariableFragmentImpl(
|
||||
name: _getFragmentName(exceptionNode.name),
|
||||
nameOffset: exceptionNode.name.offset,
|
||||
firstTokenOffset: exceptionNode.offset,
|
||||
);
|
||||
fragment.nameOffset2 = exceptionNode.name.offsetIfNotEmpty;
|
||||
_elementHolder.enclose(fragment);
|
||||
_define(fragment.element);
|
||||
|
||||
@@ -260,8 +261,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
if (stackTraceNode != null) {
|
||||
var fragment = LocalVariableFragmentImpl(
|
||||
name: _getFragmentName(stackTraceNode.name),
|
||||
nameOffset: stackTraceNode.name.offset,
|
||||
firstTokenOffset: stackTraceNode.offset,
|
||||
);
|
||||
fragment.nameOffset2 = stackTraceNode.name.offsetIfNotEmpty;
|
||||
_elementHolder.enclose(fragment);
|
||||
_define(fragment.element);
|
||||
|
||||
@@ -383,10 +385,11 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
var nameToken = node.name;
|
||||
var fragment = LocalVariableFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
_elementHolder.enclose(fragment);
|
||||
fragment.nameOffset2 = nameToken.offsetIfNotEmpty;
|
||||
node.declaredFragment = fragment;
|
||||
_elementHolder.enclose(fragment);
|
||||
|
||||
_setOrCreateMetadataElements(fragment, node.metadata);
|
||||
|
||||
@@ -415,8 +418,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
var fragment = BindPatternVariableFragmentImpl(
|
||||
node: node,
|
||||
name: _getFragmentName(node.name),
|
||||
nameOffset: node.name.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = node.name.offsetIfNotEmpty;
|
||||
_patternVariables.add(name, fragment.element);
|
||||
_elementHolder.enclose(fragment);
|
||||
_define(fragment.element);
|
||||
@@ -451,7 +455,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
if (node.parameter is FieldFormalParameter) {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
fragment = FieldFormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
parameterKind: node.kind,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
@@ -459,14 +463,14 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else if (node.parameter is SuperFormalParameter) {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
fragment = SuperFormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
parameterKind: node.kind,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
)..constantInitializer = node.defaultValue;
|
||||
} else {
|
||||
fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
parameterKind: node.kind,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
@@ -634,7 +638,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
fragment = FieldFormalParameterFragmentImpl(
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
name: nameToken.lexeme.nullIfEmpty,
|
||||
nameOffset2: nameToken.offset.nullIfNegative,
|
||||
parameterKind: node.kind,
|
||||
@@ -785,7 +789,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitFunctionExpression(covariant FunctionExpressionImpl node) {
|
||||
var fragment = LocalFunctionFragmentImpl.forOffset(node.offset);
|
||||
var fragment = LocalFunctionFragmentImpl.forOffset(
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
|
||||
_elementHolder.enclose(fragment);
|
||||
node.declaredFragment = fragment;
|
||||
@@ -845,7 +851,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
fragment = _elementWalker!.getParameter();
|
||||
} else {
|
||||
fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
name: nameToken.lexeme.nullIfEmpty,
|
||||
nameOffset2: nameToken.offset.nullIfNegative,
|
||||
parameterKind: node.kind,
|
||||
@@ -899,7 +905,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitGenericFunctionType(GenericFunctionType node) {
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(node.offset);
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
_unitElement.encloseElement(fragment);
|
||||
(node as GenericFunctionTypeImpl).declaredFragment = fragment;
|
||||
|
||||
@@ -1236,14 +1244,14 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
if (nameToken != null) {
|
||||
fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
name: nameToken.lexeme.nullIfEmpty,
|
||||
nameOffset2: nameToken.offset.nullIfNegative,
|
||||
parameterKind: node.kind,
|
||||
);
|
||||
} else {
|
||||
fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: node.offset,
|
||||
name: null,
|
||||
nameOffset2: null,
|
||||
parameterKind: node.kind,
|
||||
@@ -1295,7 +1303,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
// Only for recovery, this should not happen in valid code.
|
||||
element = SuperFormalParameterFragmentImpl(
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
name: nameToken.lexeme.nullIfEmpty,
|
||||
nameOffset2: nameToken.offset.nullIfNegative,
|
||||
parameterKind: node.kind,
|
||||
@@ -1497,7 +1505,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
var labelName = label.label;
|
||||
var element = LabelFragmentImpl(
|
||||
name: labelName.name,
|
||||
nameOffset: labelName.offset,
|
||||
firstTokenOffset: label.offset,
|
||||
onSwitchMember: onSwitchMember,
|
||||
);
|
||||
labelName.element = element.asElement2;
|
||||
@@ -1523,7 +1531,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
var fragment = LocalFunctionFragmentImpl(
|
||||
name: nameToken.nameIfNotEmpty,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = nameToken.offsetIfNotEmpty;
|
||||
node.declaredFragment = fragment;
|
||||
@@ -1548,8 +1556,9 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
|
||||
var fragment = LocalVariableFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: variable.offset,
|
||||
);
|
||||
fragment.nameOffset2 = nameToken.offsetIfNotEmpty;
|
||||
variable.declaredFragment = fragment;
|
||||
_elementHolder.enclose(fragment);
|
||||
_define(fragment.element);
|
||||
@@ -1576,7 +1585,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
|
||||
} else {
|
||||
fragment = TypeParameterFragmentImpl(
|
||||
name: name.lexeme,
|
||||
nameOffset: name.offset,
|
||||
firstTokenOffset: typeParameter.offset,
|
||||
);
|
||||
fragment.nameOffset2 = name.offset;
|
||||
_elementHolder.addTypeParameter(fragment);
|
||||
@@ -2011,7 +2020,7 @@ class _VariableBinder
|
||||
|
||||
var resultFragment = JoinPatternVariableFragmentImpl(
|
||||
name: first.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
variables: expandedVariables.map((e) => e.asElement).toList(),
|
||||
inconsistency: inconsistency.maxWithAll(
|
||||
components.whereType<JoinPatternVariableElementImpl>().map(
|
||||
|
||||
@@ -426,7 +426,7 @@ class AstBinaryReader {
|
||||
|
||||
var nonDefaultElement = parameter.declaredFragment!;
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nonDefaultElement.nameOffset,
|
||||
firstTokenOffset: null,
|
||||
name: nonDefaultElement.name,
|
||||
nameOffset2: nonDefaultElement.nameOffset2,
|
||||
parameterKind: kind,
|
||||
@@ -695,7 +695,9 @@ class AstBinaryReader {
|
||||
var type = _reader.readRequiredType() as FunctionTypeImpl;
|
||||
node.type = type;
|
||||
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(-1);
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.parameters =
|
||||
formalParameters.parameters
|
||||
.map((parameter) => parameter.declaredFragment!)
|
||||
@@ -1219,7 +1221,7 @@ class AstBinaryReader {
|
||||
_reader.readByte(); // TODO(scheglov): inherits covariant
|
||||
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: name?.lexeme,
|
||||
nameOffset2: null,
|
||||
parameterKind: node.kind,
|
||||
|
||||
@@ -310,7 +310,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = ClassFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
|
||||
@@ -381,7 +381,10 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = ConstructorFragmentImpl(name: name!, nameOffset: -1);
|
||||
var fragment = ConstructorFragmentImpl(
|
||||
name: name!,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeName = _reader.readOptionalStringReference();
|
||||
@@ -517,7 +520,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = EnumFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
|
||||
@@ -603,7 +606,10 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = ExtensionFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = ExtensionFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
fragment.fields = _readFieldFragments();
|
||||
@@ -657,7 +663,10 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = ExtensionTypeFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = ExtensionTypeFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.hasRepresentationSelfReference = _reader.readBool();
|
||||
fragment.hasImplementsSelfReference = _reader.readBool();
|
||||
@@ -717,7 +726,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = FieldFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.readModifiers(_reader);
|
||||
return fragment;
|
||||
},
|
||||
@@ -811,7 +820,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = GetterFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = GetterFragmentImpl(name: name, firstTokenOffset: null);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
@@ -889,6 +898,7 @@ class LibraryReader {
|
||||
var fragment = PrefixFragmentImpl(
|
||||
enclosingFragment: libraryFragment,
|
||||
name: fragmentName,
|
||||
firstTokenOffset: null,
|
||||
nameOffset2: null,
|
||||
isDeferred: isDeferred,
|
||||
);
|
||||
@@ -942,7 +952,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = MethodFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = MethodFragmentImpl(name: name, firstTokenOffset: null);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeInferenceError = _readTopLevelInferenceError();
|
||||
@@ -1005,7 +1015,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = MixinFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.superInvokedNames = _reader.readStringReferenceList();
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
@@ -1067,21 +1077,21 @@ class LibraryReader {
|
||||
FormalParameterFragmentImpl element;
|
||||
if (isInitializingFormal) {
|
||||
element = FieldFormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: fragmentName,
|
||||
nameOffset2: null,
|
||||
parameterKind: kind,
|
||||
);
|
||||
} else if (isSuperFormal) {
|
||||
element = SuperFormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: fragmentName,
|
||||
nameOffset2: null,
|
||||
parameterKind: kind,
|
||||
);
|
||||
} else {
|
||||
element = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: fragmentName,
|
||||
nameOffset2: null,
|
||||
parameterKind: kind,
|
||||
@@ -1138,7 +1148,7 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = SetterFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = SetterFragmentImpl(name: name, firstTokenOffset: null);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.typeParameters = _readTypeParameters();
|
||||
@@ -1225,7 +1235,7 @@ class LibraryReader {
|
||||
create: (name) {
|
||||
var fragment = TopLevelFunctionFragmentImpl(
|
||||
name: name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
@@ -1286,7 +1296,7 @@ class LibraryReader {
|
||||
create: (name) {
|
||||
var fragment = TopLevelVariableFragmentImpl(
|
||||
name: name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.readModifiers(_reader);
|
||||
return fragment;
|
||||
@@ -1320,7 +1330,10 @@ class LibraryReader {
|
||||
return _reader.readTypedList(() {
|
||||
return _readTemplateFragment(
|
||||
create: (name) {
|
||||
var fragment = TypeAliasFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = TypeAliasFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
|
||||
fragment.readModifiers(_reader);
|
||||
fragment.isFunctionTypeAliasBased = _reader.readBool();
|
||||
@@ -1348,7 +1361,7 @@ class LibraryReader {
|
||||
var variance = _decodeVariance(varianceEncoding);
|
||||
var element = TypeParameterFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
element.variance = variance;
|
||||
return element;
|
||||
@@ -1716,7 +1729,7 @@ class ResolutionReader {
|
||||
_localElements.length -= typeParameters.length;
|
||||
|
||||
var fragment =
|
||||
GenericFunctionTypeFragmentImpl.forOffset(-1)
|
||||
GenericFunctionTypeFragmentImpl.forOffset(firstTokenOffset: null)
|
||||
..typeParameters = typeParameters
|
||||
..parameters = formalParameters
|
||||
..returnType = returnType;
|
||||
@@ -1799,7 +1812,7 @@ class ResolutionReader {
|
||||
FormalParameterFragmentImpl element;
|
||||
if (isInitializingFormal) {
|
||||
element = FieldFormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: null,
|
||||
parameterKind: kind,
|
||||
@@ -1808,7 +1821,7 @@ class ResolutionReader {
|
||||
element.type = type;
|
||||
} else {
|
||||
element = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: null,
|
||||
parameterKind: kind,
|
||||
@@ -1925,7 +1938,7 @@ class ResolutionReader {
|
||||
var fragmentName = _readFragmentName();
|
||||
var typeParameterFragment = TypeParameterFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
var typeParameterElement = TypeParameterElementImpl(
|
||||
firstFragment: typeParameterFragment,
|
||||
|
||||
@@ -315,10 +315,7 @@ class ElementBuilder {
|
||||
|
||||
{
|
||||
var getterFragment =
|
||||
GetterFragmentImpl(
|
||||
name: fieldFragment.name,
|
||||
nameOffset: fieldFragment.nameOffset,
|
||||
)
|
||||
GetterFragmentImpl(name: fieldFragment.name, firstTokenOffset: null)
|
||||
..isSynthetic = true
|
||||
..isAbstract = fieldFragment.isAbstract
|
||||
..isStatic = fieldFragment.isStatic;
|
||||
@@ -336,10 +333,7 @@ class ElementBuilder {
|
||||
|
||||
if (fieldFragment.hasSetter) {
|
||||
var setterFragment =
|
||||
SetterFragmentImpl(
|
||||
name: fieldFragment.name,
|
||||
nameOffset: fieldFragment.nameOffset,
|
||||
)
|
||||
SetterFragmentImpl(name: fieldFragment.name, firstTokenOffset: null)
|
||||
..isSynthetic = true
|
||||
..isAbstract = fieldFragment.isAbstract
|
||||
..isStatic = fieldFragment.isStatic;
|
||||
@@ -348,7 +342,7 @@ class ElementBuilder {
|
||||
var valueFragment = FormalParameterFragmentImpl(
|
||||
// TODO(scheglov): replace with null
|
||||
name: '_${fieldFragment.name ?? ''}',
|
||||
nameOffset: fieldFragment.nameOffset,
|
||||
firstTokenOffset: null,
|
||||
nameOffset2: null,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
);
|
||||
@@ -404,7 +398,7 @@ class ElementBuilder {
|
||||
|
||||
if (lastFieldElement == null) {
|
||||
var fieldFragment =
|
||||
FieldFragmentImpl(name: getterFragment.name, nameOffset: -1)
|
||||
FieldFragmentImpl(name: getterFragment.name, firstTokenOffset: null)
|
||||
..isSynthetic = true
|
||||
..isStatic = getterFragment.isStatic;
|
||||
instanceFragment.addField(fieldFragment);
|
||||
@@ -486,7 +480,7 @@ class ElementBuilder {
|
||||
|
||||
if (lastFieldElement == null) {
|
||||
var fieldFragment =
|
||||
FieldFragmentImpl(name: setterFragment.name, nameOffset: -1)
|
||||
FieldFragmentImpl(name: setterFragment.name, firstTokenOffset: null)
|
||||
..isSynthetic = true
|
||||
..isStatic = setterFragment.isStatic;
|
||||
instanceFragment.addField(fieldFragment);
|
||||
@@ -583,7 +577,7 @@ class ElementBuilder {
|
||||
if (lastVariableElement == null) {
|
||||
var variableFragment = TopLevelVariableFragmentImpl(
|
||||
name: getterFragment.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
)..isSynthetic = true;
|
||||
libraryFragment.addTopLevelVariable(variableFragment);
|
||||
|
||||
@@ -634,7 +628,7 @@ class ElementBuilder {
|
||||
if (lastVariableElement == null) {
|
||||
var variableFragment = TopLevelVariableFragmentImpl(
|
||||
name: setterFragment.name,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
)..isSynthetic = true;
|
||||
libraryFragment.addTopLevelVariable(variableFragment);
|
||||
|
||||
@@ -673,7 +667,7 @@ class ElementBuilder {
|
||||
var getterFragment =
|
||||
GetterFragmentImpl(
|
||||
name: variableFragment.name,
|
||||
nameOffset: variableFragment.nameOffset,
|
||||
firstTokenOffset: null,
|
||||
)
|
||||
..isSynthetic = true
|
||||
..isStatic = true;
|
||||
@@ -694,7 +688,7 @@ class ElementBuilder {
|
||||
var setterFragment =
|
||||
SetterFragmentImpl(
|
||||
name: variableFragment.name,
|
||||
nameOffset: variableFragment.nameOffset,
|
||||
firstTokenOffset: null,
|
||||
)
|
||||
..isSynthetic = true
|
||||
..isStatic = true;
|
||||
@@ -703,7 +697,7 @@ class ElementBuilder {
|
||||
var valueFragment = FormalParameterFragmentImpl(
|
||||
// TODO(scheglov): replace with null
|
||||
name: '_${variableFragment.name ?? ''}',
|
||||
nameOffset: variableFragment.nameOffset,
|
||||
firstTokenOffset: null,
|
||||
nameOffset2: null,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
);
|
||||
@@ -842,7 +836,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var fragmentName = _getFragmentName(nameToken);
|
||||
var fragment = ClassFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAbstract = node.abstractKeyword != null;
|
||||
@@ -887,7 +881,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = ClassFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAbstract = node.abstractKeyword != null;
|
||||
@@ -934,8 +928,6 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
// A constructor declared as `C.new` is unnamed, and is modeled as such.
|
||||
name = '';
|
||||
}
|
||||
var nameOffset = nameNode.offset;
|
||||
|
||||
String fragmentName;
|
||||
int? fragmentNameOffset;
|
||||
if ((node.period, node.name) case (var _?, var name?)) {
|
||||
@@ -947,7 +939,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = ConstructorFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
fragment.isConst = node.constKeyword != null;
|
||||
@@ -989,12 +981,11 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
@override
|
||||
void visitEnumDeclaration(covariant EnumDeclarationImpl node) {
|
||||
var nameToken = node.name;
|
||||
var nameOffset = nameToken.offset;
|
||||
var fragmentName = _getFragmentName(nameToken);
|
||||
|
||||
var fragment = EnumFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1023,7 +1014,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var field =
|
||||
FieldFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: constant.name.offset,
|
||||
firstTokenOffset: constant.offset,
|
||||
)
|
||||
..hasImplicitType = true
|
||||
..hasInitializer = true
|
||||
@@ -1101,7 +1092,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
// Build the 'values' field.
|
||||
var valuesField =
|
||||
FieldFragmentImpl(name: 'values', nameOffset: -1)
|
||||
FieldFragmentImpl(name: 'values', firstTokenOffset: null)
|
||||
..hasEnclosingTypeParameterReference = false
|
||||
..isConst = true
|
||||
..isStatic = true
|
||||
@@ -1189,12 +1180,11 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
@override
|
||||
void visitExtensionDeclaration(covariant ExtensionDeclarationImpl node) {
|
||||
var nameToken = node.name;
|
||||
var nameOffset = nameToken?.offset ?? -1;
|
||||
var fragmentName = _getFragmentName(nameToken);
|
||||
|
||||
var fragment = ExtensionFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1234,7 +1224,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = ExtensionTypeFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1271,11 +1261,10 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var metadata = _buildMetadata(node.metadata);
|
||||
for (var variable in node.fields.variables) {
|
||||
var nameToken = variable.name;
|
||||
var nameOffset = nameToken.offset;
|
||||
|
||||
var fragment = FieldFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: variable.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.hasInitializer = variable.initializer != null;
|
||||
@@ -1321,7 +1310,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var nameOffset2 = nameToken.offset.nullIfNegative;
|
||||
|
||||
var fragment = FieldFormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
parameterKind: node.kind,
|
||||
@@ -1371,7 +1360,6 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
void visitFunctionDeclaration(covariant FunctionDeclarationImpl node) {
|
||||
var nameToken = node.name;
|
||||
var name = nameToken.lexeme;
|
||||
var nameOffset = nameToken.offset;
|
||||
var name2 = _getFragmentName(nameToken);
|
||||
|
||||
var functionExpression = node.functionExpression;
|
||||
@@ -1381,7 +1369,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
if (node.isGetter) {
|
||||
var getterFragment = GetterFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
getterFragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
getterFragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1394,7 +1382,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
} else if (node.isSetter) {
|
||||
var setterFragment = SetterFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
setterFragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
setterFragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1407,7 +1395,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
} else {
|
||||
var fragment = TopLevelFunctionFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1447,7 +1435,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = TypeAliasFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isFunctionTypeAliasBased = true;
|
||||
@@ -1471,7 +1459,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
});
|
||||
|
||||
var aliasedElement = GenericFunctionTypeFragmentImpl.forOffset(
|
||||
nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
aliasedElement.parameters = holder.parameters;
|
||||
|
||||
@@ -1488,7 +1476,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var nameOffset2 = nameToken.offset.nullIfNegative;
|
||||
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
parameterKind: node.kind,
|
||||
@@ -1529,7 +1517,9 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
@override
|
||||
void visitGenericFunctionType(covariant GenericFunctionTypeImpl node) {
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(node.offset);
|
||||
var fragment = GenericFunctionTypeFragmentImpl.forOffset(
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
_unitElement.encloseElement(fragment);
|
||||
|
||||
node.declaredFragment = fragment;
|
||||
@@ -1561,7 +1551,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = TypeAliasFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1611,14 +1601,13 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
void visitMethodDeclaration(covariant MethodDeclarationImpl node) {
|
||||
var nameToken = node.name;
|
||||
var name = nameToken.lexeme;
|
||||
var nameOffset = nameToken.offset;
|
||||
|
||||
Reference reference;
|
||||
ExecutableFragmentImpl executableFragment;
|
||||
if (node.isGetter) {
|
||||
var fragment = GetterFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAbstract = node.isAbstract;
|
||||
@@ -1642,7 +1631,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
} else if (node.isSetter) {
|
||||
var fragment = SetterFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAbstract = node.isAbstract;
|
||||
@@ -1668,7 +1657,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = MethodFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAbstract = node.isAbstract;
|
||||
@@ -1712,7 +1701,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = MixinFragmentImpl(
|
||||
name: fragmentName,
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.isAugmentation = node.augmentKeyword != null;
|
||||
@@ -1798,7 +1787,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var nameOffset2 = nameToken?.offset;
|
||||
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
parameterKind: node.kind,
|
||||
@@ -1831,7 +1820,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var nameOffset2 = nameToken.offset.nullIfNegative;
|
||||
|
||||
var fragment = SuperFormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: node.offset,
|
||||
name: name2,
|
||||
nameOffset2: nameOffset2,
|
||||
parameterKind: node.kind,
|
||||
@@ -1879,12 +1868,11 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var metadata = _buildMetadata(node.metadata);
|
||||
for (var variable in node.variables.variables) {
|
||||
var nameToken = variable.name;
|
||||
var nameOffset = nameToken.offset;
|
||||
var name2 = _getFragmentName(nameToken);
|
||||
|
||||
var fragment = TopLevelVariableFragmentImpl(
|
||||
name: name2,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: variable.offset,
|
||||
);
|
||||
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
@@ -1929,7 +1917,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fragment = TypeParameterFragmentImpl(
|
||||
name: _getFragmentName(nameToken),
|
||||
nameOffset: nameToken.offset,
|
||||
firstTokenOffset: node.offset,
|
||||
);
|
||||
fragment.nameOffset2 = _getFragmentNameOffset(nameToken);
|
||||
fragment.metadata = _buildMetadata(node.metadata);
|
||||
@@ -1994,7 +1982,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var fieldFragment = FieldFragmentImpl(
|
||||
name: _getFragmentName(fieldNameToken),
|
||||
nameOffset: fieldNameToken.offset,
|
||||
firstTokenOffset: representation.offset,
|
||||
);
|
||||
fieldFragment.nameOffset2 = _getFragmentNameOffset(fieldNameToken);
|
||||
fieldFragment.isFinal = true;
|
||||
@@ -2016,7 +2004,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
var formalParameterElement =
|
||||
FieldFormalParameterFragmentImpl(
|
||||
nameOffset: nameOffset2 ?? -1,
|
||||
firstTokenOffset: representation.offset,
|
||||
name: _getFragmentName(fieldNameToken),
|
||||
nameOffset2: nameOffset2,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
@@ -2031,16 +2019,13 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
|
||||
{
|
||||
int? periodOffset;
|
||||
int nameOffset;
|
||||
int? nameEnd;
|
||||
var constructorNameNode = representation.constructorName;
|
||||
if (constructorNameNode != null) {
|
||||
var nameToken = constructorNameNode.name;
|
||||
periodOffset = constructorNameNode.period.offset;
|
||||
nameOffset = nameToken.offset;
|
||||
nameEnd = nameToken.end;
|
||||
} else {
|
||||
nameOffset = extensionNode.name.offset;
|
||||
nameEnd = extensionNode.name.end;
|
||||
}
|
||||
|
||||
@@ -2056,7 +2041,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
var constructorFragment =
|
||||
ConstructorFragmentImpl(
|
||||
name: constructorFragmentName,
|
||||
nameOffset: nameOffset,
|
||||
firstTokenOffset: representation.offset,
|
||||
)
|
||||
..isAugmentation = extensionNode.augmentKeyword != null
|
||||
..isConst = extensionNode.constKeyword != null
|
||||
|
||||
@@ -185,7 +185,7 @@ class InformativeDataApplier {
|
||||
) {
|
||||
forCorrespondingPairs(elementList.notSynthetic, infoList, (element, info) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToFormalParameters(element.parameters_unresolved, info.parameters);
|
||||
@@ -206,7 +206,7 @@ class InformativeDataApplier {
|
||||
_InfoClassDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -237,7 +237,7 @@ class InformativeDataApplier {
|
||||
_InfoClassTypeAlias info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -281,7 +281,7 @@ class InformativeDataApplier {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.typeNameOffset = info.typeNameOffset;
|
||||
element.periodOffset = info.periodOffset;
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameEnd = info.nameEnd;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
@@ -304,7 +304,7 @@ class InformativeDataApplier {
|
||||
_InfoClassDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
|
||||
@@ -338,7 +338,7 @@ class InformativeDataApplier {
|
||||
_InfoClassDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -363,7 +363,7 @@ class InformativeDataApplier {
|
||||
_InfoExtensionTypeDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -373,7 +373,7 @@ class InformativeDataApplier {
|
||||
|
||||
var representationField = element.fields.first;
|
||||
var infoRep = info.representation;
|
||||
representationField.nameOffset = infoRep.fieldNameOffset;
|
||||
representationField.firstTokenOffset = infoRep.firstTokenOffset;
|
||||
representationField.nameOffset2 = infoRep.fieldNameOffset2;
|
||||
representationField.setCodeRange(
|
||||
infoRep.fieldCodeOffset,
|
||||
@@ -396,13 +396,13 @@ class InformativeDataApplier {
|
||||
);
|
||||
primaryConstructor.typeNameOffset = infoRep.typeNameOffset;
|
||||
primaryConstructor.periodOffset = infoRep.constructorPeriodOffset;
|
||||
primaryConstructor.nameOffset = infoRep.constructorNameOffset;
|
||||
primaryConstructor.firstTokenOffset = infoRep.constructorFirstTokenOffset;
|
||||
primaryConstructor.nameEnd = infoRep.constructorNameEnd;
|
||||
primaryConstructor.nameOffset2 = infoRep.constructorNameOffset2;
|
||||
|
||||
var primaryConstructorParameter =
|
||||
primaryConstructor.parameters_unresolved.first;
|
||||
primaryConstructorParameter.nameOffset = infoRep.fieldNameOffset;
|
||||
primaryConstructorParameter.firstTokenOffset = infoRep.firstTokenOffset;
|
||||
primaryConstructorParameter.nameOffset2 = infoRep.fieldNameOffset2;
|
||||
primaryConstructorParameter.setCodeRange(
|
||||
infoRep.fieldCodeOffset,
|
||||
@@ -434,7 +434,7 @@ class InformativeDataApplier {
|
||||
) {
|
||||
forCorrespondingPairs(elementList.notSynthetic, infoList, (element, info) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
|
||||
@@ -455,7 +455,7 @@ class InformativeDataApplier {
|
||||
) {
|
||||
forCorrespondingPairs(parameters, infoList, (element, info) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
_applyToTypeParameters(element.typeParameters, info.typeParameters);
|
||||
_applyToFormalParameters(element.parameters, info.parameters);
|
||||
@@ -467,7 +467,7 @@ class InformativeDataApplier {
|
||||
_InfoFunctionDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -490,7 +490,7 @@ class InformativeDataApplier {
|
||||
_InfoFunctionTypeAlias info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -510,7 +510,7 @@ class InformativeDataApplier {
|
||||
_InfoGenericTypeAlias info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -559,7 +559,7 @@ class InformativeDataApplier {
|
||||
) {
|
||||
forCorrespondingPairs(elementList, infoList, (element, info) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
_applyToTypeParameters(
|
||||
@@ -584,7 +584,7 @@ class InformativeDataApplier {
|
||||
_InfoClassDeclaration info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
|
||||
@@ -611,7 +611,7 @@ class InformativeDataApplier {
|
||||
_InfoTopLevelVariable info,
|
||||
) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
element.documentationComment = info.documentationComment;
|
||||
|
||||
@@ -630,7 +630,7 @@ class InformativeDataApplier {
|
||||
) {
|
||||
forCorrespondingPairs(elementList, infoList, (element, info) {
|
||||
element.setCodeRange(info.codeOffset, info.codeLength);
|
||||
element.nameOffset = info.nameOffset;
|
||||
element.firstTokenOffset = info.firstTokenOffset;
|
||||
element.nameOffset2 = info.nameOffset2;
|
||||
});
|
||||
}
|
||||
@@ -643,13 +643,14 @@ class InformativeDataApplier {
|
||||
|
||||
var getterFragment = element.element.getter?.firstFragment;
|
||||
if (getterFragment != null && getterFragment.isSynthetic) {
|
||||
getterFragment.nameOffset = element.nameOffset;
|
||||
getterFragment.firstTokenOffset = element.firstTokenOffset;
|
||||
}
|
||||
|
||||
var setterFragment = element.element.setter?.firstFragment;
|
||||
if (setterFragment != null && setterFragment.isSynthetic) {
|
||||
setterFragment.nameOffset = element.nameOffset;
|
||||
setterFragment.valueFormalParameter?.nameOffset = element.nameOffset;
|
||||
setterFragment.firstTokenOffset = element.firstTokenOffset;
|
||||
setterFragment.valueFormalParameter?.firstTokenOffset =
|
||||
element.firstTokenOffset;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -694,7 +695,7 @@ class InformativeDataApplier {
|
||||
class _InfoClassDeclaration {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -707,9 +708,8 @@ class _InfoClassDeclaration {
|
||||
|
||||
factory _InfoClassDeclaration(
|
||||
InfoDeclarationStore cache,
|
||||
SummaryDataReader reader, {
|
||||
int nameOffsetDelta = 0,
|
||||
}) {
|
||||
SummaryDataReader reader,
|
||||
) {
|
||||
// TODO(scheglov): Shared below.
|
||||
// TODO(jensj): Possibly we could just save the bytes and the
|
||||
// offset and then only read it when/if needed.
|
||||
@@ -726,7 +726,7 @@ class _InfoClassDeclaration {
|
||||
var result = _InfoClassDeclaration._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30() - nameOffsetDelta,
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -747,7 +747,7 @@ class _InfoClassDeclaration {
|
||||
_InfoClassDeclaration._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -763,7 +763,7 @@ class _InfoClassDeclaration {
|
||||
class _InfoClassTypeAlias {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -773,7 +773,7 @@ class _InfoClassTypeAlias {
|
||||
return _InfoClassTypeAlias._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -784,7 +784,7 @@ class _InfoClassTypeAlias {
|
||||
_InfoClassTypeAlias._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -811,7 +811,7 @@ class _InfoConstructorDeclaration {
|
||||
final int codeLength;
|
||||
final int? typeNameOffset;
|
||||
final int? periodOffset;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameEnd;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
@@ -824,7 +824,7 @@ class _InfoConstructorDeclaration {
|
||||
codeLength: reader.readUInt30(),
|
||||
typeNameOffset: reader.readUInt30(),
|
||||
periodOffset: reader.readOptionalUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameEnd: reader.readOptionalUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
@@ -838,7 +838,7 @@ class _InfoConstructorDeclaration {
|
||||
required this.codeLength,
|
||||
required this.typeNameOffset,
|
||||
required this.periodOffset,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameEnd,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
@@ -864,7 +864,7 @@ class _InfoExport {
|
||||
class _InfoExtensionTypeDeclaration {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -880,7 +880,7 @@ class _InfoExtensionTypeDeclaration {
|
||||
return _InfoExtensionTypeDeclaration._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -899,7 +899,7 @@ class _InfoExtensionTypeDeclaration {
|
||||
_InfoExtensionTypeDeclaration._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -918,12 +918,12 @@ class _InfoExtensionTypeRepresentation {
|
||||
final int constructorCodeLength;
|
||||
final int? typeNameOffset;
|
||||
final int? constructorPeriodOffset;
|
||||
final int constructorNameOffset;
|
||||
final int constructorFirstTokenOffset;
|
||||
final int? constructorNameEnd;
|
||||
final int? constructorNameOffset2;
|
||||
final int fieldCodeOffset;
|
||||
final int fieldCodeLength;
|
||||
final int fieldNameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? fieldNameOffset2;
|
||||
final Uint32List fieldConstantOffsets;
|
||||
|
||||
@@ -933,12 +933,12 @@ class _InfoExtensionTypeRepresentation {
|
||||
constructorCodeLength: reader.readUInt30(),
|
||||
typeNameOffset: reader.readOptionalUInt30(),
|
||||
constructorPeriodOffset: reader.readOptionalUInt30(),
|
||||
constructorNameOffset: reader.readUInt30(),
|
||||
constructorFirstTokenOffset: reader.readUInt30(),
|
||||
constructorNameEnd: reader.readOptionalUInt30(),
|
||||
constructorNameOffset2: reader.readOptionalUInt30(),
|
||||
fieldCodeOffset: reader.readUInt30(),
|
||||
fieldCodeLength: reader.readUInt30(),
|
||||
fieldNameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
fieldNameOffset2: reader.readOptionalUInt30(),
|
||||
fieldConstantOffsets: reader.readUInt30List(),
|
||||
);
|
||||
@@ -949,12 +949,12 @@ class _InfoExtensionTypeRepresentation {
|
||||
required this.constructorCodeLength,
|
||||
required this.typeNameOffset,
|
||||
required this.constructorPeriodOffset,
|
||||
required this.constructorNameOffset,
|
||||
required this.constructorFirstTokenOffset,
|
||||
required this.constructorNameEnd,
|
||||
required this.constructorNameOffset2,
|
||||
required this.fieldCodeOffset,
|
||||
required this.fieldCodeLength,
|
||||
required this.fieldNameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.fieldNameOffset2,
|
||||
required this.fieldConstantOffsets,
|
||||
});
|
||||
@@ -963,7 +963,7 @@ class _InfoExtensionTypeRepresentation {
|
||||
class _InfoFieldDeclaration {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final Uint32List constantOffsets;
|
||||
@@ -972,7 +972,7 @@ class _InfoFieldDeclaration {
|
||||
return _InfoFieldDeclaration._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
constantOffsets: reader.readUInt30List(),
|
||||
@@ -982,7 +982,7 @@ class _InfoFieldDeclaration {
|
||||
_InfoFieldDeclaration._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.constantOffsets,
|
||||
@@ -992,7 +992,7 @@ class _InfoFieldDeclaration {
|
||||
class _InfoFormalParameter {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
final List<_InfoFormalParameter> parameters;
|
||||
@@ -1001,7 +1001,7 @@ class _InfoFormalParameter {
|
||||
return _InfoFormalParameter._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30() - 1,
|
||||
firstTokenOffset: reader.readUInt30() - 1,
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
parameters: reader.readTypedList(() => _InfoFormalParameter(reader)),
|
||||
@@ -1011,7 +1011,7 @@ class _InfoFormalParameter {
|
||||
_InfoFormalParameter._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.typeParameters,
|
||||
required this.parameters,
|
||||
@@ -1021,7 +1021,7 @@ class _InfoFormalParameter {
|
||||
class _InfoFunctionDeclaration {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -1032,7 +1032,7 @@ class _InfoFunctionDeclaration {
|
||||
return _InfoFunctionDeclaration._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -1044,7 +1044,7 @@ class _InfoFunctionDeclaration {
|
||||
_InfoFunctionDeclaration._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -1056,7 +1056,7 @@ class _InfoFunctionDeclaration {
|
||||
class _InfoFunctionTypeAlias {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -1067,7 +1067,7 @@ class _InfoFunctionTypeAlias {
|
||||
return _InfoFunctionTypeAlias._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -1079,7 +1079,7 @@ class _InfoFunctionTypeAlias {
|
||||
_InfoFunctionTypeAlias._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -1091,7 +1091,7 @@ class _InfoFunctionTypeAlias {
|
||||
class _InfoGenericTypeAlias {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -1103,7 +1103,7 @@ class _InfoGenericTypeAlias {
|
||||
return _InfoGenericTypeAlias._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -1120,7 +1120,7 @@ class _InfoGenericTypeAlias {
|
||||
_InfoGenericTypeAlias._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -1170,7 +1170,7 @@ class _InfoLibraryName {
|
||||
class _InfoMethodDeclaration {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final List<_InfoTypeParameter> typeParameters;
|
||||
@@ -1181,7 +1181,7 @@ class _InfoMethodDeclaration {
|
||||
return _InfoMethodDeclaration._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
typeParameters: reader.readTypedList(() => _InfoTypeParameter(reader)),
|
||||
@@ -1193,7 +1193,7 @@ class _InfoMethodDeclaration {
|
||||
_InfoMethodDeclaration._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.typeParameters,
|
||||
@@ -1247,7 +1247,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<ClassDeclaration>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1263,7 +1263,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<ClassTypeAlias>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1276,7 +1276,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<EnumDeclaration>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1293,7 +1293,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<ExtensionDeclaration>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(1 + (node.name?.offset ?? -1));
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name?.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1309,7 +1309,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<ExtensionTypeDeclaration>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1331,7 +1331,7 @@ class _InformativeDataWriter {
|
||||
(node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.functionExpression.typeParameters);
|
||||
@@ -1352,7 +1352,7 @@ class _InformativeDataWriter {
|
||||
(node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.functionExpression.typeParameters);
|
||||
@@ -1373,7 +1373,7 @@ class _InformativeDataWriter {
|
||||
(node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.functionExpression.typeParameters);
|
||||
@@ -1389,7 +1389,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<FunctionTypeAlias>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1405,7 +1405,7 @@ class _InformativeDataWriter {
|
||||
var aliasedType = node.type;
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1426,7 +1426,7 @@ class _InformativeDataWriter {
|
||||
sink.writeList2<MixinDeclaration>(unit.declarations, (node) {
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeUInt30(node.length);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
_writeTypeParameters(node.typeParameters);
|
||||
@@ -1731,7 +1731,7 @@ class _InformativeDataWriter {
|
||||
var codeEnd = node.fieldName.end;
|
||||
sink.writeUInt30(codeOffset);
|
||||
sink.writeUInt30(codeEnd - codeOffset);
|
||||
sink.writeUInt30(node.fieldName.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.fieldName.offsetIfNotEmpty);
|
||||
|
||||
_writeOffsets(metadata: node.fieldMetadata);
|
||||
@@ -1741,7 +1741,7 @@ class _InformativeDataWriter {
|
||||
var codeOffset = _codeOffsetForVariable(node);
|
||||
sink.writeUInt30(codeOffset);
|
||||
sink.writeUInt30(node.end - codeOffset);
|
||||
sink.writeUInt30(node.name.offset);
|
||||
sink.writeUInt30(node.offset);
|
||||
sink.writeOptionalUInt30(node.name.offsetIfNotEmpty);
|
||||
_writeDocumentationComment(node);
|
||||
|
||||
@@ -1768,7 +1768,7 @@ class _InformativeDataWriter {
|
||||
class _InfoTopLevelVariable {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
final String? documentationComment;
|
||||
final Uint32List constantOffsets;
|
||||
@@ -1777,7 +1777,7 @@ class _InfoTopLevelVariable {
|
||||
return _InfoTopLevelVariable._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
documentationComment: reader.readStringUtf8().nullIfEmpty,
|
||||
constantOffsets: reader.readUInt30List(),
|
||||
@@ -1787,7 +1787,7 @@ class _InfoTopLevelVariable {
|
||||
_InfoTopLevelVariable._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
required this.documentationComment,
|
||||
required this.constantOffsets,
|
||||
@@ -1797,14 +1797,14 @@ class _InfoTopLevelVariable {
|
||||
class _InfoTypeParameter {
|
||||
final int codeOffset;
|
||||
final int codeLength;
|
||||
final int nameOffset;
|
||||
final int firstTokenOffset;
|
||||
final int? nameOffset2;
|
||||
|
||||
factory _InfoTypeParameter(SummaryDataReader reader) {
|
||||
return _InfoTypeParameter._(
|
||||
codeOffset: reader.readUInt30(),
|
||||
codeLength: reader.readUInt30(),
|
||||
nameOffset: reader.readUInt30(),
|
||||
firstTokenOffset: reader.readUInt30(),
|
||||
nameOffset2: reader.readOptionalUInt30(),
|
||||
);
|
||||
}
|
||||
@@ -1812,7 +1812,7 @@ class _InfoTypeParameter {
|
||||
_InfoTypeParameter._({
|
||||
required this.codeOffset,
|
||||
required this.codeLength,
|
||||
required this.nameOffset,
|
||||
required this.firstTokenOffset,
|
||||
required this.nameOffset2,
|
||||
});
|
||||
}
|
||||
@@ -1858,7 +1858,7 @@ class _InfoUnit {
|
||||
classTypeAliases: reader.readTypedList(() => _InfoClassTypeAlias(reader)),
|
||||
enums: reader.readTypedList(() => _InfoClassDeclaration(cache, reader)),
|
||||
extensions: reader.readTypedList(
|
||||
() => _InfoClassDeclaration(cache, reader, nameOffsetDelta: 1),
|
||||
() => _InfoClassDeclaration(cache, reader),
|
||||
),
|
||||
extensionTypes: reader.readTypedList(
|
||||
() => _InfoExtensionTypeDeclaration(reader),
|
||||
@@ -2020,7 +2020,7 @@ class _OffsetsApplier extends _OffsetsAstVisitor {
|
||||
var fragment = node.declaredFragment;
|
||||
var identifier = node.name;
|
||||
if (fragment is FormalParameterFragmentImpl && identifier != null) {
|
||||
fragment.nameOffset = identifier.offset;
|
||||
fragment.firstTokenOffset = identifier.offset;
|
||||
fragment.nameOffset2 = identifier.offsetIfNotEmpty;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -152,8 +152,10 @@ class LibraryBuilder {
|
||||
if (classFragment.isMixinApplication) continue;
|
||||
if (classFragment.constructors.isNotEmpty) continue;
|
||||
|
||||
var fragment = ConstructorFragmentImpl(name: 'new', nameOffset: -1)
|
||||
..isSynthetic = true;
|
||||
var fragment = ConstructorFragmentImpl(
|
||||
name: 'new',
|
||||
firstTokenOffset: null,
|
||||
)..isSynthetic = true;
|
||||
fragment.typeName = classFragment.name;
|
||||
|
||||
var classElement = classFragment.element;
|
||||
@@ -215,8 +217,7 @@ class LibraryBuilder {
|
||||
enum_.valuesElement.element.type = valuesType;
|
||||
// TODO(scheglov): We repeat this code.
|
||||
enum_.valuesElement.element.getter!.returnType = valuesType;
|
||||
enum_.valuesElement.element.getter!.firstFragment.returnType =
|
||||
valuesType;
|
||||
enum_.valuesElement.element.getter!.firstFragment.returnType = valuesType;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -235,7 +236,7 @@ class LibraryBuilder {
|
||||
if (hasConstructor(enumFragment)) continue;
|
||||
|
||||
var fragment =
|
||||
ConstructorFragmentImpl(name: 'new', nameOffset: -1)
|
||||
ConstructorFragmentImpl(name: 'new', firstTokenOffset: null)
|
||||
..isConst = true
|
||||
..isSynthetic = true;
|
||||
fragment.typeName = enumFragment.name;
|
||||
@@ -337,8 +338,7 @@ class LibraryBuilder {
|
||||
for (var constructor in interfaceFragment.constructors) {
|
||||
for (var parameter in constructor.parameters) {
|
||||
if (parameter is FieldFormalParameterFragmentImpl) {
|
||||
parameter.field =
|
||||
element.getField(parameter.name ?? '')?.asElement;
|
||||
parameter.field = element.getField(parameter.name ?? '')?.asElement;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -621,6 +621,7 @@ class LibraryBuilder {
|
||||
var fragment = PrefixFragmentImpl(
|
||||
enclosingFragment: libraryFragment,
|
||||
name: unlinkedName?.name,
|
||||
firstTokenOffset: null,
|
||||
nameOffset2: unlinkedName?.nameOffset,
|
||||
isDeferred: isDeferred,
|
||||
)..offset = offset;
|
||||
|
||||
@@ -981,7 +981,7 @@ class _MockSdkElementsBuilder {
|
||||
List<TypeParameterElementImpl> typeParameters = const [],
|
||||
required LibraryFragmentImpl unit,
|
||||
}) {
|
||||
var fragment = ClassFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
|
||||
ClassElementImpl(Reference.root(), fragment);
|
||||
fragment.typeParameters =
|
||||
typeParameters.map((tp) => tp.firstFragment).toList();
|
||||
@@ -996,7 +996,7 @@ class _MockSdkElementsBuilder {
|
||||
bool isFactory = false,
|
||||
List<FormalParameterElement> parameters = const [],
|
||||
}) {
|
||||
var fragment = ConstructorFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = ConstructorFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.isFactory = isFactory;
|
||||
fragment.isConst = isConst;
|
||||
fragment.parameters =
|
||||
@@ -1020,7 +1020,7 @@ class _MockSdkElementsBuilder {
|
||||
bool isFinal = false,
|
||||
bool isStatic = false,
|
||||
}) {
|
||||
var fragment = FieldFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
|
||||
var element = FieldElementImpl(
|
||||
reference: Reference.root(),
|
||||
firstFragment: fragment,
|
||||
@@ -1029,20 +1029,20 @@ class _MockSdkElementsBuilder {
|
||||
fragment.isFinal = isFinal;
|
||||
fragment.isStatic = isStatic;
|
||||
|
||||
var getterFragment = GetterFragmentImpl(name: name, nameOffset: -1)
|
||||
var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..isSynthetic = true;
|
||||
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
|
||||
element.getter = getterElement;
|
||||
|
||||
if (!isConst && !isFinal) {
|
||||
var valueFragment = FormalParameterFragmentImpl(
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
name: null,
|
||||
nameOffset2: null,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
);
|
||||
var setterFragment =
|
||||
SetterFragmentImpl(name: name, nameOffset: -1)
|
||||
SetterFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..isSynthetic = true
|
||||
..parameters = [valueFragment];
|
||||
var setterElement = SetterElementImpl(Reference.root(), setterFragment);
|
||||
@@ -1060,7 +1060,7 @@ class _MockSdkElementsBuilder {
|
||||
List<FormalParameterElement> parameters = const [],
|
||||
}) {
|
||||
var fragment =
|
||||
TopLevelFunctionFragmentImpl(name: name, nameOffset: 0)
|
||||
TopLevelFunctionFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..parameters =
|
||||
parameters
|
||||
.map((p) => p.firstFragment as FormalParameterFragmentImpl)
|
||||
@@ -1089,7 +1089,7 @@ class _MockSdkElementsBuilder {
|
||||
TypeImpl type, {
|
||||
bool isStatic = false,
|
||||
}) {
|
||||
var fieldFragment = FieldFragmentImpl(name: name, nameOffset: -1);
|
||||
var fieldFragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
|
||||
var fieldElement = FieldElementImpl(
|
||||
reference: Reference.root(),
|
||||
firstFragment: fieldFragment,
|
||||
@@ -1098,7 +1098,7 @@ class _MockSdkElementsBuilder {
|
||||
fieldFragment.isSynthetic = true;
|
||||
fieldFragment.type = type;
|
||||
|
||||
var getterFragment = GetterFragmentImpl(name: name, nameOffset: 0);
|
||||
var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null);
|
||||
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
|
||||
fieldElement.getter = getterElement;
|
||||
getterElement.variable = fieldElement;
|
||||
@@ -1127,7 +1127,7 @@ class _MockSdkElementsBuilder {
|
||||
List<FormalParameterElement> parameters = const [],
|
||||
}) {
|
||||
var fragment =
|
||||
MethodFragmentImpl(name: name, nameOffset: 0)
|
||||
MethodFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..parameters =
|
||||
parameters
|
||||
.map((p) => p.firstFragment as FormalParameterFragmentImpl)
|
||||
@@ -1144,7 +1144,7 @@ class _MockSdkElementsBuilder {
|
||||
|
||||
FormalParameterElement _namedParameter(String name, TypeImpl type) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.NAMED,
|
||||
@@ -1229,7 +1229,7 @@ class _MockSdkElementsBuilder {
|
||||
|
||||
FormalParameterElement _positionalParameter(String name, TypeImpl type) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.POSITIONAL,
|
||||
@@ -1239,7 +1239,7 @@ class _MockSdkElementsBuilder {
|
||||
|
||||
FormalParameterElement _requiredParameter(String name, TypeImpl type) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
@@ -1264,10 +1264,12 @@ class _MockSdkElementsBuilder {
|
||||
String name,
|
||||
TypeImpl type,
|
||||
) {
|
||||
var fragment = TopLevelVariableFragmentImpl(name: name, nameOffset: -1)
|
||||
..isConst = true;
|
||||
var fragment = TopLevelVariableFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
)..isConst = true;
|
||||
var element = TopLevelVariableElementImpl(Reference.root(), fragment);
|
||||
var getterFragment = GetterFragmentImpl(name: name, nameOffset: -1)
|
||||
var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..isSynthetic = true;
|
||||
var getterElement = GetterElementImpl(Reference.root(), getterFragment);
|
||||
element.getter = getterElement;
|
||||
@@ -1277,7 +1279,10 @@ class _MockSdkElementsBuilder {
|
||||
|
||||
TypeParameterElementImpl _typeParameter(String name) {
|
||||
return TypeParameterElementImpl(
|
||||
firstFragment: TypeParameterFragmentImpl(name: name, nameOffset: 0),
|
||||
firstFragment: TypeParameterFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
),
|
||||
name: name.nullIfEmpty,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -433,7 +433,10 @@ extension TypeAliasElementImplExtension on TypeAliasFragmentImpl {
|
||||
|
||||
extension TypeParameterElement2Extension on TypeParameterElement {
|
||||
TypeParameterElementImpl freshCopy() {
|
||||
var fragment = TypeParameterFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = TypeParameterFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.bound = bound;
|
||||
return TypeParameterElementImpl(firstFragment: fragment, name: name);
|
||||
}
|
||||
|
||||
@@ -127,7 +127,7 @@ mixin ElementsTypesMixin {
|
||||
List<InterfaceTypeImpl> mixins = const [],
|
||||
List<MethodFragmentImpl> methods = const [],
|
||||
}) {
|
||||
var fragment = ClassFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.isAbstract = isAbstract;
|
||||
fragment.isAugmentation = isAugmentation;
|
||||
fragment.isSealed = isSealed;
|
||||
@@ -154,7 +154,7 @@ mixin ElementsTypesMixin {
|
||||
List<InterfaceTypeImpl> mixins = const [],
|
||||
List<MethodElementImpl> methods = const [],
|
||||
}) {
|
||||
var fragment = ClassFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.isAbstract = isAbstract;
|
||||
fragment.isAugmentation = isAugmentation;
|
||||
fragment.isSealed = isSealed;
|
||||
@@ -192,7 +192,7 @@ mixin ElementsTypesMixin {
|
||||
required String name,
|
||||
required List<FieldFragmentImpl> constants,
|
||||
}) {
|
||||
var fragment = EnumFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
|
||||
EnumElementImpl(Reference.root(), fragment);
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.fields = constants;
|
||||
@@ -203,7 +203,7 @@ mixin ElementsTypesMixin {
|
||||
required String name,
|
||||
required List<FieldFragmentImpl> constants,
|
||||
}) {
|
||||
var fragment = EnumFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
|
||||
var element = EnumElementImpl(Reference.root(), fragment);
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.fields = constants;
|
||||
@@ -211,7 +211,8 @@ mixin ElementsTypesMixin {
|
||||
}
|
||||
|
||||
FieldFragmentImpl enumConstant_(String name) {
|
||||
return FieldFragmentImpl(name: name, nameOffset: 0)..isEnumConstant = true;
|
||||
return FieldFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..isEnumConstant = true;
|
||||
}
|
||||
|
||||
ExtensionFragmentImpl extension({
|
||||
@@ -221,7 +222,7 @@ mixin ElementsTypesMixin {
|
||||
List<TypeParameterFragmentImpl> typeParameters = const [],
|
||||
List<MethodFragmentImpl> methods = const [],
|
||||
}) {
|
||||
var element = ExtensionFragmentImpl(name: name, nameOffset: 0);
|
||||
var element = ExtensionFragmentImpl(name: name, firstTokenOffset: null);
|
||||
ExtensionElementImpl(Reference.root(), element);
|
||||
element.element.extendedType = extendedType;
|
||||
element.isAugmentation = isAugmentation;
|
||||
@@ -238,12 +239,18 @@ mixin ElementsTypesMixin {
|
||||
List<TypeParameterElementImpl> typeParameters = const [],
|
||||
List<InterfaceTypeImpl> interfaces = const [],
|
||||
}) {
|
||||
var fragment = ExtensionTypeFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = ExtensionTypeFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
fragment.interfaces = interfaces;
|
||||
|
||||
var field = FieldFragmentImpl(name: representationName, nameOffset: -1);
|
||||
var field = FieldFragmentImpl(
|
||||
name: representationName,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
FieldElementImpl(reference: Reference.root(), firstFragment: field);
|
||||
field.type = representationType;
|
||||
fragment.fields = [field];
|
||||
@@ -262,14 +269,17 @@ mixin ElementsTypesMixin {
|
||||
List<TypeParameterElementImpl> typeParameters = const [],
|
||||
List<InterfaceTypeImpl> interfaces = const [],
|
||||
}) {
|
||||
var fragment = ExtensionTypeFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = ExtensionTypeFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
fragment.interfaces = interfaces;
|
||||
|
||||
var fieldFragment = FieldFragmentImpl(
|
||||
name: representationName,
|
||||
nameOffset: -1,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fieldFragment.type = representationType;
|
||||
fragment.fields = [fieldFragment];
|
||||
@@ -454,7 +464,7 @@ mixin ElementsTypesMixin {
|
||||
List<FormalParameterElementImpl> formalParameters = const [],
|
||||
}) {
|
||||
var fragment =
|
||||
MethodFragmentImpl(name: name, nameOffset: 0)
|
||||
MethodFragmentImpl(name: name, firstTokenOffset: null)
|
||||
..isStatic = isStatic
|
||||
..parameters = formalParameters.map((e) => e.asElement).toList()
|
||||
..returnType = returnType
|
||||
@@ -474,7 +484,7 @@ mixin ElementsTypesMixin {
|
||||
List<InterfaceTypeImpl>? constraints,
|
||||
List<InterfaceTypeImpl> interfaces = const [],
|
||||
}) {
|
||||
var fragment = MixinFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.isAugmentation = isAugmentation;
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
@@ -493,7 +503,7 @@ mixin ElementsTypesMixin {
|
||||
List<InterfaceTypeImpl>? constraints,
|
||||
List<InterfaceTypeImpl> interfaces = const [],
|
||||
}) {
|
||||
var fragment = MixinFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.isAugmentation = isAugmentation;
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
@@ -511,7 +521,7 @@ mixin ElementsTypesMixin {
|
||||
bool isCovariant = false,
|
||||
}) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.NAMED,
|
||||
@@ -526,7 +536,7 @@ mixin ElementsTypesMixin {
|
||||
bool isCovariant = false,
|
||||
}) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.NAMED_REQUIRED,
|
||||
@@ -541,7 +551,7 @@ mixin ElementsTypesMixin {
|
||||
bool isCovariant = false,
|
||||
}) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.POSITIONAL,
|
||||
@@ -630,7 +640,7 @@ mixin ElementsTypesMixin {
|
||||
bool isCovariant = false,
|
||||
}) {
|
||||
var fragment = FormalParameterFragmentImpl(
|
||||
nameOffset: 0,
|
||||
firstTokenOffset: null,
|
||||
name: name,
|
||||
nameOffset2: 0,
|
||||
parameterKind: ParameterKind.REQUIRED,
|
||||
@@ -644,7 +654,7 @@ mixin ElementsTypesMixin {
|
||||
required List<TypeParameterElementImpl> typeParameters,
|
||||
required TypeImpl aliasedType,
|
||||
}) {
|
||||
var fragment = TypeAliasFragmentImpl(name: name, nameOffset: 0);
|
||||
var fragment = TypeAliasFragmentImpl(name: name, firstTokenOffset: null);
|
||||
fragment.enclosingElement = testLibrary.definingCompilationUnit;
|
||||
fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
|
||||
fragment.aliasedType = aliasedType;
|
||||
@@ -667,13 +677,13 @@ mixin ElementsTypesMixin {
|
||||
TypeImpl? bound,
|
||||
Variance? variance,
|
||||
}) {
|
||||
var fragment = TypeParameterFragmentImpl(name: name, nameOffset: -1);
|
||||
var fragment = TypeParameterFragmentImpl(
|
||||
name: name,
|
||||
firstTokenOffset: null,
|
||||
);
|
||||
fragment.bound = bound;
|
||||
|
||||
var element = TypeParameterElementImpl(
|
||||
firstFragment: fragment,
|
||||
name: name,
|
||||
);
|
||||
var element = TypeParameterElementImpl(firstFragment: fragment, name: name);
|
||||
element.variance = variance;
|
||||
return element;
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -123,7 +123,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -192,7 +192,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -209,7 +209,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -283,7 +283,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -300,7 +300,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -373,7 +373,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: InvalidType
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -390,7 +390,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: InvalidType
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -456,7 +456,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -473,7 +473,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -542,7 +542,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -559,7 +559,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -631,7 +631,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -648,7 +648,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -717,7 +717,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -734,7 +734,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -800,7 +800,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -817,7 +817,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -886,7 +886,7 @@ IfStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -903,7 +903,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1066,7 +1066,7 @@ IfStatement
|
||||
rightOperand: ConstantPattern
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: InvalidType
|
||||
matchedValueType: Object?
|
||||
matchedValueType: Object?
|
||||
@@ -1074,7 +1074,7 @@ IfStatement
|
||||
whenKeyword: when
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: bool
|
||||
rightParenthesis: )
|
||||
thenStatement: Block
|
||||
@@ -1083,7 +1083,7 @@ IfStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: bool
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
|
||||
@@ -586,7 +586,7 @@ SwitchExpression
|
||||
arrow: =>
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
SwitchExpressionCase
|
||||
guardedPattern: GuardedPattern
|
||||
|
||||
@@ -361,7 +361,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -457,7 +457,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -526,7 +526,7 @@ SwitchStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: <
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -576,7 +576,7 @@ SwitchStatement
|
||||
expression: BinaryExpression
|
||||
leftOperand: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
operator: >
|
||||
rightOperand: IntegerLiteral
|
||||
@@ -591,7 +591,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -696,7 +696,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -801,7 +801,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: InvalidType
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -905,7 +905,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: InvalidType
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -987,7 +987,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1069,7 +1069,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1145,7 +1145,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1219,7 +1219,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: Object?
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1300,7 +1300,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1401,19 +1401,19 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: b
|
||||
element: b@-1
|
||||
element: b@null
|
||||
staticType: double
|
||||
semicolon: ;
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: c
|
||||
element: c@-1
|
||||
element: c@null
|
||||
staticType: String
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
@@ -1486,7 +1486,7 @@ SwitchStatement
|
||||
ExpressionStatement
|
||||
expression: SimpleIdentifier
|
||||
token: a
|
||||
element: a@-1
|
||||
element: a@null
|
||||
staticType: int
|
||||
semicolon: ;
|
||||
rightBracket: }
|
||||
|
||||
@@ -39,7 +39,7 @@ TryStatement
|
||||
leftParenthesis: (
|
||||
exceptionParameter: CatchClauseParameter
|
||||
name: <empty> <synthetic>
|
||||
declaredFragment: isFinal isPublic @27
|
||||
declaredFragment: isFinal isPublic @null
|
||||
type: null
|
||||
element: hasImplicitType isFinal isPrivate
|
||||
type: Object
|
||||
|
||||
@@ -13266,7 +13266,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
classes
|
||||
#F1 class <null-name> (offset=6)
|
||||
#F1 class <null-name> (offset=0)
|
||||
element: <testLibrary>::@class::0
|
||||
constructors
|
||||
#F2 synthetic new
|
||||
@@ -18443,7 +18443,7 @@ library
|
||||
element: <testLibrary>::@class::C2::@constructor::new
|
||||
typeName: C2
|
||||
formalParameters
|
||||
#F10 i (offset=-1)
|
||||
#F10 i (offset=67)
|
||||
element: <testLibrary>::@class::C2::@constructor::new::@formalParameter::i
|
||||
#F11 class C1 @90
|
||||
element: <testLibrary>::@class::C1
|
||||
@@ -18452,7 +18452,7 @@ library
|
||||
element: <testLibrary>::@class::C1::@constructor::new
|
||||
typeName: C1
|
||||
formalParameters
|
||||
#F13 i (offset=-1)
|
||||
#F13 i (offset=90)
|
||||
element: <testLibrary>::@class::C1::@constructor::new::@formalParameter::i
|
||||
classes
|
||||
class A
|
||||
@@ -18607,28 +18607,28 @@ library
|
||||
element: <testLibrary>::@class::C::@constructor::c1
|
||||
typeName: C
|
||||
formalParameters
|
||||
#F14 a (offset=-1)
|
||||
#F14 a (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c1::@formalParameter::a
|
||||
#F15 synthetic c2
|
||||
element: <testLibrary>::@class::C::@constructor::c2
|
||||
typeName: C
|
||||
formalParameters
|
||||
#F16 a (offset=-1)
|
||||
#F16 a (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c2::@formalParameter::a
|
||||
#F17 b (offset=-1)
|
||||
#F17 b (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c2::@formalParameter::b
|
||||
#F18 c (offset=-1)
|
||||
#F18 c (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c2::@formalParameter::c
|
||||
initializer: expression_0
|
||||
#F19 synthetic c3
|
||||
element: <testLibrary>::@class::C::@constructor::c3
|
||||
typeName: C
|
||||
formalParameters
|
||||
#F20 a (offset=-1)
|
||||
#F20 a (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c3::@formalParameter::a
|
||||
#F21 b (offset=-1)
|
||||
#F21 b (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c3::@formalParameter::b
|
||||
#F22 c (offset=-1)
|
||||
#F22 c (offset=118)
|
||||
element: <testLibrary>::@class::C::@constructor::c3::@formalParameter::c
|
||||
initializer: expression_1
|
||||
mixins
|
||||
@@ -18845,9 +18845,9 @@ library
|
||||
element: <testLibrary>::@class::B::@constructor::new
|
||||
typeName: B
|
||||
formalParameters
|
||||
#F9 x (offset=-1)
|
||||
#F9 x (offset=61)
|
||||
element: <testLibrary>::@class::B::@constructor::new::@formalParameter::x
|
||||
#F10 y (offset=-1)
|
||||
#F10 y (offset=61)
|
||||
element: <testLibrary>::@class::B::@constructor::new::@formalParameter::y
|
||||
mixins
|
||||
#F11 mixin M @49
|
||||
@@ -19873,13 +19873,13 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::requiredArg
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F7 x (offset=-1)
|
||||
#F7 x (offset=34)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::requiredArg::@formalParameter::x
|
||||
#F8 synthetic positionalArg
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::positionalArg
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F9 x (offset=-1)
|
||||
#F9 x (offset=34)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::positionalArg::@formalParameter::x
|
||||
initializer: expression_0
|
||||
BooleanLiteral
|
||||
@@ -19889,7 +19889,7 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::positionalArg2
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F11 x (offset=-1)
|
||||
#F11 x (offset=34)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::positionalArg2::@formalParameter::x
|
||||
initializer: expression_1
|
||||
BooleanLiteral
|
||||
@@ -19899,7 +19899,7 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::namedArg
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F13 x (offset=-1)
|
||||
#F13 x (offset=34)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::namedArg::@formalParameter::x
|
||||
initializer: expression_2
|
||||
IntegerLiteral
|
||||
@@ -19909,7 +19909,7 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::namedArg2
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F15 x (offset=-1)
|
||||
#F15 x (offset=34)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::namedArg2::@formalParameter::x
|
||||
initializer: expression_3
|
||||
BooleanLiteral
|
||||
@@ -20141,9 +20141,9 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F10 t (offset=-1)
|
||||
#F10 t (offset=64)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::t
|
||||
#F11 l (offset=-1)
|
||||
#F11 l (offset=64)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::l
|
||||
classes
|
||||
class Base
|
||||
@@ -20261,9 +20261,9 @@ library
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor
|
||||
typeName: MixinApp
|
||||
formalParameters
|
||||
#F11 t (offset=-1)
|
||||
#F11 t (offset=64)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::t
|
||||
#F12 l (offset=-1)
|
||||
#F12 l (offset=64)
|
||||
element: <testLibrary>::@class::MixinApp::@constructor::ctor::@formalParameter::l
|
||||
classes
|
||||
class Base
|
||||
|
||||
@@ -1377,9 +1377,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::0
|
||||
#F2 synthetic foo (offset=-1)
|
||||
#F2 synthetic foo (offset=26)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::1
|
||||
getters
|
||||
#F3 foo @8
|
||||
@@ -1426,9 +1426,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=4)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::0
|
||||
#F2 synthetic foo (offset=-1)
|
||||
#F2 synthetic foo (offset=22)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::1
|
||||
setters
|
||||
#F3 foo @4
|
||||
|
||||
@@ -3138,7 +3138,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
enums
|
||||
#F1 enum <null-name> (offset=5)
|
||||
#F1 enum <null-name> (offset=0)
|
||||
element: <testLibrary>::@enum::0
|
||||
fields
|
||||
#F2 hasInitializer v @6
|
||||
|
||||
@@ -1623,7 +1623,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
extensionTypes
|
||||
#F1 extension type <null-name> (offset=15)
|
||||
#F1 extension type <null-name> (offset=0)
|
||||
element: <testLibrary>::@extensionType::0
|
||||
fields
|
||||
#F2 it @20
|
||||
@@ -1670,7 +1670,7 @@ library
|
||||
#F1 extension type A @15
|
||||
element: <testLibrary>::@extensionType::A
|
||||
fields
|
||||
#F2 <null-name> (offset=17)
|
||||
#F2 <null-name> (offset=16)
|
||||
element: <testLibrary>::@extensionType::A::@field::0
|
||||
constructors
|
||||
#F3 new
|
||||
@@ -1680,7 +1680,7 @@ library
|
||||
typeName: A
|
||||
typeNameOffset: 15
|
||||
formalParameters
|
||||
#F4 this.<null-name> (offset=17)
|
||||
#F4 this.<null-name> (offset=16)
|
||||
element: <testLibrary>::@extensionType::A::@constructor::new::@formalParameter::<null-name>
|
||||
getters
|
||||
#F5 synthetic <null-name>
|
||||
|
||||
@@ -128,7 +128,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic g (offset=-1)
|
||||
#F1 synthetic g (offset=4)
|
||||
element: <testLibrary>::@topLevelVariable::g
|
||||
getters
|
||||
#F2 g @4
|
||||
|
||||
@@ -2065,7 +2065,7 @@ library
|
||||
NullLiteral
|
||||
literal: null @10
|
||||
staticType: Null
|
||||
#F2 synthetic f (offset=-1)
|
||||
#F2 synthetic f (offset=23)
|
||||
element: <testLibrary>::@topLevelVariable::f
|
||||
getters
|
||||
#F3 synthetic a
|
||||
@@ -2133,7 +2133,7 @@ library
|
||||
NullLiteral
|
||||
literal: null @10
|
||||
staticType: Null
|
||||
#F2 synthetic f (offset=-1)
|
||||
#F2 synthetic f (offset=23)
|
||||
element: <testLibrary>::@topLevelVariable::f
|
||||
getters
|
||||
#F3 synthetic a
|
||||
@@ -5063,7 +5063,7 @@ library
|
||||
IntegerLiteral
|
||||
literal: 0 @12
|
||||
staticType: int
|
||||
#F2 synthetic getter (offset=-1)
|
||||
#F2 synthetic getter (offset=29)
|
||||
element: <testLibrary>::@topLevelVariable::getter
|
||||
getters
|
||||
#F3 synthetic foo
|
||||
@@ -5136,7 +5136,7 @@ library
|
||||
IntegerLiteral
|
||||
literal: 0 @12
|
||||
staticType: int
|
||||
#F2 synthetic setter (offset=-1)
|
||||
#F2 synthetic setter (offset=25)
|
||||
element: <testLibrary>::@topLevelVariable::setter
|
||||
getters
|
||||
#F3 synthetic foo
|
||||
@@ -5867,7 +5867,7 @@ library
|
||||
NullLiteral
|
||||
literal: null @10
|
||||
staticType: Null
|
||||
#F2 synthetic foo (offset=-1)
|
||||
#F2 synthetic foo (offset=21)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F3 synthetic a
|
||||
|
||||
@@ -1433,7 +1433,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
mixins
|
||||
#F1 mixin <null-name> (offset=6)
|
||||
#F1 mixin <null-name> (offset=0)
|
||||
element: <testLibrary>::@mixin::0
|
||||
mixins
|
||||
mixin <null-name>
|
||||
|
||||
@@ -480,7 +480,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @8
|
||||
@@ -514,7 +514,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @8
|
||||
@@ -563,7 +563,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=4)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
setters
|
||||
#F2 foo @4
|
||||
|
||||
@@ -3203,7 +3203,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @8
|
||||
|
||||
@@ -1039,7 +1039,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic main (offset=-1)
|
||||
#F1 synthetic main (offset=4)
|
||||
element: <testLibrary>::@topLevelVariable::main
|
||||
getters
|
||||
#F2 main @4
|
||||
|
||||
@@ -35,9 +35,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic a (offset=-1)
|
||||
#F1 synthetic a (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::a
|
||||
#F2 synthetic b (offset=-1)
|
||||
#F2 synthetic b (offset=20)
|
||||
element: <testLibrary>::@topLevelVariable::b
|
||||
getters
|
||||
#F3 a @8
|
||||
@@ -105,9 +105,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic a (offset=-1)
|
||||
#F1 synthetic a (offset=40)
|
||||
element: <testLibrary>::@topLevelVariable::a
|
||||
#F2 synthetic b (offset=-1)
|
||||
#F2 synthetic b (offset=24)
|
||||
element: <testLibrary>::@topLevelVariable::b
|
||||
getters
|
||||
#F3 b @24
|
||||
@@ -168,7 +168,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=16)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @16
|
||||
@@ -203,7 +203,7 @@ library
|
||||
libraryImports
|
||||
dart:async
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=37)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @37
|
||||
@@ -238,7 +238,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=64)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @64
|
||||
@@ -270,7 +270,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=17)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @17
|
||||
@@ -383,7 +383,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic foo (offset=-1)
|
||||
#F1 synthetic foo (offset=18)
|
||||
element: <testLibrary>::@topLevelVariable::foo
|
||||
getters
|
||||
#F2 foo @18
|
||||
@@ -413,9 +413,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
#F2 synthetic y (offset=-1)
|
||||
#F2 synthetic y (offset=23)
|
||||
element: <testLibrary>::@topLevelVariable::y
|
||||
getters
|
||||
#F3 x @8
|
||||
@@ -461,7 +461,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @8
|
||||
@@ -509,7 +509,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=33)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @33
|
||||
@@ -560,7 +560,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=69)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
setters
|
||||
#F2 x @69
|
||||
@@ -597,7 +597,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=18)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
setters
|
||||
#F2 x @18
|
||||
@@ -632,7 +632,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic f (offset=-1)
|
||||
#F1 synthetic f (offset=4)
|
||||
element: <testLibrary>::@topLevelVariable::f
|
||||
setters
|
||||
#F2 f @4
|
||||
@@ -669,9 +669,9 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=9)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
#F2 synthetic y (offset=-1)
|
||||
#F2 synthetic y (offset=29)
|
||||
element: <testLibrary>::@topLevelVariable::y
|
||||
setters
|
||||
#F3 x @9
|
||||
@@ -775,7 +775,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=8)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @8
|
||||
@@ -824,7 +824,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
topLevelVariables
|
||||
#F1 synthetic x (offset=-1)
|
||||
#F1 synthetic x (offset=33)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F2 x @33
|
||||
@@ -955,7 +955,7 @@ library
|
||||
topLevelVariables
|
||||
#F1 hasInitializer foo @4
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::0
|
||||
#F2 synthetic foo (offset=-1)
|
||||
#F2 synthetic foo (offset=21)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::1
|
||||
getters
|
||||
#F3 synthetic foo
|
||||
@@ -1020,7 +1020,7 @@ library
|
||||
topLevelVariables
|
||||
#F1 hasInitializer foo @4
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::0
|
||||
#F2 synthetic foo (offset=-1)
|
||||
#F2 synthetic foo (offset=17)
|
||||
element: <testLibrary>::@topLevelVariable::foo::@def::1
|
||||
getters
|
||||
#F3 synthetic foo
|
||||
@@ -1382,7 +1382,7 @@ library
|
||||
uri: package:test/a.dart
|
||||
unit: #F1
|
||||
topLevelVariables
|
||||
#F2 synthetic x (offset=-1)
|
||||
#F2 synthetic x (offset=39)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F3 x @39
|
||||
@@ -1446,7 +1446,7 @@ library
|
||||
uri: package:test/a.dart
|
||||
unit: #F1
|
||||
topLevelVariables
|
||||
#F2 synthetic x (offset=-1)
|
||||
#F2 synthetic x (offset=24)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
setters
|
||||
#F3 x @40
|
||||
@@ -1517,7 +1517,7 @@ library
|
||||
previousFragment: #F0
|
||||
nextFragment: #F2
|
||||
topLevelVariables
|
||||
#F3 synthetic x (offset=-1)
|
||||
#F3 synthetic x (offset=24)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
getters
|
||||
#F4 x @24
|
||||
@@ -2324,7 +2324,7 @@ library
|
||||
previousFragment: #F0
|
||||
nextFragment: #F2
|
||||
topLevelVariables
|
||||
#F3 synthetic x (offset=-1)
|
||||
#F3 synthetic x (offset=24)
|
||||
element: <testLibrary>::@topLevelVariable::x
|
||||
setters
|
||||
#F4 x @25
|
||||
|
||||
@@ -4052,7 +4052,7 @@ library
|
||||
#F0 <testLibraryFragment>
|
||||
element: <testLibrary>
|
||||
typeAliases
|
||||
#F1 <null-name> (offset=8)
|
||||
#F1 <null-name> (offset=0)
|
||||
element: <testLibrary>::@typeAlias::0
|
||||
typeAliases
|
||||
<null-name>
|
||||
|
||||
@@ -4133,7 +4133,7 @@ library
|
||||
element: <testLibrary>::@class::B::@constructor::new
|
||||
typeName: B
|
||||
formalParameters
|
||||
#F12 value (offset=-1)
|
||||
#F12 value (offset=51)
|
||||
element: <testLibrary>::@class::B::@constructor::new::@formalParameter::value
|
||||
#F13 class C @78
|
||||
element: <testLibrary>::@class::C
|
||||
|
||||
@@ -1767,7 +1767,7 @@ Expected parent: (${parent.runtimeType}) $parent
|
||||
_sink.writeIf(fragment.isPublic, 'isPublic ');
|
||||
_sink.writeIf(fragment.isStatic, 'isStatic ');
|
||||
_sink.writeIf(fragment.isSynthetic, 'isSynthetic ');
|
||||
_sink.write('${fragment.name ?? ''}@${fragment.nameOffset}');
|
||||
_sink.write('${fragment.name ?? ''}@${fragment.nameOffset2}');
|
||||
});
|
||||
|
||||
_sink.withIndent(() {
|
||||
|
||||
@@ -4327,7 +4327,7 @@ library
|
||||
topLevelVariables
|
||||
#F13 hasInitializer topLevelVariable @44
|
||||
element: <testLibrary>::@topLevelVariable::topLevelVariable
|
||||
#F14 synthetic topLevelGetter (offset=-1)
|
||||
#F14 synthetic topLevelGetter (offset=74)
|
||||
element: <testLibrary>::@topLevelVariable::topLevelGetter
|
||||
#F15 hasInitializer r_topLevelFunction @280
|
||||
element: <testLibrary>::@topLevelVariable::r_topLevelFunction
|
||||
|
||||
Reference in New Issue
Block a user