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
40 changes: 38 additions & 2 deletions lib/src/generator/templates.runtime_renderers.dart
Original file line number Diff line number Diff line change
Expand Up @@ -20353,7 +20353,7 @@ class _Renderer_Package extends RendererBase<Package> {
}
}

String renderIndex(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 @@ -20716,7 +20716,7 @@ String renderSearchPage(PackageTemplateData context, Template template) {
return buffer.toString();
}

String renderError(PackageTemplateData context, Template template) {
String renderIndex(PackageTemplateData context, Template template) {
var buffer = StringBuffer();
_render_PackageTemplateData(context, template.ast, template, buffer);
return buffer.toString();
Expand Down Expand Up @@ -24609,6 +24609,34 @@ class _Renderer_TypeParameter extends RendererBase<TypeParameter> {
);
},
),
'element2': Property(
getValue: (CT_ c) => c.element2,
renderVariable:
(CT_ c, Property<CT_> self, List<String> remainingNames) =>
self.renderSimpleVariable(
c,
remainingNames,
'TypeParameterElement2',
),

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['TypeParameterElement2']!,
);
},
),
'enclosingElement': Property(
getValue: (CT_ c) => c.enclosingElement,
renderVariable: (
Expand Down Expand Up @@ -27051,6 +27079,14 @@ const _invisibleGetters = {
'name',
'runtimeType',
},
'TypeParameterElement2': {
'baseElement',
'bound',
'firstFragment',
'fragments',
'hashCode',
'runtimeType',
},
'int': {
'bitLength',
'hashCode',
Expand Down
3 changes: 2 additions & 1 deletion lib/src/model/model_element.dart
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,8 @@ abstract class ModelElement
enclosingContainer: enclosingContainer,
originalMember: originalMember,
),
TypeParameterElement() => TypeParameter(e, library, packageGraph),
TypeParameterElement() =>
TypeParameter(e.asElement2, library, packageGraph),
_ => throw UnimplementedError('Unknown type ${e.runtimeType}'),
};
}
Expand Down
37 changes: 19 additions & 18 deletions lib/src/model/type_parameter.dart
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,29 @@
// 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/dart/element/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 TypeParameter extends ModelElement with HasNoPage {
@override
final TypeParameterElement element;
// ignore: analyzer_use_new_elements
TypeParameterElement get element =>
(element2 as TypeParameterElementImpl2).firstFragment;

@override
final TypeParameterElement2 element2;

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

@override
ModelElement get enclosingElement =>
getModelFor(element.enclosingElement3!, library);
getModelFor2(element2.enclosingElement2!, library);

/// [TypeParameter]s don't have documentation pages, and don't link to the
/// element on which they are declared.
Expand All @@ -31,27 +37,22 @@ class TypeParameter extends ModelElement with HasNoPage {
Kind get kind => Kind.typeParameter;

ElementType? get boundType {
var bound = element.bound;
var bound = element2.bound;
return bound == null ? null : getTypeFor(bound, library);
}

@override
bool get hasParameters => false;

@override
String get name => element.bound != null
? '${element.name} extends ${boundType!.nameWithGenerics}'
: element.name;

String? _linkedName;
String get name => element2.bound != null
? '${element2.name3} extends ${boundType!.nameWithGenerics}'
: element2.name3!;

@override
String get linkedName {
_linkedName ??= element.bound != null
? '${element.name} extends ${boundType!.linkedName}'
: element.name;
return _linkedName!;
}
String get linkedName => element2.bound != null
? '${element2.name3} extends ${boundType!.linkedName}'
: element2.name3!;

@override
late final Map<String, CommentReferable> referenceChildren = () {
Expand All @@ -64,7 +65,7 @@ class TypeParameter extends ModelElement with HasNoPage {
Iterable<CommentReferable> get referenceParents => [enclosingElement];

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

/// A mixin for [ModelElement]s which have type parameters.
Expand Down
3 changes: 1 addition & 2 deletions lib/src/warnings.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 'dart:io';
import 'dart:math' as math;

Expand Down Expand Up @@ -98,6 +96,7 @@ List<DartdocOption<Object?>> createPackageWarningOptions(
/// Something that package warnings can be reported on. Optionally associated
/// with an analyzer [element].
mixin Warnable implements CommentReferable, Documentable, Locatable {
// ignore: analyzer_use_new_elements
Element? get element;

Element2? get element2;
Expand Down