Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 53 additions & 39 deletions lib/src/generator/templates.runtime_renderers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17944,14 +17944,14 @@ class _Renderer_ModelFunction extends RendererBase<ModelFunction> {
() => {
..._Renderer_ModelFunctionTyped.propertyMap<CT_>(),
..._Renderer_Categorization.propertyMap<CT_>(),
'element': Property(
getValue: (CT_ c) => c.element,
'element2': Property(
getValue: (CT_ c) => c.element2,
renderVariable:
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
self.renderSimpleVariable(
c,
remainingNames,
'FunctionElement',
'TopLevelFunctionElement',
),

isNullValue: (CT_ c) => false,
Expand All @@ -17963,12 +17963,12 @@ class _Renderer_ModelFunction extends RendererBase<ModelFunction> {
StringSink sink,
) {
renderSimple(
c.element,
c.element2,
ast,
r.template,
sink,
parent: r,
getters: _invisibleGetters['FunctionElement']!,
getters: _invisibleGetters['TopLevelFunctionElement']!,
);
},
),
Expand Down Expand Up @@ -18165,6 +18165,34 @@ class _Renderer_ModelFunctionTyped extends RendererBase<ModelFunctionTyped> {
);
},
),
'element2': Property(
getValue: (CT_ c) => c.element2,
renderVariable:
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
self.renderSimpleVariable(
c,
remainingNames,
'FunctionTypedElement2',
),

isNullValue: (CT_ c) => false,

renderValue: (
CT_ c,
RendererBase<CT_> r,
List<MustachioNode> ast,
StringSink sink,
) {
renderSimple(
c.element2,
ast,
r.template,
sink,
parent: r,
getters: _invisibleGetters['FunctionTypedElement2']!,
);
},
),
'enclosingElement': Property(
getValue: (CT_ c) => c.enclosingElement,
renderVariable: (
Expand Down Expand Up @@ -20571,13 +20599,13 @@ class _Renderer_PackageTemplateData extends RendererBase<PackageTemplateData> {
}
}

String renderError(PackageTemplateData context, Template template) {
String renderSearchPage(PackageTemplateData context, Template template) {
var buffer = StringBuffer();
_render_PackageTemplateData(context, template.ast, template, buffer);
return buffer.toString();
}

String renderSearchPage(PackageTemplateData context, Template template) {
String renderError(PackageTemplateData context, Template template) {
var buffer = StringBuffer();
_render_PackageTemplateData(context, template.ast, template, buffer);
return buffer.toString();
Expand Down Expand Up @@ -21656,30 +21684,6 @@ class _Renderer_SourceCode extends RendererBase<SourceCode> {
);
},
),
'element': Property(
getValue: (CT_ c) => c.element,
renderVariable:
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
self.renderSimpleVariable(c, remainingNames, 'Element'),

isNullValue: (CT_ c) => c.element == null,

renderValue: (
CT_ c,
RendererBase<CT_> r,
List<MustachioNode> ast,
StringSink sink,
) {
renderSimple(
c.element,
ast,
r.template,
sink,
parent: r,
getters: _invisibleGetters['Element']!,
);
},
),
'hasSourceCode': Property(
getValue: (CT_ c) => c.hasSourceCode,
renderVariable:
Expand Down Expand Up @@ -26407,14 +26411,6 @@ const _invisibleGetters = {
'runtimeType',
'typeParameters2',
},
'FunctionElement': {
'augmentation',
'augmentationTarget',
'hashCode',
'isDartCoreIdentical',
'isEntryPoint',
'runtimeType',
},
'FunctionType': {
'element',
'formalParameters',
Expand All @@ -26438,6 +26434,15 @@ const _invisibleGetters = {
'runtimeType',
'type',
},
'FunctionTypedElement2': {
'firstFragment',
'formalParameters',
'fragments',
'hashCode',
'returnType',
'runtimeType',
'type',
},
'GetterSetterCombo': {
'allAccessors',
'annotations',
Expand Down Expand Up @@ -26875,6 +26880,15 @@ const _invisibleGetters = {
'toolVersion',
'useBaseHref',
},
'TopLevelFunctionElement': {
'baseElement',
'firstFragment',
'fragments',
'hashCode',
'isDartCoreIdentical',
'isEntryPoint',
'runtimeType',
},
'TopLevelVariableElement': {
'augmentation',
'augmentationTarget',
Expand Down
4 changes: 1 addition & 3 deletions lib/src/model/container_member.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: analyzer_use_new_elements

import 'package:dartdoc/src/model/attribute.dart';
import 'package:dartdoc/src/model/model.dart';
import 'package:meta/meta.dart';
Expand Down Expand Up @@ -31,7 +29,7 @@ mixin ContainerMember on ModelElement {
@protected
@visibleForTesting
late final Container definingEnclosingContainer =
getModelForElement(element.enclosingElement3!) as Container;
getModelForElement2(element2.enclosingElement2!) as Container;

@override
Set<Attribute> get attributes => {
Expand Down
15 changes: 10 additions & 5 deletions lib/src/model/dynamic.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,28 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: analyzer_use_new_elements

import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
// ignore: implementation_imports
import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/model/comment_referable.dart';
import 'package:dartdoc/src/model/kind.dart';
import 'package:dartdoc/src/model/model.dart';

class Dynamic extends ModelElement with HasNoPage {
@override
final Element element;
// ignore: analyzer_use_new_elements
Element get element => element2.asElement!;

@override
final Element2 element2;

Dynamic(this.element, PackageGraph packageGraph)
Dynamic(this.element2, PackageGraph packageGraph)
: super(Library.sentinel, packageGraph);

UndefinedElementType get modelType =>
throw UnimplementedError('(${element.runtimeType}) $element');
throw UnimplementedError('(${element2.runtimeType}) $element2');

/// `dynamic` is not a real object, and so we can't document it, so there
/// can be nothing canonical for it.
Expand Down
6 changes: 1 addition & 5 deletions lib/src/model/locatable.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: analyzer_use_new_elements

import 'package:analyzer/dart/element/element.dart' show Element;
import 'package:dartdoc/src/model/model.dart';

/// Something that can be located for warning purposes.
Expand All @@ -26,8 +23,7 @@ mixin Locatable {

String? get href;

/// A string indicating the URI of this Locatable, usually derived from
/// [Element.location].
/// A string indicating the URI of this Locatable.
String get location;

/// Whether this is the "canonical" copy of an element.
Expand Down
6 changes: 3 additions & 3 deletions lib/src/model/model_element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ abstract class ModelElement

if (e.kind == ElementKind.DYNAMIC) {
return packageGraph.allConstructedModelElements[key] =
Dynamic(e, packageGraph);
Dynamic(e.asElement2!, packageGraph);
}
if (e.kind == ElementKind.NEVER) {
return packageGraph.allConstructedModelElements[key] =
Expand Down Expand Up @@ -312,10 +312,10 @@ abstract class ModelElement
ClassElement() => Class(e, library, packageGraph),
ExtensionElement() => Extension(e.asElement2, library, packageGraph),
ExtensionTypeElement() => ExtensionType(e, library, packageGraph),
FunctionElement() => ModelFunction(e, library, packageGraph),
FunctionElement() => ModelFunction(e.asElement2 as TopLevelFunctionElement, library, packageGraph),
ConstructorElement() => Constructor(e, library, packageGraph),
GenericFunctionTypeElement() =>
ModelFunctionTypedef(e, library, packageGraph),
ModelFunctionTypedef(e.asElement2 as FunctionTypedElement2, library, packageGraph),
TypeAliasElement(aliasedType: FunctionType()) =>
FunctionTypedef(e.asElement2, library, packageGraph),
TypeAliasElement()
Expand Down
37 changes: 21 additions & 16 deletions lib/src/model/model_function.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,50 +2,55 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: analyzer_use_new_elements

import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/element2.dart';
// ignore: implementation_imports
import 'package:analyzer/src/utilities/extensions/element.dart';
import 'package:dartdoc/src/element_type.dart';
import 'package:dartdoc/src/model/comment_referable.dart';
import 'package:dartdoc/src/model/kind.dart';
import 'package:dartdoc/src/model/model.dart';

/// A [ModelElement] for a [FunctionElement] that isn't part of a type definition.
/// A [ModelElement] for a [TopLevelFunctionElement] that isn't part of a type definition.
class ModelFunction extends ModelFunctionTyped with Categorization {
ModelFunction(
FunctionElement super.element, super.library, super.packageGraph);
TopLevelFunctionElement super.element2, super.library, super.packageGraph);

bool get isStatic => element.isStatic;
bool get isStatic => element2.isStatic;

@override
String get name => element.name;
String get name => element2.name3 ?? '';

@override
FunctionElement get element => super.element as FunctionElement;
TopLevelFunctionElement get element2 => super.element2 as TopLevelFunctionElement;

bool get isAsynchronous => element.isAsynchronous;
bool get isAsynchronous => element2.firstFragment.isAsynchronous;
}

/// A [ModelElement] for a [FunctionTypedElement] that is part of an
/// A [ModelElement] for a [FunctionTypedElement2] that is part of an
/// explicit typedef.
class ModelFunctionTypedef extends ModelFunctionTyped {
ModelFunctionTypedef(super.element, super.library, super.packageGraph);
ModelFunctionTypedef(super.element2, super.library, super.packageGraph);

@override
String get name => element.enclosingElement3!.name!;
String get name => element2.enclosingElement2!.name3!;
}

class ModelFunctionTyped extends ModelElement with TypeParameters {
@override
final FunctionTypedElement element;
// ignore: analyzer_use_new_elements
FunctionTypedElement get element => element2.asElement as FunctionTypedElement;

@override
final FunctionTypedElement2 element2;

@override
late final List<TypeParameter> typeParameters = [
for (var p in element.typeParameters)
getModelFor(p, library) as TypeParameter,
for (var p in element2.typeParameters2)
getModelFor2(p, library) as TypeParameter,
];

ModelFunctionTyped(this.element, super.library, super.packageGraph);
ModelFunctionTyped(this.element2, super.library, super.packageGraph);

@override
Library get enclosingElement => library;
Expand Down Expand Up @@ -83,7 +88,7 @@ class ModelFunctionTyped extends ModelElement with TypeParameters {
@override
Iterable<CommentReferable> get referenceParents => [library];

late final Callable modelType = getTypeFor(element.type, library) as Callable;
late final Callable modelType = getTypeFor(element2.type, library) as Callable;

// For use in templates.
bool get isProvidedByExtension => false;
Expand Down
5 changes: 0 additions & 5 deletions lib/src/model/source_code_mixin.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

// ignore_for_file: analyzer_use_new_elements

import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/source/line_info.dart';
import 'package:dartdoc/src/model/model.dart';

Expand All @@ -13,8 +10,6 @@ mixin SourceCode implements Documentable {

CharacterLocation? get characterLocation;

Element? get element;

bool get hasSourceCode => config.includeSource && sourceCode.isNotEmpty;

Library? get library;
Expand Down