Skip to content

Commit 0ff7eba

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 2760d25 commit 0ff7eba

22 files changed

+286
-507
lines changed

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();

lib/src/generator/generator_frontend.dart

+42-50
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,14 @@ class GeneratorFrontEnd implements Generator {
7474
if (multiplePackages) {
7575
logInfo('Generating docs for package ${package.name}...');
7676
}
77-
for (var category in filterNonDocumented(package.categories)) {
77+
for (var category in package.categories.whereDocumented) {
7878
logInfo('Generating docs for category ${category.name} from '
7979
'${category.package.fullyQualifiedName}...');
8080
indexAccumulator.add(category);
8181
_generatorBackend.generateCategory(packageGraph, category);
8282
}
8383

84-
for (var lib in filterNonDocumented(package.libraries)) {
84+
for (var lib in package.libraries.whereDocumented) {
8585
if (!multiplePackages) {
8686
logInfo('Generating docs for library ${lib.breadcrumbName} from '
8787
'${lib.element.source.uri}...');
@@ -92,104 +92,101 @@ class GeneratorFrontEnd implements Generator {
9292
indexAccumulator.add(lib);
9393
_generatorBackend.generateLibrary(packageGraph, lib);
9494

95-
for (var clazz in filterNonDocumented(lib.allClasses)) {
95+
for (var clazz in lib.allClasses.whereDocumented) {
9696
indexAccumulator.add(clazz);
9797
_generatorBackend.generateClass(packageGraph, lib, clazz);
9898

99-
for (var constructor in filterNonDocumented(clazz.constructors)) {
99+
for (var constructor in clazz.constructors.whereDocumented) {
100100
if (!constructor.isCanonical) continue;
101101

102102
indexAccumulator.add(constructor);
103103
_generatorBackend.generateConstructor(
104104
packageGraph, lib, clazz, constructor);
105105
}
106106

107-
for (var constant in filterNonDocumented(clazz.constantFields)) {
107+
for (var constant in clazz.constantFields.whereDocumented) {
108108
if (!constant.isCanonical) continue;
109109

110110
indexAccumulator.add(constant);
111111
_generatorBackend.generateProperty(
112112
packageGraph, lib, clazz, constant);
113113
}
114114

115-
for (var property
116-
in filterNonDocumented(clazz.variableStaticFields)) {
115+
for (var property in clazz.variableStaticFields.whereDocumented) {
117116
if (!property.isCanonical) continue;
118117

119118
indexAccumulator.add(property);
120119
_generatorBackend.generateProperty(
121120
packageGraph, lib, clazz, property);
122121
}
123122

124-
for (var property in filterNonDocumented(clazz.instanceFields)) {
123+
for (var property in clazz.instanceFields.whereDocumented) {
125124
if (!property.isCanonical) continue;
126125

127126
indexAccumulator.add(property);
128127
_generatorBackend.generateProperty(
129128
packageGraph, lib, clazz, property);
130129
}
131130

132-
for (var method in filterNonDocumented(clazz.instanceMethods)) {
131+
for (var method in clazz.instanceMethods.whereDocumented) {
133132
if (!method.isCanonical) continue;
134133

135134
indexAccumulator.add(method);
136135
_generatorBackend.generateMethod(packageGraph, lib, clazz, method);
137136
}
138137

139-
for (var operator in filterNonDocumented(clazz.instanceOperators)) {
138+
for (var operator in clazz.instanceOperators.whereDocumented) {
140139
if (!operator.isCanonical) continue;
141140

142141
indexAccumulator.add(operator);
143142
_generatorBackend.generateMethod(
144143
packageGraph, lib, clazz, operator);
145144
}
146145

147-
for (var method in filterNonDocumented(clazz.staticMethods)) {
146+
for (var method in clazz.staticMethods.whereDocumented) {
148147
if (!method.isCanonical) continue;
149148

150149
indexAccumulator.add(method);
151150
_generatorBackend.generateMethod(packageGraph, lib, clazz, method);
152151
}
153152
}
154153

155-
for (var extension in filterNonDocumented(lib.extensions)) {
154+
for (var extension in lib.extensions.whereDocumented) {
156155
indexAccumulator.add(extension);
157156
_generatorBackend.generateExtension(packageGraph, lib, extension);
158157

159-
for (var constant in filterNonDocumented(extension.constantFields)) {
158+
for (var constant in extension.constantFields.whereDocumented) {
160159
indexAccumulator.add(constant);
161160
_generatorBackend.generateProperty(
162161
packageGraph, lib, extension, constant);
163162
}
164163

165-
for (var method
166-
in filterNonDocumented(extension.publicInstanceMethods)) {
164+
for (var method in extension.instanceMethods.whereDocumented) {
167165
indexAccumulator.add(method);
168166
_generatorBackend.generateMethod(
169167
packageGraph, lib, extension, method);
170168
}
171169

172-
for (var operator
173-
in filterNonDocumented(extension.instanceOperators)) {
170+
for (var operator in extension.instanceOperators.whereDocumented) {
174171
indexAccumulator.add(operator);
175172
_generatorBackend.generateMethod(
176173
packageGraph, lib, extension, operator);
177174
}
178175

179-
for (var property in filterNonDocumented(extension.instanceFields)) {
176+
for (var property in extension.instanceFields.whereDocumented) {
180177
indexAccumulator.add(property);
181178
_generatorBackend.generateProperty(
182179
packageGraph, lib, extension, property);
183180
}
184181

185182
for (var staticField
186-
in filterNonDocumented(extension.variableStaticFields)) {
183+
in extension.variableStaticFields.whereDocumented) {
187184
indexAccumulator.add(staticField);
188185
_generatorBackend.generateProperty(
189186
packageGraph, lib, extension, staticField);
190187
}
191188

192-
for (var method in filterNonDocumented(extension.staticMethods)) {
189+
for (var method in extension.staticMethods.whereDocumented) {
193190
if (!method.isCanonical) continue;
194191

195192
indexAccumulator.add(method);
@@ -198,56 +195,52 @@ class GeneratorFrontEnd implements Generator {
198195
}
199196
}
200197

201-
for (var extensionType in filterNonDocumented(lib.extensionTypes)) {
198+
for (var extensionType in lib.extensionTypes.whereDocumented) {
202199
indexAccumulator.add(extensionType);
203200
_generatorBackend.generateExtensionType(
204201
packageGraph, lib, extensionType);
205202

206-
for (var constructor
207-
in filterNonDocumented(extensionType.constructors)) {
203+
for (var constructor in extensionType.constructors.whereDocumented) {
208204
if (!constructor.isCanonical) continue;
209205

210206
indexAccumulator.add(constructor);
211207
_generatorBackend.generateConstructor(
212208
packageGraph, lib, extensionType, constructor);
213209
}
214210

215-
for (var constant
216-
in filterNonDocumented(extensionType.constantFields)) {
211+
for (var constant in extensionType.constantFields.whereDocumented) {
217212
indexAccumulator.add(constant);
218213
_generatorBackend.generateProperty(
219214
packageGraph, lib, extensionType, constant);
220215
}
221216

222-
for (var method
223-
in filterNonDocumented(extensionType.publicInstanceMethods)) {
217+
for (var method in extensionType.instanceMethods.whereDocumented) {
224218
indexAccumulator.add(method);
225219
_generatorBackend.generateMethod(
226220
packageGraph, lib, extensionType, method);
227221
}
228222

229223
for (var operator
230-
in filterNonDocumented(extensionType.instanceOperators)) {
224+
in extensionType.instanceOperators.whereDocumented) {
231225
indexAccumulator.add(operator);
232226
_generatorBackend.generateMethod(
233227
packageGraph, lib, extensionType, operator);
234228
}
235229

236-
for (var property
237-
in filterNonDocumented(extensionType.instanceFields)) {
230+
for (var property in extensionType.instanceFields.whereDocumented) {
238231
indexAccumulator.add(property);
239232
_generatorBackend.generateProperty(
240233
packageGraph, lib, extensionType, property);
241234
}
242235

243236
for (var staticField
244-
in filterNonDocumented(extensionType.variableStaticFields)) {
237+
in extensionType.variableStaticFields.whereDocumented) {
245238
indexAccumulator.add(staticField);
246239
_generatorBackend.generateProperty(
247240
packageGraph, lib, extensionType, staticField);
248241
}
249242

250-
for (var method in filterNonDocumented(extensionType.staticMethods)) {
243+
for (var method in extensionType.staticMethods.whereDocumented) {
251244
if (!method.isCanonical) continue;
252245

253246
indexAccumulator.add(method);
@@ -256,62 +249,61 @@ class GeneratorFrontEnd implements Generator {
256249
}
257250
}
258251

259-
for (var mixin in filterNonDocumented(lib.mixins)) {
252+
for (var mixin in lib.mixins.whereDocumented) {
260253
indexAccumulator.add(mixin);
261254
_generatorBackend.generateMixin(packageGraph, lib, mixin);
262255

263-
for (var constant in filterNonDocumented(mixin.constantFields)) {
256+
for (var constant in mixin.constantFields.whereDocumented) {
264257
if (!constant.isCanonical) continue;
265258
indexAccumulator.add(constant);
266259
_generatorBackend.generateProperty(
267260
packageGraph, lib, mixin, constant);
268261
}
269262

270-
for (var property
271-
in filterNonDocumented(mixin.variableStaticFields)) {
263+
for (var property in mixin.variableStaticFields.whereDocumented) {
272264
if (!property.isCanonical) continue;
273265

274266
indexAccumulator.add(property);
275267
_generatorBackend.generateProperty(
276268
packageGraph, lib, mixin, property);
277269
}
278270

279-
for (var property in filterNonDocumented(mixin.instanceFields)) {
271+
for (var property in mixin.instanceFields.whereDocumented) {
280272
if (!property.isCanonical) continue;
281273

282274
indexAccumulator.add(property);
283275
_generatorBackend.generateProperty(
284276
packageGraph, lib, mixin, property);
285277
}
286278

287-
for (var method in filterNonDocumented(mixin.instanceMethods)) {
279+
for (var method in mixin.instanceMethods.whereDocumented) {
288280
if (!method.isCanonical) continue;
289281

290282
indexAccumulator.add(method);
291283
_generatorBackend.generateMethod(packageGraph, lib, mixin, method);
292284
}
293285

294-
for (var operator in filterNonDocumented(mixin.instanceOperators)) {
286+
for (var operator in mixin.instanceOperators.whereDocumented) {
295287
if (!operator.isCanonical) continue;
296288

297289
indexAccumulator.add(operator);
298290
_generatorBackend.generateMethod(
299291
packageGraph, lib, mixin, operator);
300292
}
301293

302-
for (var method in filterNonDocumented(mixin.staticMethods)) {
294+
for (var method in mixin.staticMethods.whereDocumented) {
303295
if (!method.isCanonical) continue;
304296

305297
indexAccumulator.add(method);
306298
_generatorBackend.generateMethod(packageGraph, lib, mixin, method);
307299
}
308300
}
309301

310-
for (var enum_ in filterNonDocumented(lib.enums)) {
302+
for (var enum_ in lib.enums.whereDocumented) {
311303
indexAccumulator.add(enum_);
312304
_generatorBackend.generateEnum(packageGraph, lib, enum_);
313305

314-
for (var constant in filterNonDocumented(enum_.constantFields)) {
306+
for (var constant in enum_.constantFields.whereDocumented) {
315307
if (constant is EnumField) {
316308
// Enum values don't get their own page; just any additional
317309
// constants.
@@ -324,48 +316,48 @@ class GeneratorFrontEnd implements Generator {
324316
packageGraph, lib, enum_, constant);
325317
}
326318

327-
for (var constructor in filterNonDocumented(enum_.constructors)) {
319+
for (var constructor in enum_.constructors.whereDocumented) {
328320
if (!constructor.isCanonical) continue;
329321

330322
indexAccumulator.add(constructor);
331323
_generatorBackend.generateConstructor(
332324
packageGraph, lib, enum_, constructor);
333325
}
334326

335-
for (var property in filterNonDocumented(enum_.instanceFields)) {
327+
for (var property in enum_.instanceFields.whereDocumented) {
336328
indexAccumulator.add(property);
337329
_generatorBackend.generateProperty(
338330
packageGraph, lib, enum_, property);
339331
}
340-
for (var operator in filterNonDocumented(enum_.instanceOperators)) {
332+
for (var operator in enum_.instanceOperators.whereDocumented) {
341333
indexAccumulator.add(operator);
342334
_generatorBackend.generateMethod(
343335
packageGraph, lib, enum_, operator);
344336
}
345-
for (var method in filterNonDocumented(enum_.instanceMethods)) {
337+
for (var method in enum_.instanceMethods.whereDocumented) {
346338
indexAccumulator.add(method);
347339
_generatorBackend.generateMethod(packageGraph, lib, enum_, method);
348340
}
349341
}
350342

351-
for (var constant in filterNonDocumented(lib.constants)) {
343+
for (var constant in lib.constants.whereDocumented) {
352344
indexAccumulator.add(constant);
353345
_generatorBackend.generateTopLevelProperty(
354346
packageGraph, lib, constant);
355347
}
356348

357-
for (var property in filterNonDocumented(lib.properties)) {
349+
for (var property in lib.properties.whereDocumented) {
358350
indexAccumulator.add(property);
359351
_generatorBackend.generateTopLevelProperty(
360352
packageGraph, lib, property);
361353
}
362354

363-
for (var function in filterNonDocumented(lib.functions)) {
355+
for (var function in lib.functions.whereDocumented) {
364356
indexAccumulator.add(function);
365357
_generatorBackend.generateFunction(packageGraph, lib, function);
366358
}
367359

368-
for (var typeDef in filterNonDocumented(lib.typedefs)) {
360+
for (var typeDef in lib.typedefs.whereDocumented) {
369361
indexAccumulator.add(typeDef);
370362
_generatorBackend.generateTypeDef(packageGraph, lib, typeDef);
371363
}

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)