@@ -6,7 +6,6 @@ import 'dart:convert';
6
6
7
7
import 'package:analyzer/dart/ast/ast.dart'
8
8
show Expression, InstanceCreationExpression;
9
- import 'package:analyzer/dart/element/element.dart' ;
10
9
import 'package:analyzer/source/line_info.dart' ;
11
10
// ignore: implementation_imports
12
11
import 'package:analyzer/src/dart/element/element.dart'
@@ -67,18 +66,20 @@ mixin GetterSetterCombo on ModelElement {
67
66
/// Whether this has a constant value which should be displayed.
68
67
bool get hasConstantValueForDisplay => false ;
69
68
70
- Expression ? get constantInitializer =>
69
+ late final Expression ? _constantInitializer =
71
70
(element as ConstVariableElement ).constantInitializer;
72
71
73
72
String linkifyConstantValue (String original) {
74
- if (constantInitializer is ! InstanceCreationExpression ) return original;
75
- var creationExpression = constantInitializer as InstanceCreationExpression ;
76
- var constructorName = creationExpression .constructorName.toString ();
77
- Element ? staticElement = creationExpression .constructorName.staticElement;
73
+ if (_constantInitializer is ! InstanceCreationExpression ) return original;
74
+
75
+ var constructorName = _constantInitializer .constructorName.toString ();
76
+ var staticElement = _constantInitializer .constructorName.staticElement;
78
77
if (staticElement == null ) return original;
78
+
79
79
var target = getModelForElement (staticElement) as Constructor ;
80
80
var enclosingElement = target.enclosingElement;
81
81
if (enclosingElement is ! Class ) return original;
82
+
82
83
// TODO(jcollins-g): this logic really should be integrated into
83
84
// `Constructor`, but that's not trivial because of `linkedName`'s usage.
84
85
if (enclosingElement.name == target.name) {
@@ -114,23 +115,23 @@ mixin GetterSetterCombo on ModelElement {
114
115
String get constantValueTruncated =>
115
116
linkifyConstantValue (truncateString (constantValueBase, 200 ));
116
117
118
+ /// The base text for this property's constant value as an unlinked String.
117
119
late final String constantValueBase = () {
118
- final constantInitializer = this .constantInitializer;
119
- if (constantInitializer == null ) {
120
+ if (_constantInitializer == null ) {
120
121
return '' ;
121
122
}
122
123
123
- var initializerString = constantInitializer .toString ();
124
+ var initializerString = _constantInitializer .toString ();
124
125
125
126
final self = this ;
126
127
if (self is ! EnumField ||
127
- constantInitializer is ! InstanceCreationExpression ) {
128
+ _constantInitializer is ! InstanceCreationExpression ) {
128
129
return _htmlEscape.convert (initializerString);
129
130
}
130
131
131
132
initializerString = 'const $initializerString ' ;
132
133
133
- var isImplicitConstructorCall = constantInitializer
134
+ var isImplicitConstructorCall = _constantInitializer
134
135
.constructorName.staticElement? .isDefaultConstructor ??
135
136
false ;
136
137
if (isImplicitConstructorCall) {
0 commit comments