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 5e4dd8cf752a5b8bb9a4d77c61de513ac018c146..e5636cc19a5ce67ad85a104abf2c9278718ec47b 100644 |
--- a/pkg/analyzer/lib/src/dart/element/element.dart |
+++ b/pkg/analyzer/lib/src/dart/element/element.dart |
@@ -849,6 +849,10 @@ class ClassElementImpl extends AbstractClassElementImpl |
@override |
List<ElementAnnotation> get metadata { |
+ if (_kernel != null) { |
+ _metadata ??= enclosingUnit._kernelContext |
+ .buildAnnotations(enclosingUnit, _kernel.annotations); |
+ } |
if (_unlinkedClass != null) { |
return _metadata ??= |
_buildAnnotations(enclosingUnit, _unlinkedClass.annotations); |
@@ -4086,6 +4090,10 @@ abstract class ExecutableElementImpl extends ElementImpl |
@override |
List<ElementAnnotation> get metadata { |
+ if (_kernel != null) { |
+ _metadata ??= enclosingUnit._kernelContext |
+ .buildAnnotations(enclosingUnit, _kernel.annotations); |
+ } |
if (serializedExecutable != null) { |
return _metadata ??= |
_buildAnnotations(enclosingUnit, serializedExecutable.annotations); |
@@ -5927,6 +5935,12 @@ abstract class KernelLibraryResynthesizerContext { |
kernel.Library get library; |
/** |
+ * TODO(scheglov) document |
+ */ |
+ List<ElementAnnotation> buildAnnotations( |
+ CompilationUnitElementImpl unit, List<kernel.Expression> annotations); |
+ |
+ /** |
* Build explicit top-level property accessors. |
*/ |
UnitExplicitTopLevelAccessors buildTopLevelAccessors( |
@@ -7636,6 +7650,10 @@ abstract class NonParameterVariableElementImpl extends VariableElementImpl { |
@override |
List<ElementAnnotation> get metadata { |
+ if (_kernel != null) { |
+ _metadata ??= enclosingUnit._kernelContext |
+ .buildAnnotations(enclosingUnit, _kernel.annotations); |
+ } |
if (_unlinkedVariable != null) { |
return _metadata ??= |
_buildAnnotations(enclosingUnit, _unlinkedVariable.annotations); |