@@ -19,7 +19,6 @@ import 'package:analyzer/source/package_map_resolver.dart';
19
19
import 'package:analyzer/source/sdk_ext.dart' ;
20
20
// TODO(jcollins-g): Stop using internal analyzer structures somehow.
21
21
import 'package:analyzer/src/context/builder.dart' ;
22
- import 'package:analyzer/src/dart/constant/value.dart' ;
23
22
import 'package:analyzer/src/dart/element/element.dart' ;
24
23
import 'package:analyzer/src/dart/sdk/sdk.dart' ;
25
24
import 'package:analyzer/src/generated/engine.dart' ;
@@ -1565,33 +1564,33 @@ abstract class GetterSetterCombo implements ModelElement {
1565
1564
1566
1565
Expression get constantInitializer => (element as ConstVariableElement ).constantInitializer;
1567
1566
1568
- String linkifyConstantValue (String constructorName, Element staticElement, String original) {
1567
+ String linkifyConstantValue (String original) {
1569
1568
if (constantInitializer is ! InstanceCreationExpression ) return original;
1570
1569
String constructorName = (constantInitializer as InstanceCreationExpression ).constructorName.toString ();
1571
1570
Element staticElement = (constantInitializer as InstanceCreationExpression ).staticElement;
1572
1571
Constructor target = new ModelElement .fromElement (staticElement, package);
1573
1572
Class targetClass = target.enclosingElement;
1573
+ // TODO(jcollins-g): this logic really should be integrated into Constructor,
1574
+ // but that's not trivial because of linkedName's usage.
1575
+ if (targetClass.name == target.name) {
1576
+ return original.replaceAll (constructorName, "${target .linkedName }" );
1577
+ }
1574
1578
return original.replaceAll (constructorName, "${targetClass .linkedName }.${target .linkedName }" );
1575
1579
}
1576
1580
1577
1581
String _constantValueBase;
1578
1582
String get constantValueBase {
1579
1583
if (_constantValueBase == null ) {
1580
- if (constantInitializer != null ) {
1581
- _constantValueBase = const HtmlEscape (HtmlEscapeMode .UNKNOWN ).convert (constantInitializer.toString ());
1582
- if (constantInitializer is InstanceCreationExpression ) {
1583
- _constantValueBase = linkifyConstantValue ((constantInitializer as InstanceCreationExpression ).constructorName.toString (), (constantInitializer as InstanceCreationExpression ).staticElement, _constantValueBase);
1584
- }
1585
- if (_constantValueBase.contains ('Stuff' ))
1586
- 1 + 1 ;
1587
- }
1584
+ _constantValueBase = constantInitializer? .toString ();
1585
+ if (_constantValueBase == null ) _constantValueBase = '' ;
1586
+ _constantValueBase =
1587
+ const HtmlEscape (HtmlEscapeMode .UNKNOWN ).convert (_constantValueBase);
1588
1588
}
1589
1589
return _constantValueBase;
1590
1590
}
1591
1591
1592
- String get constantValue => constantValueBase;
1593
-
1594
- String get constantValueTruncated => truncateString (constantValueBase, 200 );
1592
+ String get constantValue => linkifyConstantValue (constantValueBase);
1593
+ String get constantValueTruncated => linkifyConstantValue (truncateString (constantValueBase, 200 ));
1595
1594
1596
1595
/// Returns true if both accessors are synthetic.
1597
1596
bool get hasSyntheticAccessors {
0 commit comments