Skip to content

Commit 0da3d38

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Simplify ElementAnnotationImpl() creation.
Change-Id: I38900e393bbc942c3ca7525aacffd18a28c1db4d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/441984 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 6e5df68 commit 0da3d38

File tree

4 files changed

+12
-32
lines changed

4 files changed

+12
-32
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1535,7 +1535,9 @@ class ElementAnnotationImpl
15351535

15361536
/// Initialize a newly created annotation. The given [libraryFragment] is the
15371537
/// compilation unit in which the annotation appears.
1538-
ElementAnnotationImpl(this.libraryFragment);
1538+
ElementAnnotationImpl(this.libraryFragment, this.annotationAst) {
1539+
annotationAst.elementAnnotation = this;
1540+
}
15391541

15401542
@override
15411543
List<Diagnostic> get constantEvaluationErrors {

pkg/analyzer/lib/src/dart/resolver/resolution_visitor.dart

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
180180
@override
181181
void visitAnnotation(covariant AnnotationImpl node) {
182182
if (_elementWalker == null) {
183-
_createElementAnnotation(node);
183+
ElementAnnotationImpl(_unitElement, node);
184184
}
185185
_withElementWalker(null, () {
186186
super.visitAnnotation(node);
@@ -1596,13 +1596,6 @@ class ResolutionVisitor extends RecursiveAstVisitor<void> {
15961596
}
15971597
}
15981598

1599-
/// Create a new [ElementAnnotation] for the [node].
1600-
void _createElementAnnotation(AnnotationImpl node) {
1601-
var element = ElementAnnotationImpl(_unitElement);
1602-
element.annotationAst = node;
1603-
node.elementAnnotation = element;
1604-
}
1605-
16061599
void _define(Element element) {
16071600
if (_nameScope case LocalScope nameScope) {
16081601
nameScope.add(element);

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

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1863,9 +1863,7 @@ class ResolutionReader {
18631863
currentLibraryFragment = unitElement;
18641864
var annotations = readTypedList(() {
18651865
var ast = _readRequiredNode() as AnnotationImpl;
1866-
return ElementAnnotationImpl(unitElement)
1867-
..annotationAst = ast
1868-
..element = ast.element;
1866+
return ElementAnnotationImpl(unitElement, ast)..element = ast.element;
18691867
});
18701868

18711869
return MetadataImpl(annotations);

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

Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:analyzer/src/summary2/ast_binary_tokens.dart';
1313
import 'package:analyzer/src/summary2/library_builder.dart';
1414
import 'package:analyzer/src/summary2/link.dart';
1515
import 'package:analyzer/src/summary2/reference.dart';
16+
import 'package:analyzer/src/utilities/extensions/collection.dart';
1617
import 'package:analyzer/src/utilities/extensions/object.dart';
1718
import 'package:collection/collection.dart';
1819

@@ -1813,8 +1814,12 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
18131814
});
18141815
}
18151816

1816-
MetadataImpl _buildMetadata(List<Annotation> nodeList) {
1817-
var annotations = _buildAnnotationsWithUnit(_unitElement, nodeList);
1817+
MetadataImpl _buildMetadata(List<AnnotationImpl> nodeList) {
1818+
var annotations =
1819+
nodeList.map((ast) {
1820+
return ElementAnnotationImpl(_unitElement, ast);
1821+
}).toFixedList();
1822+
18181823
return MetadataImpl(annotations);
18191824
}
18201825

@@ -1885,24 +1890,6 @@ class FragmentBuilder extends ThrowingAstVisitor<void> {
18851890
_enclosingContext = previous;
18861891
}
18871892
}
1888-
1889-
static List<ElementAnnotationImpl> _buildAnnotationsWithUnit(
1890-
LibraryFragmentImpl unitElement,
1891-
List<Annotation> nodeList,
1892-
) {
1893-
var length = nodeList.length;
1894-
if (length == 0) {
1895-
return const <ElementAnnotationImpl>[];
1896-
}
1897-
1898-
return List<ElementAnnotationImpl>.generate(length, (index) {
1899-
var ast = nodeList[index] as AnnotationImpl;
1900-
var element = ElementAnnotationImpl(unitElement);
1901-
element.annotationAst = ast;
1902-
ast.elementAnnotation = element;
1903-
return element;
1904-
}, growable: false);
1905-
}
19061893
}
19071894

19081895
class _EnclosingContext {

0 commit comments

Comments
 (0)