@@ -96,35 +96,6 @@ class Library extends ModelElement
96
96
97
97
bool get isInSdk => element.isInSdk;
98
98
99
- /// [allModelElements] resolved to their original names.
100
- ///
101
- /// A collection of [ModelElement.fullyQualifiedName] s for [ModelElement] s
102
- /// documented with this library, but these ModelElements and names correspond
103
- /// to the defining library where each originally came from with respect
104
- /// to inheritance and reexporting. Most useful for error reporting.
105
- late final List <String > allOriginalModelElementNames =
106
- allModelElements.map ((e) {
107
- if (e is GetterSetterCombo ) {
108
- Accessor ? getter;
109
- Accessor ? setter;
110
- var elementGetter = e.getter;
111
- if (elementGetter != null ) {
112
- getter = getModelForElement (elementGetter.element) as Accessor ;
113
- }
114
- var elementSetter = e.setter;
115
- if (elementSetter != null ) {
116
- setter = getModelForElement (elementSetter.element) as Accessor ;
117
- }
118
- return getModelForPropertyInducingElement (
119
- e.element as PropertyInducingElement ,
120
- getModelForElement (e.element.library! ) as Library ,
121
- getter: getter,
122
- setter: setter)
123
- .fullyQualifiedName;
124
- }
125
- return getModelForElement (e.element).fullyQualifiedName;
126
- }).toList (growable: false );
127
-
128
99
@override
129
100
CharacterLocation ? get characterLocation {
130
101
if (element.nameOffset == - 1 ) {
@@ -455,8 +426,9 @@ class Library extends ModelElement
455
426
String buildDocumentationAddition (String rawDocs) {
456
427
rawDocs = super .buildDocumentationAddition (rawDocs);
457
428
var notFoundInAllModelElements = < String > {};
429
+ var elementNames = _allOriginalModelElementNames;
458
430
for (var elementName in canonicalFor) {
459
- if (! allOriginalModelElementNames .contains (elementName)) {
431
+ if (! elementNames .contains (elementName)) {
460
432
notFoundInAllModelElements.add (elementName);
461
433
}
462
434
}
@@ -467,4 +439,45 @@ class Library extends ModelElement
467
439
// canonicalFor?
468
440
return rawDocs;
469
441
}
442
+
443
+ /// [allModelElements] resolved to their original names.
444
+ ///
445
+ /// A collection of [ModelElement.fullyQualifiedName] s for [ModelElement] s
446
+ /// documented with this library, but these ModelElements and names correspond
447
+ /// to the defining library where each originally came from with respect
448
+ /// to inheritance and re-exporting. Used for error reporting.
449
+ late final Set <String > _allOriginalModelElementNames = () {
450
+ // Instead of using `allModelElements`, which includes deeper elements like
451
+ // methods on classes, gather up only the library's immediate members.
452
+ var libraryMembers = [
453
+ ...library.extensions,
454
+ ...library.extensionTypes,
455
+ ...library.allClasses,
456
+ ...library.enums,
457
+ ...library.mixins,
458
+ ...library.constants,
459
+ ...library.functions,
460
+ ...library.properties,
461
+ ...library.typedefs,
462
+ ];
463
+ return libraryMembers.map ((member) {
464
+ if (member is ! GetterSetterCombo ) {
465
+ return getModelForElement (member.element).fullyQualifiedName;
466
+ }
467
+ var getter = switch (member.getter) {
468
+ Accessor accessor => getModelForElement (accessor.element) as Accessor ,
469
+ _ => null ,
470
+ };
471
+ var setter = switch (member.setter) {
472
+ Accessor accessor => getModelForElement (accessor.element) as Accessor ,
473
+ _ => null ,
474
+ };
475
+ return getModelForPropertyInducingElement (
476
+ member.element as PropertyInducingElement ,
477
+ getModelForElement (member.element.library! ) as Library ,
478
+ getter: getter,
479
+ setter: setter,
480
+ ).fullyQualifiedName;
481
+ }).toSet ();
482
+ }();
470
483
}
0 commit comments