Skip to content

Commit b18ffd3

Browse files
committed
Elements. Deprecate FunctionElement.
Change-Id: I668284d0b8346728bc529635ef898794fbab2c79 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/418830 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 8455955 commit b18ffd3

File tree

6 files changed

+15
-18
lines changed

6 files changed

+15
-18
lines changed

pkg/analyzer/api.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3308,7 +3308,7 @@ package:analyzer/dart/element/element.dart:
33083308
FieldFormalParameterElement (class extends Object implements ParameterElement):
33093309
new (constructor: FieldFormalParameterElement Function())
33103310
field (getter: FieldElement?)
3311-
FunctionElement (class extends Object implements ExecutableElement, LocalElement):
3311+
FunctionElement (class extends Object implements ExecutableElement, LocalElement, deprecated):
33123312
CALL_METHOD_NAME (static getter: String)
33133313
LOAD_LIBRARY_NAME (static getter: String)
33143314
MAIN_FUNCTION_NAME (static getter: String)
@@ -3373,7 +3373,7 @@ package:analyzer/dart/element/element.dart:
33733373
new (constructor: LibraryElement Function())
33743374
definingCompilationUnit (getter: CompilationUnitElement, deprecated)
33753375
enclosingElement3 (getter: Null)
3376-
entryPoint (getter: FunctionElement?)
3376+
entryPoint (getter: FunctionElement?, deprecated)
33773377
exportNamespace (getter: Namespace)
33783378
exportedLibraries (getter: List<LibraryElement>)
33793379
featureSet (getter: FeatureSet)
@@ -3384,7 +3384,7 @@ package:analyzer/dart/element/element.dart:
33843384
isInSdk (getter: bool)
33853385
languageVersion (getter: LibraryLanguageVersion)
33863386
library (getter: LibraryElement)
3387-
loadLibraryFunction (getter: FunctionElement)
3387+
loadLibraryFunction (getter: FunctionElement, deprecated)
33883388
name (getter: String)
33893389
publicNamespace (getter: Namespace)
33903390
session (getter: AnalysisSession)

pkg/analyzer/lib/dart/element/element.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1253,6 +1253,7 @@ abstract class FieldFormalParameterElement implements ParameterElement {
12531253
/// variable.
12541254
///
12551255
/// Clients may not extend, implement or mix-in this class.
1256+
@Deprecated('Use TopLevelFunctionElement or LocalFunctionElement')
12561257
abstract class FunctionElement implements ExecutableElement, LocalElement {
12571258
/// The name of the method that can be implemented by a class to allow its
12581259
/// instances to be invoked as if they were a function.
@@ -1654,6 +1655,7 @@ abstract class LibraryElement implements _ExistingElement {
16541655
///
16551656
/// The entry point is defined to be a zero argument top-level function
16561657
/// whose name is `main`.
1658+
@Deprecated(elementModelDeprecationMsg)
16571659
FunctionElement? get entryPoint;
16581660

16591661
/// The libraries that are exported from this library.
@@ -1697,6 +1699,7 @@ abstract class LibraryElement implements _ExistingElement {
16971699
/// The element representing the synthetic function `loadLibrary` that is
16981700
/// implicitly defined for this library if the library is imported using a
16991701
/// deferred import.
1702+
@Deprecated(elementModelDeprecationMsg)
17001703
FunctionElement get loadLibraryFunction;
17011704

17021705
/// The name of this library, possibly the empty string if this library does

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5117,9 +5117,9 @@ mixin FragmentedTypeParameterizedElementMixin<
51175117
}
51185118
}
51195119

5120-
/// A concrete implementation of a [FunctionElement].
51215120
sealed class FunctionElementImpl extends ExecutableElementImpl
51225121
implements
5122+
// ignore:deprecated_member_use_from_same_package
51235123
FunctionElement,
51245124
FunctionTypedElementImpl,
51255125
ExecutableElementOrMember {
@@ -6950,7 +6950,7 @@ class LibraryElementImpl extends ElementImpl
69506950

69516951
/// The entry point for this library, or `null` if this library does not have
69526952
/// an entry point.
6953-
TopLevelFunctionElement? _entryPoint;
6953+
TopLevelFunctionElementImpl? _entryPoint;
69546954

69556955
/// The provider for the synthetic function `loadLibrary` that is defined
69566956
/// for this library.
@@ -7059,16 +7059,16 @@ class LibraryElementImpl extends ElementImpl
70597059
@Deprecated('Use entryPoint2 instead')
70607060
@override
70617061
FunctionElement? get entryPoint {
7062-
return entryPoint2?.asElement;
7062+
return entryPoint2?.lastFragment;
70637063
}
70647064

70657065
@override
7066-
TopLevelFunctionElement? get entryPoint2 {
7066+
TopLevelFunctionElementImpl? get entryPoint2 {
70677067
linkedData?.read(this);
70687068
return _entryPoint;
70697069
}
70707070

7071-
set entryPoint2(TopLevelFunctionElement? value) {
7071+
set entryPoint2(TopLevelFunctionElementImpl? value) {
70727072
_entryPoint = value;
70737073
}
70747074

@@ -7652,7 +7652,7 @@ final class LoadLibraryFunctionProvider {
76527652
}
76537653

76547654
TopLevelFunctionElementImpl _create(LibraryElementImpl library) {
7655-
var name = FunctionElement.LOAD_LIBRARY_NAME;
7655+
var name = TopLevelFunctionElement.LOAD_LIBRARY_NAME;
76567656

76577657
var fragment = TopLevelFunctionFragmentImpl(name, -1);
76587658
fragment.name2 = name;
@@ -10840,7 +10840,7 @@ class TopLevelFunctionFragmentImpl extends FunctionElementImpl
1084010840

1084110841
@override
1084210842
bool get isEntryPoint {
10843-
return displayName == FunctionElement.MAIN_FUNCTION_NAME;
10843+
return displayName == TopLevelFunctionElement.MAIN_FUNCTION_NAME;
1084410844
}
1084510845
}
1084610846

pkg/analyzer/lib/src/summary2/bundle_reader.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -545,7 +545,7 @@ class LibraryElementLinkedData extends ElementLinkedData<LibraryElementImpl> {
545545
unitElement: unitElement,
546546
);
547547

548-
element.entryPoint2 = reader.readElement2() as TopLevelFunctionElement?;
548+
element.entryPoint2 = reader.readElement2() as TopLevelFunctionElementImpl?;
549549

550550
element.fieldNameNonPromotabilityInfo =
551551
_readFieldNameNonPromotabilityInfo(reader);

pkg/analyzer/lib/src/summary2/library_builder.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ class LibraryBuilder {
375375
element.exportNamespace = namespace;
376376

377377
var entryPoint = namespace.get2(TopLevelFunctionElement.MAIN_FUNCTION_NAME);
378-
if (entryPoint is TopLevelFunctionElement) {
378+
if (entryPoint is TopLevelFunctionElementImpl) {
379379
element.entryPoint2 = entryPoint;
380380
}
381381
}

pkg/analyzer/lib/src/utilities/extensions/element.dart

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -689,12 +689,6 @@ extension SetterElementImplExtension on SetterElementImpl {
689689
}
690690
}
691691

692-
extension TopLevelFunctionElementExtension on TopLevelFunctionElement {
693-
FunctionElement get asElement {
694-
return (this as TopLevelFunctionElementImpl).lastFragment;
695-
}
696-
}
697-
698692
extension TopLevelFunctionElementImplExtension on TopLevelFunctionElementImpl {
699693
FunctionElementImpl get asElement {
700694
return lastFragment;

0 commit comments

Comments
 (0)