diff --git a/lib/src/generator/templates.runtime_renderers.dart b/lib/src/generator/templates.runtime_renderers.dart index 1ecbdd2ab6..aba115f442 100644 --- a/lib/src/generator/templates.runtime_renderers.dart +++ b/lib/src/generator/templates.runtime_renderers.dart @@ -6331,19 +6331,6 @@ class _Renderer_GetterSetterCombo extends RendererBase { getters: _invisibleGetters['CharacterLocation']!); }, ), - 'constantInitializer': Property( - getValue: (CT_ c) => c.constantInitializer, - renderVariable: (CT_ c, Property self, - List remainingNames) => - self.renderSimpleVariable( - c, remainingNames, 'Expression'), - isNullValue: (CT_ c) => c.constantInitializer == null, - renderValue: (CT_ c, RendererBase r, - List ast, StringSink sink) { - renderSimple(c.constantInitializer, ast, r.template, sink, - parent: r, getters: _invisibleGetters['Expression']!); - }, - ), 'constantValue': Property( getValue: (CT_ c) => c.constantValue, renderVariable: @@ -12244,7 +12231,7 @@ class _Renderer_Package extends RendererBase { } } -String renderSearchPage(PackageTemplateData context, Template template) { +String renderIndex(PackageTemplateData context, Template template) { var buffer = StringBuffer(); _render_PackageTemplateData(context, template.ast, template, buffer); return buffer.toString(); @@ -12482,7 +12469,7 @@ class _Renderer_PackageTemplateData extends RendererBase { } } -String renderIndex(PackageTemplateData context, Template template) { +String renderSearchPage(PackageTemplateData context, Template template) { var buffer = StringBuffer(); _render_PackageTemplateData(context, template.ast, template, buffer); return buffer.toString(); @@ -16109,17 +16096,6 @@ const _invisibleGetters = { 'typeParameters', 'typeParameters2' }, - 'Expression': { - 'correspondingParameter', - 'hashCode', - 'inConstantContext', - 'isAssignable', - 'precedence', - 'runtimeType', - 'staticParameterElement', - 'staticType', - 'unParenthesized' - }, 'ExtensionElement': { 'augmentation', 'augmentationTarget', @@ -16195,7 +16171,6 @@ const _invisibleGetters = { 'arrow', 'characterLocation', 'comboAttributes', - 'constantInitializer', 'constantValue', 'constantValueBase', 'constantValueTruncated', diff --git a/lib/src/model/getter_setter_combo.dart b/lib/src/model/getter_setter_combo.dart index 3c0950e20b..ef84092a9c 100644 --- a/lib/src/model/getter_setter_combo.dart +++ b/lib/src/model/getter_setter_combo.dart @@ -6,7 +6,6 @@ import 'dart:convert'; import 'package:analyzer/dart/ast/ast.dart' show Expression, InstanceCreationExpression; -import 'package:analyzer/dart/element/element.dart'; import 'package:analyzer/source/line_info.dart'; // ignore: implementation_imports import 'package:analyzer/src/dart/element/element.dart' @@ -67,18 +66,20 @@ mixin GetterSetterCombo on ModelElement { /// Whether this has a constant value which should be displayed. bool get hasConstantValueForDisplay => false; - Expression? get constantInitializer => + late final Expression? _constantInitializer = (element as ConstVariableElement).constantInitializer; String linkifyConstantValue(String original) { - if (constantInitializer is! InstanceCreationExpression) return original; - var creationExpression = constantInitializer as InstanceCreationExpression; - var constructorName = creationExpression.constructorName.toString(); - Element? staticElement = creationExpression.constructorName.staticElement; + if (_constantInitializer is! InstanceCreationExpression) return original; + + var constructorName = _constantInitializer.constructorName.toString(); + var staticElement = _constantInitializer.constructorName.staticElement; if (staticElement == null) return original; + var target = getModelForElement(staticElement) as Constructor; var enclosingElement = target.enclosingElement; if (enclosingElement is! Class) return original; + // TODO(jcollins-g): this logic really should be integrated into // `Constructor`, but that's not trivial because of `linkedName`'s usage. if (enclosingElement.name == target.name) { @@ -114,23 +115,23 @@ mixin GetterSetterCombo on ModelElement { String get constantValueTruncated => linkifyConstantValue(truncateString(constantValueBase, 200)); + /// The base text for this property's constant value as an unlinked String. late final String constantValueBase = () { - final constantInitializer = this.constantInitializer; - if (constantInitializer == null) { + if (_constantInitializer == null) { return ''; } - var initializerString = constantInitializer.toString(); + var initializerString = _constantInitializer.toString(); final self = this; if (self is! EnumField || - constantInitializer is! InstanceCreationExpression) { + _constantInitializer is! InstanceCreationExpression) { return _htmlEscape.convert(initializerString); } initializerString = 'const $initializerString'; - var isImplicitConstructorCall = constantInitializer + var isImplicitConstructorCall = _constantInitializer .constructorName.staticElement?.isDefaultConstructor ?? false; if (isImplicitConstructorCall) {