Support for LibraryElemenet.entryPoint
R=brianwilkerson@google.com
Change-Id: Ia0d4f26241fe26dbfae8d15e7c110c9e9adf5da3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100891
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index c708022..968718a 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -6389,9 +6389,21 @@
}
FunctionElement get entryPoint {
- if (resynthesizerContext != null) {
- _entryPoint ??= resynthesizerContext.findEntryPoint();
+ if (_entryPoint != null) return _entryPoint;
+
+ if (linkedContext != null) {
+ var namespace = library.exportNamespace;
+ var entryPoint = namespace.get(FunctionElement.MAIN_FUNCTION_NAME);
+ if (entryPoint is FunctionElement) {
+ return _entryPoint = entryPoint;
+ }
+ return null;
}
+
+ if (resynthesizerContext != null) {
+ return _entryPoint = resynthesizerContext.findEntryPoint();
+ }
+
return _entryPoint;
}