Augment. Rename ExecutableFragmentImpl.isCompleteDeclaration to isComplete.
Change-Id: I47d70e93da6e16e4019d61cf62533aba7818b7c7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509140 Reviewed-by: Paul Berry <paulberry@google.com>
This commit is contained in:
@@ -51,7 +51,7 @@ class _UnitApiSignatureComputer {
|
||||
declaration.beginToken,
|
||||
functionExpression.parameters?.endToken ?? declaration.name,
|
||||
);
|
||||
signature.addBool(declaration.isCompleteDeclaration);
|
||||
signature.addBool(declaration.isComplete);
|
||||
_addFunctionBodyModifiers(functionExpression.body);
|
||||
} else if (declaration is MixinDeclarationImpl) {
|
||||
_addMixin(declaration);
|
||||
@@ -93,7 +93,7 @@ class _UnitApiSignatureComputer {
|
||||
_addTokens(node.beginToken, node.parameters.endToken);
|
||||
_addNodeList(node.initializers);
|
||||
_addNode(node.redirectedConstructor);
|
||||
signature.addBool(node.isCompleteDeclaration);
|
||||
signature.addBool(node.isComplete);
|
||||
}
|
||||
|
||||
void _addEnum(EnumDeclarationImpl node) {
|
||||
@@ -144,7 +144,7 @@ class _UnitApiSignatureComputer {
|
||||
void _addMethodDeclaration(MethodDeclarationImpl node) {
|
||||
signature.addInt(_kindMethodDeclaration);
|
||||
_addTokens(node.beginToken, node.parameters?.endToken ?? node.name);
|
||||
signature.addBool(node.isCompleteDeclaration);
|
||||
signature.addBool(node.isComplete);
|
||||
_addFunctionBodyModifiers(node.body);
|
||||
signature.addBool(node.invokesSuperSelf);
|
||||
}
|
||||
|
||||
@@ -7087,7 +7087,7 @@ final class ConstructorDeclarationImpl extends ClassMemberImpl
|
||||
return parameters.beginToken;
|
||||
}
|
||||
|
||||
bool get isCompleteDeclaration {
|
||||
bool get isComplete {
|
||||
if (externalKeyword != null) return true;
|
||||
if (body is! EmptyFunctionBody) return true;
|
||||
if (redirectedConstructor != null || initializers.isNotEmpty) return true;
|
||||
@@ -15317,7 +15317,7 @@ final class FunctionDeclarationImpl extends CompilationUnitMemberImpl
|
||||
_functionExpression = _becomeParentOf(functionExpression);
|
||||
}
|
||||
|
||||
bool get isCompleteDeclaration {
|
||||
bool get isComplete {
|
||||
return externalKeyword != null ||
|
||||
functionExpression.body is! EmptyFunctionBody;
|
||||
}
|
||||
@@ -22073,7 +22073,7 @@ final class MethodDeclarationImpl extends ClassMemberImpl
|
||||
(body is EmptyFunctionBodyImpl && !body.semicolon.isSynthetic);
|
||||
}
|
||||
|
||||
bool get isCompleteDeclaration {
|
||||
bool get isComplete {
|
||||
return externalKeyword != null || body is! EmptyFunctionBody;
|
||||
}
|
||||
|
||||
|
||||
@@ -4468,13 +4468,11 @@ abstract class FragmentImpl implements Fragment {
|
||||
return current;
|
||||
}
|
||||
|
||||
@generated
|
||||
@visibleForTesting
|
||||
@trackedInternal
|
||||
Map<String, bool> get flagsForTesting {
|
||||
return {
|
||||
'isAugmentation': isAugmentation,
|
||||
'isComplete': isCompleteDeclaration,
|
||||
};
|
||||
return {'isAugmentation': isAugmentation, 'isComplete': isComplete};
|
||||
}
|
||||
|
||||
/// The fragments in the augmentation chain that follow this fragment,
|
||||
@@ -4501,13 +4499,13 @@ abstract class FragmentImpl implements Fragment {
|
||||
}
|
||||
|
||||
@generated
|
||||
bool get isCompleteDeclaration {
|
||||
return hasFlag(_FragmentStorageFlag.fragment_isCompleteDeclaration);
|
||||
bool get isComplete {
|
||||
return hasFlag(_FragmentStorageFlag.fragment_isComplete);
|
||||
}
|
||||
|
||||
@generated
|
||||
set isCompleteDeclaration(bool value) {
|
||||
setFlag(_FragmentStorageFlag.fragment_isCompleteDeclaration, value);
|
||||
set isComplete(bool value) {
|
||||
setFlag(_FragmentStorageFlag.fragment_isComplete, value);
|
||||
}
|
||||
|
||||
/// Whether the element is private.
|
||||
@@ -4549,7 +4547,7 @@ abstract class FragmentImpl implements Fragment {
|
||||
/// The nearest preceding fragment in the augmentation chain that is complete.
|
||||
FragmentImpl? get nearestPrecedingCompleteFragment {
|
||||
return precedingFragments.firstWhereOrNull((fragment) {
|
||||
return fragment.isCompleteDeclaration;
|
||||
return fragment.isComplete;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -12070,7 +12068,7 @@ enum _FormalParameterElementFlags {
|
||||
|
||||
enum _FragmentFlags {
|
||||
isAugmentation(fragment: true),
|
||||
isCompleteDeclaration(fragment: true);
|
||||
isComplete(fragment: true);
|
||||
|
||||
final bool fragment;
|
||||
final _ElementFlagSource element;
|
||||
@@ -12115,7 +12113,7 @@ enum _FragmentStorageFlag {
|
||||
formalParameterFragment_isOriginMixinApplicationClassConstructor,
|
||||
formalParameterFragment_isOriginOtherFragmentOfEnclosing,
|
||||
fragment_isAugmentation,
|
||||
fragment_isCompleteDeclaration,
|
||||
fragment_isComplete,
|
||||
libraryFragment_isOriginNotExistingFile,
|
||||
methodFragment_isOriginDeclaration,
|
||||
methodFragment_isOriginInterface,
|
||||
|
||||
@@ -340,7 +340,7 @@ class ElementBindingVisitor extends RecursiveAstVisitor<void> {
|
||||
fragment.isExternal = true;
|
||||
}
|
||||
|
||||
fragment.isCompleteDeclaration = node.isCompleteDeclaration;
|
||||
fragment.isComplete = node.isComplete;
|
||||
fragment.isAsynchronous = body.isAsynchronous;
|
||||
fragment.isGenerator = body.isGenerator;
|
||||
if (node.returnType == null) {
|
||||
|
||||
@@ -671,7 +671,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
|
||||
_checkAugmentationWithoutDeclaration(node.augmentKeyword, fragment);
|
||||
|
||||
if (fragment.isAugmentation && fragment.isCompleteDeclaration) {
|
||||
if (fragment.isAugmentation && fragment.isComplete) {
|
||||
var precedingComplete = fragment.nearestPrecedingCompleteFragment;
|
||||
if (precedingComplete != null) {
|
||||
diagnosticReporter.report(
|
||||
@@ -2748,7 +2748,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
required PropertyInducingFragmentImpl fragment,
|
||||
}) {
|
||||
if (fragment.inducedGetter case var inducedGetter?) {
|
||||
if (inducedGetter.isCompleteDeclaration) {
|
||||
if (inducedGetter.isComplete) {
|
||||
var precedingComplete = inducedGetter.nearestPrecedingCompleteFragment;
|
||||
if (precedingComplete != null) {
|
||||
diagnosticReporter.report(
|
||||
@@ -2765,7 +2765,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
}
|
||||
|
||||
if (fragment.inducedSetter case var inducedSetter?) {
|
||||
if (inducedSetter.isCompleteDeclaration) {
|
||||
if (inducedSetter.isComplete) {
|
||||
var precedingComplete = inducedSetter.nearestPrecedingCompleteFragment;
|
||||
if (precedingComplete != null) {
|
||||
diagnosticReporter.report(
|
||||
@@ -4704,7 +4704,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
}
|
||||
|
||||
var element = node.declaredFragment!.element;
|
||||
if (element.fragments.any((f) => f.isCompleteDeclaration)) {
|
||||
if (element.fragments.any((f) => f.isComplete)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -4851,7 +4851,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
required Token? augmentKeyword,
|
||||
required FragmentImpl fragment,
|
||||
}) {
|
||||
if (augmentKeyword != null && fragment.isCompleteDeclaration) {
|
||||
if (augmentKeyword != null && fragment.isComplete) {
|
||||
var precedingComplete = fragment.nearestPrecedingCompleteFragment;
|
||||
if (precedingComplete != null) {
|
||||
diagnosticReporter.report(
|
||||
@@ -4898,7 +4898,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
return;
|
||||
}
|
||||
|
||||
if (element.fragments.any((f) => f.isCompleteDeclaration)) {
|
||||
if (element.fragments.any((f) => f.isComplete)) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -5045,7 +5045,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
(setter?.element.fragments.length ?? 0) > 1;
|
||||
|
||||
if (getter != null) {
|
||||
if (getter.element.fragments.none((f) => f.isCompleteDeclaration)) {
|
||||
if (getter.element.fragments.none((f) => f.isComplete)) {
|
||||
var diagnostic = hasAugmentations
|
||||
? diag.inducedGetterNotCompleteAfterAugmentations
|
||||
: diag.inducedGetterWithoutBody;
|
||||
@@ -5056,7 +5056,7 @@ class ErrorVerifier extends RecursiveAstVisitor<void>
|
||||
}
|
||||
|
||||
if (setter != null) {
|
||||
if (setter.element.fragments.none((f) => f.isCompleteDeclaration)) {
|
||||
if (setter.element.fragments.none((f) => f.isComplete)) {
|
||||
var diagnostic = hasAugmentations
|
||||
? diag.inducedSetterNotCompleteAfterAugmentations
|
||||
: diag.inducedSetterWithoutBody;
|
||||
|
||||
@@ -461,7 +461,7 @@ class ElementBuilder {
|
||||
..isOriginVariable = true
|
||||
..isAbstract = fieldFragment.isAbstract
|
||||
..isAugmentation = fieldFragment.isAugmentation
|
||||
..isCompleteDeclaration = !fieldFragment.isAbstract
|
||||
..isComplete = !fieldFragment.isAbstract
|
||||
..isStatic = fieldFragment.isStatic;
|
||||
fieldFragment.inducedGetter = getterFragment;
|
||||
instanceFragment.addGetter(getterFragment);
|
||||
@@ -491,7 +491,7 @@ class ElementBuilder {
|
||||
..isOriginVariable = true
|
||||
..isAbstract = fieldFragment.isAbstract
|
||||
..isAugmentation = fieldFragment.isAugmentation
|
||||
..isCompleteDeclaration = !fieldFragment.isAbstract
|
||||
..isComplete = !fieldFragment.isAbstract
|
||||
..isStatic = fieldFragment.isStatic;
|
||||
fieldFragment.inducedSetter = setterFragment;
|
||||
instanceFragment.addSetter(setterFragment);
|
||||
@@ -918,7 +918,7 @@ class ElementBuilder {
|
||||
..isOriginVariable = true
|
||||
..isAbstract = variableFragment.isAbstract
|
||||
..isAugmentation = variableFragment.isAugmentation
|
||||
..isCompleteDeclaration =
|
||||
..isComplete =
|
||||
variableFragment.isExternal || !variableFragment.isAbstract
|
||||
..isStatic = true;
|
||||
variableFragment.inducedGetter = getterFragment;
|
||||
@@ -948,7 +948,7 @@ class ElementBuilder {
|
||||
..isOriginVariable = true
|
||||
..isAbstract = variableFragment.isAbstract
|
||||
..isAugmentation = variableFragment.isAugmentation
|
||||
..isCompleteDeclaration =
|
||||
..isComplete =
|
||||
variableFragment.isExternal || !variableFragment.isAbstract
|
||||
..isStatic = true;
|
||||
variableFragment.inducedSetter = setterFragment;
|
||||
@@ -1404,7 +1404,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
fragment.isConst = node.constKeyword != null;
|
||||
fragment.isExternal = node.externalKeyword != null;
|
||||
fragment.isFactory = node.factoryKeyword != null;
|
||||
fragment.isCompleteDeclaration = node.isCompleteDeclaration;
|
||||
fragment.isComplete = node.isComplete;
|
||||
fragment.metadata = _buildMetadata(node.metadata);
|
||||
fragment.typeName = node.typeName?.name;
|
||||
|
||||
@@ -1813,7 +1813,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
executableFragment.isAsynchronous = body.isAsynchronous;
|
||||
executableFragment.isExternal = node.externalKeyword != null;
|
||||
executableFragment.isGenerator = body.isGenerator;
|
||||
executableFragment.isCompleteDeclaration = node.isCompleteDeclaration;
|
||||
executableFragment.isComplete = node.isComplete;
|
||||
executableFragment.metadata = _buildMetadata(node.metadata);
|
||||
|
||||
node.declaredFragment = executableFragment;
|
||||
@@ -1955,7 +1955,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
executableFragment.isExternal =
|
||||
node.externalKeyword != null || node.body is NativeFunctionBody;
|
||||
executableFragment.isGenerator = node.body.isGenerator;
|
||||
executableFragment.isCompleteDeclaration = node.isCompleteDeclaration;
|
||||
executableFragment.isComplete = node.isComplete;
|
||||
executableFragment.metadata = _buildMetadata(node.metadata);
|
||||
|
||||
node.declaredFragment = executableFragment;
|
||||
@@ -2048,7 +2048,7 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
|
||||
fragment.isConst =
|
||||
node.constKeyword != null || parent is EnumDeclarationImpl;
|
||||
fragment.isPrimary = true;
|
||||
fragment.isCompleteDeclaration = true;
|
||||
fragment.isComplete = true;
|
||||
fragment.typeName = node.typeName.lexeme;
|
||||
|
||||
node.declaredFragment = fragment;
|
||||
|
||||
@@ -18674,7 +18674,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_constructor_secondary_augmentation_chain_isCompleteDeclaration_factory() async {
|
||||
test_constructor_secondary_augmentation_chain_isComplete_factory() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
factory A();
|
||||
@@ -18738,7 +18738,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_constructor_secondary_augmentation_chain_isCompleteDeclaration_generative() async {
|
||||
test_constructor_secondary_augmentation_chain_isComplete_generative() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
A();
|
||||
@@ -34646,7 +34646,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_getter_augmentation_chain_isCompleteDeclaration_instance() async {
|
||||
test_getter_augmentation_chain_isComplete_instance() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
int get foo;
|
||||
@@ -35867,7 +35867,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_getter_static_augmentation_chain_isCompleteDeclaration() async {
|
||||
test_getter_static_augmentation_chain_isComplete() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
static int get foo;
|
||||
@@ -36751,7 +36751,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_isCompleteDeclaration_constructor_complete() async {
|
||||
test_isComplete_constructor_complete() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
A();
|
||||
@@ -36761,10 +36761,10 @@ class A {
|
||||
var classA = library.classes.singleWhere((e) => e.name == 'A');
|
||||
var constructor = classA.constructors.single;
|
||||
|
||||
expect(constructor.firstFragment.isCompleteDeclaration, isFalse);
|
||||
expect(constructor.firstFragment.isComplete, isFalse);
|
||||
}
|
||||
|
||||
test_isCompleteDeclaration_method_complete() async {
|
||||
test_isComplete_method_complete() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
static void foo() {}
|
||||
@@ -36774,7 +36774,7 @@ class A {
|
||||
var classA = library.classes.singleWhere((e) => e.name == 'A');
|
||||
var method = classA.methods.singleWhere((e) => e.name == 'foo');
|
||||
|
||||
expect(method.firstFragment.isCompleteDeclaration, isTrue);
|
||||
expect(method.firstFragment.isComplete, isTrue);
|
||||
}
|
||||
|
||||
test_method_abstract() async {
|
||||
@@ -40784,7 +40784,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_method_augmentation_chain_isCompleteDeclaration_instance() async {
|
||||
test_method_augmentation_chain_isComplete_instance() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
void foo();
|
||||
@@ -43235,7 +43235,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_method_static_augmentation_chain_isCompleteDeclaration() async {
|
||||
test_method_static_augmentation_chain_isComplete() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
static void foo();
|
||||
@@ -45289,7 +45289,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_setter_augmentation_chain_isCompleteDeclaration_instance() async {
|
||||
test_setter_augmentation_chain_isComplete_instance() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
set foo(int _);
|
||||
@@ -47289,7 +47289,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_setter_static_augmentation_chain_isCompleteDeclaration() async {
|
||||
test_setter_static_augmentation_chain_isComplete() async {
|
||||
var library = await buildLibrary(r'''
|
||||
class A {
|
||||
static set foo(int _);
|
||||
|
||||
@@ -7413,7 +7413,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_constructor_secondary_augmentation_chain_isCompleteDeclaration_factory() async {
|
||||
test_constructor_secondary_augmentation_chain_isComplete_factory() async {
|
||||
var library = await buildLibrary(r'''
|
||||
enum A {
|
||||
v;
|
||||
|
||||
@@ -5321,7 +5321,7 @@ library
|
||||
''');
|
||||
}
|
||||
|
||||
test_constructor_secondary_augmentation_chain_isCompleteDeclaration_factory() async {
|
||||
test_constructor_secondary_augmentation_chain_isComplete_factory() async {
|
||||
var library = await buildLibrary(r'''
|
||||
extension type A(int it) {
|
||||
factory A();
|
||||
|
||||
@@ -155,35 +155,26 @@ class _ElementGenerator {
|
||||
|
||||
var existingGetters = <String, _ExistingGeneratedGetter>{};
|
||||
var body = declaration.body as BlockClassBodyImpl;
|
||||
var isFlagsForTestingGenerated = true;
|
||||
for (var member in body.members) {
|
||||
if (member is MethodDeclarationImpl) {
|
||||
if (member.isGetter &&
|
||||
member.name.lexeme == 'flagsForTesting' &&
|
||||
!member.isGenerated) {
|
||||
isFlagsForTestingGenerated = false;
|
||||
}
|
||||
|
||||
if (member.isGenerated) {
|
||||
replacements.add(
|
||||
_Replacement(offset: member.offset, end: member.end, text: ''),
|
||||
if (member is MethodDeclarationImpl && member.isGenerated) {
|
||||
replacements.add(
|
||||
_Replacement(offset: member.offset, end: member.end, text: ''),
|
||||
);
|
||||
if (member.isGetter) {
|
||||
var getterElement = member.declaredFragment!.element;
|
||||
var getterName = getterElement.name!;
|
||||
existingGetters[getterName] = _ExistingGeneratedGetter(
|
||||
documentationComment: getterElement.documentationComment,
|
||||
annotations: member.metadata
|
||||
.map((annotation) {
|
||||
return unitResult.content.substring(
|
||||
annotation.offset,
|
||||
annotation.end,
|
||||
);
|
||||
})
|
||||
.where((source) => source != '@generated')
|
||||
.toList(),
|
||||
);
|
||||
if (member.isGetter) {
|
||||
var getterElement = member.declaredFragment!.element;
|
||||
var getterName = getterElement.name!;
|
||||
existingGetters[getterName] = _ExistingGeneratedGetter(
|
||||
documentationComment: getterElement.documentationComment,
|
||||
annotations: member.metadata
|
||||
.map((annotation) {
|
||||
return unitResult.content.substring(
|
||||
annotation.offset,
|
||||
annotation.end,
|
||||
);
|
||||
})
|
||||
.where((source) => source != '@generated')
|
||||
.toList(),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -257,7 +248,7 @@ class _ElementGenerator {
|
||||
: flag.elementSource != _ElementFlagSource.none;
|
||||
}).toList();
|
||||
|
||||
if (flagsForTesting.isNotEmpty && isFlagsForTestingGenerated) {
|
||||
if (flagsForTesting.isNotEmpty) {
|
||||
buffer.writeln();
|
||||
buffer.writeln('@generated');
|
||||
if (className != 'ElementImpl' && className != 'FragmentImpl') {
|
||||
|
||||
Reference in New Issue
Block a user