Skip to content

Commit 2220ded

Browse files
authored
Fix flutter bot problems and a macro issue (#1811)
* Rebuild test package docs and update grind script * Add accessors to allModelElements and verify macros work for enum accessors * Stable docs rebuild
1 parent c9bdc38 commit 2220ded

File tree

247 files changed

+2122
-9
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

247 files changed

+2122
-9
lines changed

lib/src/model.dart

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ abstract class Inheritable implements ModelElement {
127127
@override
128128
ModelElement _buildCanonicalModelElement() {
129129
return canonicalEnclosingElement?.allCanonicalModelElements
130-
?.firstWhere((m) => m.name == name, orElse: () => null);
130+
?.firstWhere((m) => m.name == name && m.isPropertyAccessor == isPropertyAccessor, orElse: () => null);
131131
}
132132

133133
Class get canonicalEnclosingElement {
@@ -621,12 +621,14 @@ class Class extends ModelElement
621621
}
622622

623623
Iterable<Accessor> get allAccessors {
624-
return allInstanceProperties.expand((f) {
625-
List<Accessor> getterSetters = [];
626-
if (f.hasGetter) getterSetters.add(f.getter);
627-
if (f.hasSetter) getterSetters.add(f.setter);
628-
return getterSetters;
629-
});
624+
return []
625+
..addAll(allInstanceProperties.expand((f) {
626+
List<Accessor> getterSetters = [];
627+
if (f.hasGetter) getterSetters.add(f.getter);
628+
if (f.hasSetter) getterSetters.add(f.setter);
629+
return getterSetters;
630+
}))
631+
..addAll(constants.map<Accessor>((c) => c.getter));
630632
}
631633

632634
Iterable<Field> get allPublicInstanceProperties =>
@@ -2542,6 +2544,11 @@ class Library extends ModelElement with Categorization, TopLevelContainer {
25422544
results.add(c);
25432545
});
25442546

2547+
library.enums.forEach((e) {
2548+
results.addAll(e.allModelElements);
2549+
results.add(e);
2550+
});
2551+
25452552
_modelElementsMap = new Map<Element, Set<ModelElement>>();
25462553
results.forEach((modelElement) {
25472554
_modelElementsMap.putIfAbsent(modelElement.element, () => new Set());
@@ -4652,7 +4659,7 @@ class PackageGraph {
46524659
final PackageWarningOptions _packageWarningOptions;
46534660
PackageWarningCounter _packageWarningCounter;
46544661

4655-
/// All ModelElements constructed for this package; a superset of allModelElements.
4662+
/// All ModelElements constructed for this package; a superset of [allModelElements].
46564663
final Map<Tuple3<Element, Library, Class>, ModelElement>
46574664
_allConstructedModelElements = new Map();
46584665

test/compare_output_test.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ void main() {
8585
}
8686
// This must be synced with ../tool/grind.dart's updateTestPackageDocs().
8787
var args = <String>[
88+
'--enable-asserts',
8889
dartdocBin,
8990
'--auto-include-dependencies',
9091
'--example-path-prefix',

test/model_test.dart

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,7 +695,9 @@ void main() {
695695

696696
group('Macros', () {
697697
Class dog;
698+
Enum MacrosFromAccessors;
698699
Method withMacro, withMacro2, withPrivateMacro, withUndefinedMacro;
700+
EnumField macroReferencedHere;
699701

700702
setUp(() {
701703
dog = exLibrary.classes.firstWhere((c) => c.name == 'Dog');
@@ -707,7 +709,12 @@ void main() {
707709
.firstWhere((m) => m.name == 'withPrivateMacro');
708710
withUndefinedMacro = dog.allInstanceMethods
709711
.firstWhere((m) => m.name == 'withUndefinedMacro');
710-
packageGraph.allLocalModelElements.forEach((m) => m.documentation);
712+
MacrosFromAccessors = fakeLibrary.enums.firstWhere((e) => e.name == 'MacrosFromAccessors');
713+
macroReferencedHere = MacrosFromAccessors.publicConstants.firstWhere((e) => e.name == 'macroReferencedHere');
714+
});
715+
716+
test("renders a macro defined within a enum", () {
717+
expect(macroReferencedHere.documentationAsHtml, contains('This is a macro defined in an Enum accessor.'));
711718
});
712719

713720
test("renders a macro within the same comment where it's defined", () {
@@ -725,6 +732,8 @@ void main() {
725732
});
726733

727734
test("a warning is generated for unknown macros", () {
735+
// Retrieve documentation first to generate the warning.
736+
withUndefinedMacro.documentation;
728737
expect(
729738
packageGraph.packageWarningCounter.hasWarning(withUndefinedMacro,
730739
PackageWarning.unknownMacro, 'ThatDoesNotExist'),

testing/test_package/lib/fake.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -852,6 +852,19 @@ class BaseForDocComments {
852852
String operator [](String key) => "${key}'s value";
853853
}
854854

855+
/// Verify that we can define and use macros inside accessors.
856+
enum MacrosFromAccessors {
857+
/// Define a macro.
858+
/// {@template test_package_docs:accessorMacro}
859+
/// This is a macro defined in an Enum accessor.
860+
/// {@endtemplate}
861+
macroDefinedHere,
862+
863+
/// Reference a macro.
864+
/// {@macro test_package_docs:accessorMacro}
865+
macroReferencedHere,
866+
}
867+
855868
/// Testing if docs for inherited method are correct.
856869
/// {@category NotSoExcellent}
857870
class SubForDocComments extends BaseForDocComments {

testing/test_package_docs/fake/ABaseClass-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testing/test_package_docs/fake/AClassUsingASuperMixin-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testing/test_package_docs/fake/AClassUsingNewStyleMixin-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testing/test_package_docs/fake/AClassWithFancyProperties-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testing/test_package_docs/fake/AMixinCallingSuper-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

testing/test_package_docs/fake/ATypeTakingClass-class.html

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)