Skip to content

Commit b182058

Browse files
committed
Move the filterNonDocumented and filterNonPublic functions as extension getters
`filterNonPublic` becomes an extension getter, `wherePublic`, and `filterNonDocumented` becomes an extension getter, `whereDocumented`. Nameable now implements Privacy. Privacy is now an abstract interface class. Changing all the call sites highlights a number of ModelElement getters that are superfluous. For example, `Container.publicInstanceMethods`. This was a getter that now boils down to `instanceMethods.wherePublic`, and it really is unneccessary to keep this; there are many such methods that are removed here: * Container: `publicInstanceMethods`, `publicInstanceOperators`, `publicInstanceFields`, `publicConstantFields`, * InheritingContainer: `publicSuperChain`, `publicInheritedFields`, `publicInheritedMethods`, * LibraryContainer: `publicLibraries`, * Package: `documentedCategories`, * PackageGraph: `documentedExtensions`, * TopLevelContainer: `publicClasses`, `publicExtensions`, `publicExtensionTypes`, `publicConstants`, `publicEnums`, `_publicExceptions`, `publicFunctions`, `publicMixins`, `publicProperties`, `publicTypedefs`. Additionally, this change highlights some small inefficiency in some `hasX` methods. For example, `hasPublicInstanceMethods` used to enumerate all of the public instance methods, then ask if the list is empty. Now we can ask if `any` of the `instanceMethods` are `public`. * Container: `hasPublicInstanceMethods`, `hasPublicInstanceOperators`, `hasPublicInstanceFields`, `hasPublicConstantFields`, `hasPublicVariableStaticFields`, `hasPublicStaticMethods`, `hasPublicEnumValues`, * InheritingContainer: `hasPublicInheritedMethods`, `hasPublicSuperChainReversed`, * MixedInTypes: `hasPublicMixedInTypes`, * LibraryContainer: `hasPublicLibraries`, * Package: `hasDocumentedCategories`, * TopLevelContainer: `hasPublicClasses`, `hasPublicExtensions`, `hasPublicExtensionTypes`, `hasPublicConstants`, `hasPublicEnums`, `hasPublicExceptions`, `hasPublicFunctions`,`hasPublicMixins`, `hasPublicProperties`, `hasPublicTypedefs`. Because the field `InheritingContaier.publicSuperChain` is removed, I change `superChain` from a getter to a field, sort of the point of caching.
1 parent 0de8aff commit b182058

22 files changed

+262
-476
lines changed

Diff for: lib/src/generator/empty_generator.dart

+5-4
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,14 @@ class EmptyGenerator implements Generator {
1818
packageGraph.defaultPackage,
1919
...packageGraph.localPackages
2020
}) {
21-
for (var category in filterNonDocumented(package.categories)) {
21+
for (var category in package.categories.whereDocumented) {
2222
logProgress(category.documentationAsHtml);
2323
}
2424

25-
for (var lib in filterNonDocumented(package.libraries)) {
26-
filterNonDocumented(lib.allModelElements)
27-
.forEach((m) => logProgress(m.documentationAsHtml));
25+
for (var lib in package.libraries.whereDocumented) {
26+
for (var e in lib.allModelElements.whereDocumented) {
27+
logProgress(e.documentationAsHtml);
28+
}
2829
}
2930
}
3031
return Future.value();

Diff for: lib/src/generator/generator_frontend.dart

+18-19
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ class GeneratorFrontEnd implements Generator {
7979
var multiplePackages = packageGraph.localPackages.length > 1;
8080

8181
void generateConstants(Container container) {
82-
for (var constant in filterNonDocumented(container.constantFields)) {
82+
for (var constant in container.constantFields.whereDocumented) {
8383
if (!constant.isCanonical) continue;
8484
indexAccumulator.add(constant);
8585
_generatorBackend.generateProperty(
@@ -88,7 +88,7 @@ class GeneratorFrontEnd implements Generator {
8888
}
8989

9090
void generateConstructors(Constructable constructable) {
91-
for (var constructor in filterNonDocumented(constructable.constructors)) {
91+
for (var constructor in constructable.constructors.whereDocumented) {
9292
if (!constructor.isCanonical) continue;
9393
indexAccumulator.add(constructor);
9494
_generatorBackend.generateConstructor(
@@ -97,7 +97,7 @@ class GeneratorFrontEnd implements Generator {
9797
}
9898

9999
void generateInstanceMethods(Container container) {
100-
for (var method in filterNonDocumented(container.instanceMethods)) {
100+
for (var method in container.instanceMethods.whereDocumented) {
101101
if (!method.isCanonical) continue;
102102
indexAccumulator.add(method);
103103
_generatorBackend.generateMethod(
@@ -106,7 +106,7 @@ class GeneratorFrontEnd implements Generator {
106106
}
107107

108108
void generateInstanceOperators(Container container) {
109-
for (var operator in filterNonDocumented(container.instanceOperators)) {
109+
for (var operator in container.instanceOperators.whereDocumented) {
110110
if (!operator.isCanonical) continue;
111111
indexAccumulator.add(operator);
112112
_generatorBackend.generateMethod(
@@ -115,7 +115,7 @@ class GeneratorFrontEnd implements Generator {
115115
}
116116

117117
void generateInstanceProperty(Container container) {
118-
for (var property in filterNonDocumented(container.instanceFields)) {
118+
for (var property in container.instanceFields.whereDocumented) {
119119
if (!property.isCanonical) continue;
120120
indexAccumulator.add(property);
121121
_generatorBackend.generateProperty(
@@ -124,7 +124,7 @@ class GeneratorFrontEnd implements Generator {
124124
}
125125

126126
void generateStaticMethods(Container container) {
127-
for (var method in filterNonDocumented(container.staticMethods)) {
127+
for (var method in container.staticMethods.whereDocumented) {
128128
if (!method.isCanonical) continue;
129129
indexAccumulator.add(method);
130130
_generatorBackend.generateMethod(
@@ -133,8 +133,7 @@ class GeneratorFrontEnd implements Generator {
133133
}
134134

135135
void generateStaticProperty(Container container) {
136-
for (var property
137-
in filterNonDocumented(container.variableStaticFields)) {
136+
for (var property in container.variableStaticFields.whereDocumented) {
138137
if (!property.isCanonical) continue;
139138
indexAccumulator.add(property);
140139
_generatorBackend.generateProperty(
@@ -146,14 +145,14 @@ class GeneratorFrontEnd implements Generator {
146145
if (multiplePackages) {
147146
logInfo('Generating docs for package ${package.name}...');
148147
}
149-
for (var category in filterNonDocumented(package.categories)) {
148+
for (var category in package.categories.whereDocumented) {
150149
logInfo('Generating docs for category ${category.name} from '
151150
'${category.package.fullyQualifiedName}...');
152151
indexAccumulator.add(category);
153152
_generatorBackend.generateCategory(packageGraph, category);
154153
}
155154

156-
for (var lib in filterNonDocumented(package.libraries)) {
155+
for (var lib in package.libraries.whereDocumented) {
157156
if (!multiplePackages) {
158157
logInfo('Generating docs for library ${lib.breadcrumbName} from '
159158
'${lib.element.source.uri}...');
@@ -164,7 +163,7 @@ class GeneratorFrontEnd implements Generator {
164163
indexAccumulator.add(lib);
165164
_generatorBackend.generateLibrary(packageGraph, lib);
166165

167-
for (var class_ in filterNonDocumented(lib.allClasses)) {
166+
for (var class_ in lib.allClasses.whereDocumented) {
168167
indexAccumulator.add(class_);
169168
_generatorBackend.generateClass(packageGraph, lib, class_);
170169

@@ -177,7 +176,7 @@ class GeneratorFrontEnd implements Generator {
177176
generateStaticProperty(class_);
178177
}
179178

180-
for (var extension in filterNonDocumented(lib.extensions)) {
179+
for (var extension in lib.extensions.whereDocumented) {
181180
indexAccumulator.add(extension);
182181
_generatorBackend.generateExtension(packageGraph, lib, extension);
183182

@@ -189,7 +188,7 @@ class GeneratorFrontEnd implements Generator {
189188
generateStaticProperty(extension);
190189
}
191190

192-
for (var extensionType in filterNonDocumented(lib.extensionTypes)) {
191+
for (var extensionType in lib.extensionTypes.whereDocumented) {
193192
indexAccumulator.add(extensionType);
194193
_generatorBackend.generateExtensionType(
195194
packageGraph, lib, extensionType);
@@ -203,7 +202,7 @@ class GeneratorFrontEnd implements Generator {
203202
generateStaticProperty(extensionType);
204203
}
205204

206-
for (var mixin in filterNonDocumented(lib.mixins)) {
205+
for (var mixin in lib.mixins.whereDocumented) {
207206
indexAccumulator.add(mixin);
208207
_generatorBackend.generateMixin(packageGraph, lib, mixin);
209208

@@ -215,7 +214,7 @@ class GeneratorFrontEnd implements Generator {
215214
generateStaticProperty(mixin);
216215
}
217216

218-
for (var enum_ in filterNonDocumented(lib.enums)) {
217+
for (var enum_ in lib.enums.whereDocumented) {
219218
indexAccumulator.add(enum_);
220219
_generatorBackend.generateEnum(packageGraph, lib, enum_);
221220

@@ -228,24 +227,24 @@ class GeneratorFrontEnd implements Generator {
228227
generateStaticProperty(enum_);
229228
}
230229

231-
for (var constant in filterNonDocumented(lib.constants)) {
230+
for (var constant in lib.constants.whereDocumented) {
232231
indexAccumulator.add(constant);
233232
_generatorBackend.generateTopLevelProperty(
234233
packageGraph, lib, constant);
235234
}
236235

237-
for (var property in filterNonDocumented(lib.properties)) {
236+
for (var property in lib.properties.whereDocumented) {
238237
indexAccumulator.add(property);
239238
_generatorBackend.generateTopLevelProperty(
240239
packageGraph, lib, property);
241240
}
242241

243-
for (var function in filterNonDocumented(lib.functions)) {
242+
for (var function in lib.functions.whereDocumented) {
244243
indexAccumulator.add(function);
245244
_generatorBackend.generateFunction(packageGraph, lib, function);
246245
}
247246

248-
for (var typeDef in filterNonDocumented(lib.typedefs)) {
247+
for (var typeDef in lib.typedefs.whereDocumented) {
249248
indexAccumulator.add(typeDef);
250249
_generatorBackend.generateTypeDef(packageGraph, lib, typeDef);
251250
}

Diff for: lib/src/generator/templates.aot_renderers_for_html.dart

+1-1
Original file line numberDiff line numberDiff line change
@@ -1584,7 +1584,7 @@ String renderMixin(MixinTemplateData context0) {
15841584
<h2>Properties</h2>
15851585
15861586
<dl class="properties">''');
1587-
var context7 = context2.publicInstanceFields;
1587+
var context7 = context2.publicInstanceFieldsSorted;
15881588
for (var context8 in context7) {
15891589
buffer.write('\n ');
15901590
buffer.write(_renderMixin_partial_property_8(context8));

0 commit comments

Comments
 (0)