Index: pkg/analyzer/lib/src/dart/element/element.dart |
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart |
index 4c8b9c74ad6bb34f7ba2b0e23ca2c3231ef9a941..e410265d8f9bc5fbb14d913f4459d549485ebce7 100644 |
--- a/pkg/analyzer/lib/src/dart/element/element.dart |
+++ b/pkg/analyzer/lib/src/dart/element/element.dart |
@@ -1540,6 +1540,12 @@ class CompilationUnitElementImpl extends UriReferencedElementImpl |
@override |
List<FunctionElement> get functions { |
+ if (_kernelContext != null) { |
+ _functions ??= _kernelContext.library.procedures |
+ .where((k) => k.kind == kernel.ProcedureKind.Method) |
+ .map((k) => new FunctionElementImpl.forKernel(this, k)) |
+ .toList(growable: false); |
+ } |
if (_unlinkedUnit != null) { |
_functions ??= _unlinkedUnit.executables |
.where((e) => e.kind == UnlinkedExecutableKind.functionOrMethod) |
@@ -4457,6 +4463,13 @@ class FunctionElementImpl extends ExecutableElementImpl |
: super.forSerialized(serializedExecutable, enclosingElement); |
/** |
+ * Initialize using the given kernel. |
+ */ |
+ FunctionElementImpl.forKernel( |
+ ElementImpl enclosingElement, kernel.Procedure kernel) |
+ : super.forKernel(enclosingElement, kernel); |
+ |
+ /** |
* Synthesize an unnamed function element that takes [parameters] and returns |
* [returnType]. |
*/ |