Skip to content

Commit 56934b7

Browse files
authored
Elements. Migrate to Element2 (#3968)
* Elements. Migrate to Element2 * Address comments
1 parent 08b2c10 commit 56934b7

File tree

7 files changed

+69
-68
lines changed

7 files changed

+69
-68
lines changed

lib/src/model/library.dart

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import 'package:analyzer/dart/element/element2.dart';
1010
import 'package:analyzer/dart/element/scope.dart';
1111
import 'package:analyzer/source/line_info.dart';
1212
// ignore: implementation_imports
13-
import 'package:analyzer/src/dart/element/element.dart';
13+
import 'package:analyzer/src/utilities/extensions/element.dart';
14+
// ignore: implementation_imports
1415
import 'package:dartdoc/src/model/comment_referable.dart';
1516
import 'package:dartdoc/src/model/kind.dart';
1617
import 'package:dartdoc/src/model/model.dart';
@@ -29,7 +30,7 @@ class Library extends ModelElement
2930
final LibraryElement element;
3031

3132
@override
32-
LibraryElement2 get element2 => element as LibraryElementImpl;
33+
LibraryElement2 get element2 => element.asElement2;
3334

3435
/// The set of [Element]s declared directly in this library.
3536
final Set<Element> _localElements;
@@ -315,7 +316,7 @@ class Library extends ModelElement
315316

316317
/// The real packageMeta, as opposed to the package we are documenting with.
317318
late final PackageMeta? packageMeta =
318-
packageGraph.packageMetaProvider.fromElement(element2, config.sdkDir);
319+
packageGraph.packageMetaProvider.fromElement(element.asElement2, config.sdkDir);
319320

320321
late final List<Class> classesAndExceptions = [
321322
..._localElementsOfType<ClassElement, Class>(),

lib/src/warnings.dart

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ import 'dart:io';
88
import 'dart:math' as math;
99

1010
import 'package:analyzer/dart/element/element.dart';
11+
import 'package:analyzer/dart/element/element2.dart';
1112
import 'package:analyzer/file_system/file_system.dart';
13+
// ignore: implementation_imports
14+
import 'package:analyzer/src/utilities/extensions/element.dart';
1215
import 'package:collection/collection.dart';
1316
import 'package:dartdoc/src/dartdoc_options.dart';
1417
import 'package:dartdoc/src/logging.dart';
@@ -498,6 +501,13 @@ class PackageWarningCounter {
498501
UnmodifiableMapView<Element?, Map<PackageWarning, Set<String>>>
499502
get countedWarnings => UnmodifiableMapView(_countedWarnings);
500503

504+
/// An unmodifiable map view of all counted warnings related by their element,
505+
/// warning type, and message.
506+
UnmodifiableMapView<Element2?, Map<PackageWarning, Set<String>>>
507+
get countedWarnings2 => UnmodifiableMapView(_countedWarnings.map((key,
508+
value) =>
509+
MapEntry(key?.asElement2, value)));
510+
501511
PackageWarningCounter(this.packageGraph);
502512

503513
/// Logs [packageWarning].

test/documentation_comment_test.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'package:analyzer/file_system/file_system.dart';
86
import 'package:dartdoc/src/dartdoc_options.dart';
97
import 'package:dartdoc/src/model/model.dart';
@@ -30,7 +28,7 @@ class DocumentationCommentTest extends DartdocTestBase {
3028
late ModelElement libraryModel;
3129

3230
void expectNoWarnings() {
33-
expect(packageGraph.packageWarningCounter.countedWarnings, isEmpty);
31+
expect(packageGraph.packageWarningCounter.countedWarnings2, isEmpty);
3432
expect(packageGraph.packageWarningCounter.hasWarnings, isFalse);
3533
}
3634

@@ -863,7 +861,7 @@ class _HasWarning extends Matcher {
863861
Map<Object?, Object?> matchState, bool verbose) {
864862
if (actual is ModelElement) {
865863
var warnings = actual
866-
.packageGraph.packageWarningCounter.countedWarnings[actual.element];
864+
.packageGraph.packageWarningCounter.countedWarnings2[actual.element2];
867865
if (warnings == null) {
868866
return mismatchDescription.add('has no warnings');
869867
}

test/end2end/dartdoc_test.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'dart:async';
86

97
import 'package:analyzer/file_system/file_system.dart';
@@ -84,7 +82,7 @@ void main() {
8482
await buildDartdoc(['--allow-tools'], testPackageToolError, tempDir);
8583
var results = await dartdoc.generateDocsBase();
8684
var p = results.packageGraph;
87-
var unresolvedToolErrors = p.packageWarningCounter.countedWarnings.values
85+
var unresolvedToolErrors = p.packageWarningCounter.countedWarnings2.values
8886
.map((e) => e[PackageWarning.toolError] ?? {})
8987
.expand((element) => element);
9088

test/mustachio/runtime_renderer_builder_test.dart

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,21 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
@TestOn('vm && !windows')
86
@Timeout.factor(2)
97
library;
108

119
import 'dart:io';
1210

13-
import 'package:analyzer/dart/element/element.dart';
11+
import 'package:analyzer/dart/element/element2.dart';
1412
import 'package:test/test.dart';
1513
import 'package:test_descriptor/test_descriptor.dart' as d;
1614

1715
import 'builder_test_base.dart';
1816

1917
void main() {
2018
group('builds a renderer class', () {
21-
late final LibraryElement renderersLibrary;
19+
late final LibraryElement2 renderersLibrary;
2220
late final String generatedContent;
2321

2422
// Builders are fairly expensive (about 4 seconds per `testBuilder` call),
@@ -42,7 +40,7 @@ abstract class Foo extends FooBase with Mix<int> {
4240
class Bar {}
4341
class Baz {}
4442
''');
45-
renderersLibrary = await resolveGeneratedLibrary(runtimeRenderersPath);
43+
renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath);
4644
generatedContent = await File(runtimeRenderersPath).readAsString();
4745
});
4846

@@ -63,23 +61,23 @@ class Baz {}
6361
test('for a class which is extended by a rendered class', () {
6462
// No render function is necessary.
6563
expect(renderersLibrary.getTopLevelFunction('_render_FooBase'), isNull);
66-
expect(renderersLibrary.getClass('_Renderer_FooBase'), isNotNull);
64+
expect(renderersLibrary.getClass2('_Renderer_FooBase'), isNotNull);
6765
});
6866

6967
test('for a class which is mixed into a rendered class', () {
7068
// No render function is necessary.
7169
expect(renderersLibrary.getTopLevelFunction('_render_Mix'), isNull);
72-
expect(renderersLibrary.getClass('_Renderer_Mix'), isNotNull);
70+
expect(renderersLibrary.getClass2('_Renderer_Mix'), isNotNull);
7371
});
7472

7573
test('for a type found in a getter', () {
7674
expect(renderersLibrary.getTopLevelFunction('_render_Bar'), isNotNull);
77-
expect(renderersLibrary.getClass('_Renderer_Bar'), isNotNull);
75+
expect(renderersLibrary.getClass2('_Renderer_Bar'), isNotNull);
7876
});
7977

8078
test('for a generic, bounded type found in a getter', () {
8179
expect(renderersLibrary.getTopLevelFunction('_render_Baz'), isNotNull);
82-
expect(renderersLibrary.getClass('_Renderer_Baz'), isNotNull);
80+
expect(renderersLibrary.getClass2('_Renderer_Baz'), isNotNull);
8381
});
8482

8583
test('with a property map', () {
@@ -190,12 +188,12 @@ class Baz {}
190188
library foo;
191189
import 'annotations.dart';
192190
''');
193-
var renderersLibrary = await resolveGeneratedLibrary(runtimeRenderersPath);
191+
var renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath);
194192

195193
expect(renderersLibrary.getTopLevelFunction('renderFoo'), isNotNull);
196194
expect(renderersLibrary.getTopLevelFunction('renderBar'), isNotNull);
197-
expect(renderersLibrary.getClass('_Renderer_Foo'), isNotNull);
198-
expect(renderersLibrary.getClass('_Renderer_Bar'), isNotNull);
195+
expect(renderersLibrary.getClass2('_Renderer_Foo'), isNotNull);
196+
expect(renderersLibrary.getClass2('_Renderer_Bar'), isNotNull);
199197
});
200198

201199
group('builds a renderer class for a generic type', () {
@@ -267,21 +265,21 @@ class Foo<T extends num> {
267265
class Bar {}
268266
class Baz {}
269267
''');
270-
var renderersLibrary = await resolveGeneratedLibrary(runtimeRenderersPath);
268+
var renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath);
271269

272270
var fooRenderFunction = renderersLibrary.getTopLevelFunction('renderFoo')!;
273-
expect(fooRenderFunction.typeParameters, hasLength(1));
274-
var fBound = fooRenderFunction.typeParameters.single.bound!;
271+
expect(fooRenderFunction.typeParameters2, hasLength(1));
272+
var fBound = fooRenderFunction.typeParameters2.single.bound!;
275273
expect(fBound.getDisplayString(), equals('num'));
276274

277-
var fooRendererClass = renderersLibrary.getClass('_Renderer_Foo')!;
278-
expect(fooRendererClass.typeParameters, hasLength(1));
279-
var cBound = fooRenderFunction.typeParameters.single.bound!;
275+
var fooRendererClass = renderersLibrary.getClass2('_Renderer_Foo')!;
276+
expect(fooRendererClass.typeParameters2, hasLength(1));
277+
var cBound = fooRenderFunction.typeParameters2.single.bound!;
280278
expect(cBound.getDisplayString(), equals('num'));
281279
});
282280

283281
group('does not generate a renderer', () {
284-
late final LibraryElement renderersLibrary;
282+
late final LibraryElement2 renderersLibrary;
285283

286284
setUpAll(() async {
287285
await testMustachioBuilder('''
@@ -299,32 +297,32 @@ class Private {}
299297
class Setter {}
300298
class Method {}
301299
''');
302-
renderersLibrary = await resolveGeneratedLibrary(runtimeRenderersPath);
300+
renderersLibrary = await resolveGeneratedLibrary2(runtimeRenderersPath);
303301
});
304302

305303
test('found in a static getter', () {
306304
expect(renderersLibrary.getTopLevelFunction('_render_Static'), isNull);
307-
expect(renderersLibrary.getClass('_Renderer_Static'), isNull);
305+
expect(renderersLibrary.getClass2('_Renderer_Static'), isNull);
308306
});
309307

310308
test('found in a private getter', () {
311309
expect(renderersLibrary.getTopLevelFunction('_render_Private'), isNull);
312-
expect(renderersLibrary.getClass('_Renderer_Private'), isNull);
310+
expect(renderersLibrary.getClass2('_Renderer_Private'), isNull);
313311
});
314312

315313
test('found in a setter', () {
316314
expect(renderersLibrary.getTopLevelFunction('_render_Setter'), isNull);
317-
expect(renderersLibrary.getClass('_Renderer_Setter'), isNull);
315+
expect(renderersLibrary.getClass2('_Renderer_Setter'), isNull);
318316
});
319317

320318
test('found in a method', () {
321319
expect(renderersLibrary.getTopLevelFunction('_render_Method'), isNull);
322-
expect(renderersLibrary.getClass('_Renderer_Method'), isNull);
320+
expect(renderersLibrary.getClass2('_Renderer_Method'), isNull);
323321
});
324322

325323
test('for types not @visibleToMustache', () {
326324
expect(renderersLibrary.getTopLevelFunction('_render_String'), isNull);
327-
expect(renderersLibrary.getClass('_Renderer_String'), isNull);
325+
expect(renderersLibrary.getClass2('_Renderer_String'), isNull);
328326
});
329327
});
330328
}

test/src/utils.dart

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22
// for details. All rights reserved. Use of this source code is governed by a
33
// BSD-style license that can be found in the LICENSE file.
44

5-
// ignore_for_file: analyzer_use_new_elements
6-
75
import 'dart:io';
86

97
import 'package:analyzer/file_system/file_system.dart';

0 commit comments

Comments
 (0)