Skip to content

Commit 0054a2b

Browse files
authored
Elements. Migrate lib/src/package_meta.dart, lib/src/mustachio/annotations.dart (#3965)
1 parent ea99b16 commit 0054a2b

File tree

7 files changed

+86
-21
lines changed

7 files changed

+86
-21
lines changed

lib/src/generator/templates.runtime_renderers.dart

Lines changed: 60 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13199,6 +13199,34 @@ class _Renderer_Library extends RendererBase<Library> {
1319913199
);
1320013200
},
1320113201
),
13202+
'element2': Property(
13203+
getValue: (CT_ c) => c.element2,
13204+
renderVariable:
13205+
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
13206+
self.renderSimpleVariable(
13207+
c,
13208+
remainingNames,
13209+
'LibraryElement2',
13210+
),
13211+
13212+
isNullValue: (CT_ c) => false,
13213+
13214+
renderValue: (
13215+
CT_ c,
13216+
RendererBase<CT_> r,
13217+
List<MustachioNode> ast,
13218+
StringSink sink,
13219+
) {
13220+
renderSimple(
13221+
c.element2,
13222+
ast,
13223+
r.template,
13224+
sink,
13225+
parent: r,
13226+
getters: _invisibleGetters['LibraryElement2']!,
13227+
);
13228+
},
13229+
),
1320213230
'enclosingElement': Property(
1320313231
getValue: (CT_ c) => c.enclosingElement,
1320413232
renderVariable: (
@@ -14084,7 +14112,7 @@ class _Renderer_LibraryContainer extends RendererBase<LibraryContainer> {
1408414112
}
1408514113
}
1408614114

14087-
String renderLibrary(LibraryTemplateData context, Template template) {
14115+
String renderLibraryRedirect(LibraryTemplateData context, Template template) {
1408814116
var buffer = StringBuffer();
1408914117
_render_LibraryTemplateData(context, template.ast, template, buffer);
1409014118
return buffer.toString();
@@ -14330,7 +14358,7 @@ class _Renderer_LibraryTemplateData extends RendererBase<LibraryTemplateData> {
1433014358
}
1433114359
}
1433214360

14333-
String renderLibraryRedirect(LibraryTemplateData context, Template template) {
14361+
String renderLibrary(LibraryTemplateData context, Template template) {
1433414362
var buffer = StringBuffer();
1433514363
_render_LibraryTemplateData(context, template.ast, template, buffer);
1433614364
return buffer.toString();
@@ -26052,6 +26080,36 @@ const _invisibleGetters = {
2605226080
'topLevelElements',
2605326081
'units',
2605426082
},
26083+
'LibraryElement2': {
26084+
'classes',
26085+
'entryPoint2',
26086+
'enums',
26087+
'exportNamespace',
26088+
'exportedLibraries2',
26089+
'extensionTypes',
26090+
'extensions',
26091+
'featureSet',
26092+
'firstFragment',
26093+
'fragments',
26094+
'functions',
26095+
'getters',
26096+
'hashCode',
26097+
'identifier',
26098+
'isDartAsync',
26099+
'isDartCore',
26100+
'isInSdk',
26101+
'languageVersion',
26102+
'library2',
26103+
'loadLibraryFunction2',
26104+
'mixins',
26105+
'publicNamespace',
26106+
'runtimeType',
26107+
'setters',
26108+
'topLevelVariables',
26109+
'typeAliases',
26110+
'typeProvider',
26111+
'typeSystem',
26112+
},
2605526113
'List': {'hashCode', 'length', 'reversed', 'runtimeType'},
2605626114
'Locatable': {
2605726115
'documentationFrom',

lib/src/model/library.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,11 @@
66

77
import 'package:analyzer/dart/analysis/features.dart';
88
import 'package:analyzer/dart/element/element.dart';
9+
import 'package:analyzer/dart/element/element2.dart';
910
import 'package:analyzer/dart/element/scope.dart';
1011
import 'package:analyzer/source/line_info.dart';
12+
// ignore: implementation_imports
13+
import 'package:analyzer/src/dart/element/element.dart';
1114
import 'package:dartdoc/src/model/comment_referable.dart';
1215
import 'package:dartdoc/src/model/kind.dart';
1316
import 'package:dartdoc/src/model/model.dart';
@@ -25,6 +28,8 @@ class Library extends ModelElement
2528
@override
2629
final LibraryElement element;
2730

31+
LibraryElement2 get element2 => element as LibraryElementImpl;
32+
2833
/// The set of [Element]s declared directly in this library.
2934
final Set<Element> _localElements;
3035

@@ -309,7 +314,7 @@ class Library extends ModelElement
309314

310315
/// The real packageMeta, as opposed to the package we are documenting with.
311316
late final PackageMeta? packageMeta =
312-
packageGraph.packageMetaProvider.fromElement(element, config.sdkDir);
317+
packageGraph.packageMetaProvider.fromElement(element2, config.sdkDir);
313318

314319
late final List<Class> classesAndExceptions = [
315320
..._localElementsOfType<ClassElement, Class>(),

lib/src/model/package_builder.dart

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,16 @@ import 'package:analyzer/dart/analysis/context_root.dart';
1111
import 'package:analyzer/dart/analysis/results.dart';
1212
import 'package:analyzer/dart/ast/ast.dart';
1313
import 'package:analyzer/dart/element/element.dart';
14+
import 'package:analyzer/dart/element/element2.dart';
1415
import 'package:analyzer/file_system/file_system.dart';
1516
// ignore: implementation_imports
1617
import 'package:analyzer/src/context/builder.dart' show EmbedderYamlLocator;
1718
// ignore: implementation_imports
1819
import 'package:analyzer/src/dart/analysis/analysis_context_collection.dart'
1920
show AnalysisContextCollectionImpl;
2021
// ignore: implementation_imports
22+
import 'package:analyzer/src/dart/element/element.dart';
23+
// ignore: implementation_imports
2124
import 'package:analyzer/src/dart/sdk/sdk.dart'
2225
show EmbedderSdk, FolderBasedDartSdk;
2326
// ignore: implementation_imports
@@ -520,6 +523,7 @@ class PubPackageBuilder implements PackageBuilder {
520523
/// the library.
521524
class DartDocResolvedLibrary {
522525
final LibraryElement element;
526+
LibraryElement2 get element2 => element as LibraryElementImpl;
523527
final List<CompilationUnit> units;
524528

525529
DartDocResolvedLibrary(ResolvedLibraryResult result)

lib/src/model/package_graph.dart

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,11 @@ class PackageGraph with CommentReferable, Nameable {
9494
/// span packages.
9595
void addLibraryToGraph(DartDocResolvedLibrary resolvedLibrary) {
9696
assert(!allLibrariesAdded);
97-
var libraryElement = resolvedLibrary.element;
97+
var libraryElement2 = resolvedLibrary.element2;
9898
var packageMeta =
99-
packageMetaProvider.fromElement(libraryElement, config.sdkDir);
99+
packageMetaProvider.fromElement(libraryElement2, config.sdkDir);
100100
if (packageMeta == null) {
101-
var libraryPath = libraryElement.librarySource.fullName;
101+
var libraryPath = libraryElement2.firstFragment.source.fullName;
102102
var dartOrFlutter = config.flutterRoot == null ? 'dart' : 'flutter';
103103
throw DartdocFailure(
104104
"Unknown package for library: '$libraryPath'. Consider "
@@ -109,10 +109,10 @@ class PackageGraph with CommentReferable, Nameable {
109109
}
110110
var package = Package.fromPackageMeta(packageMeta, this);
111111
var library = Library.fromLibraryResult(resolvedLibrary, this, package);
112-
if (_shouldIncludeLibrary(libraryElement)) {
112+
if (_shouldIncludeLibrary(resolvedLibrary.element)) {
113113
package.libraries.add(library);
114114
}
115-
_allLibraries[libraryElement.source.fullName] = library;
115+
_allLibraries[libraryElement2.firstFragment.source.fullName] = library;
116116
}
117117

118118
/// Whether [libraryElement] should be included in the libraries-to-document.

lib/src/mustachio/annotations.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
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
// See the Mustachio README at tool/mustachio/README.md for high-level
86
// documentation.
97

10-
import 'package:analyzer/dart/element/element.dart';
8+
import 'package:analyzer/dart/element/element2.dart';
119
import 'package:analyzer/dart/element/type.dart';
1210
import 'package:meta/meta.dart';
1311

@@ -91,5 +89,5 @@ class RendererSpec {
9189
this.standardHtmlTemplate,
9290
);
9391

94-
InterfaceElement get contextElement => contextType.element;
92+
InterfaceElement2 get contextElement => contextType.element3;
9593
}

lib/src/package_meta.dart

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
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' show Platform;
86

9-
import 'package:analyzer/dart/element/element.dart';
7+
import 'package:analyzer/dart/element/element2.dart';
108
import 'package:analyzer/file_system/file_system.dart';
119
import 'package:analyzer/file_system/physical_file_system.dart';
1210
// ignore: implementation_imports
@@ -51,13 +49,13 @@ final PackageMetaProvider pubPackageMetaProvider = PackageMetaProvider(
5149
/// Sets the supported way of constructing [PackageMeta] objects.
5250
///
5351
/// These objects can be constructed from a filename, a directory
54-
/// or a [LibraryElement]. We allow different dartdoc implementations to
52+
/// or a [LibraryElement2]. We allow different dartdoc implementations to
5553
/// provide their own [PackageMeta] types.
5654
///
5755
/// By using a different provider, these implementations can control how
5856
/// [PackageMeta] objects are built.
5957
class PackageMetaProvider {
60-
final PackageMeta? Function(LibraryElement, String, ResourceProvider)
58+
final PackageMeta? Function(LibraryElement2, String, ResourceProvider)
6159
_fromElement;
6260
final PackageMeta? Function(String, ResourceProvider) _fromFilename;
6361
final PackageMeta? Function(Folder, ResourceProvider) _fromDir;
@@ -77,7 +75,7 @@ class PackageMetaProvider {
7775
this.defaultSdk,
7876
});
7977

80-
PackageMeta? fromElement(LibraryElement library, String s) =>
78+
PackageMeta? fromElement(LibraryElement2 library, String s) =>
8179
_fromElement(library, s, resourceProvider);
8280
PackageMeta? fromFilename(String s) => _fromFilename(s, resourceProvider);
8381
PackageMeta? fromDir(Folder dir) => _fromDir(dir, resourceProvider);
@@ -185,7 +183,7 @@ abstract class PubPackageMeta extends PackageMeta {
185183
}
186184

187185
/// Use this instead of [fromDir] where possible.
188-
static PackageMeta? fromElement(LibraryElement libraryElement, String sdkDir,
186+
static PackageMeta? fromElement(LibraryElement2 libraryElement, String sdkDir,
189187
ResourceProvider resourceProvider) {
190188
if (libraryElement.isInSdk) {
191189
return PubPackageMeta.fromDir(
@@ -194,7 +192,7 @@ abstract class PubPackageMeta extends PackageMeta {
194192
return PubPackageMeta.fromDir(
195193
resourceProvider
196194
.getFile(resourceProvider.pathContext
197-
.canonicalize(libraryElement.source.fullName))
195+
.canonicalize(libraryElement.firstFragment.source.fullName))
198196
.parent,
199197
resourceProvider);
200198
}

tool/mustachio/codegen_runtime_renderer.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ import 'package:analyzer/dart/element/nullability_suffix.dart';
1414
import 'package:analyzer/dart/element/type.dart';
1515
import 'package:analyzer/dart/element/type_provider.dart';
1616
import 'package:analyzer/dart/element/type_system.dart';
17+
// ignore: implementation_imports
18+
import 'package:analyzer/src/utilities/extensions/element.dart';
1719
import 'package:dart_style/dart_style.dart';
1820
import 'package:dartdoc/src/mustachio/annotations.dart';
1921
import 'package:dartdoc/src/type_utils.dart';
@@ -129,7 +131,7 @@ import '${path.basename(_sourceUri.path)}';
129131
/// Adds type specified in [spec] to the [_typesToProcess] queue, as well as
130132
/// all supertypes, and the types of all valid getters, recursively.
131133
void _addTypesForRendererSpec(RendererSpec spec) {
132-
var element = spec.contextElement;
134+
var element = spec.contextElement.asElement as InterfaceElement;
133135
var rendererInfo = _RendererInfo(element,
134136
public: _rendererClassesArePublic, publicApiFunctionName: spec.name);
135137
_typesToProcess.add(rendererInfo);

0 commit comments

Comments
 (0)