Skip to content

Commit cf146ad

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 e8f3633 commit cf146ad

22 files changed

+286
-507
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

+42-50
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,14 @@ class GeneratorFrontEnd implements Generator {
8181
if (multiplePackages) {
8282
logInfo('Generating docs for package ${package.name}...');
8383
}
84-
for (var category in filterNonDocumented(package.categories)) {
84+
for (var category in package.categories.whereDocumented) {
8585
logInfo('Generating docs for category ${category.name} from '
8686
'${category.package.fullyQualifiedName}...');
8787
indexAccumulator.add(category);
8888
_generatorBackend.generateCategory(packageGraph, category);
8989
}
9090

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

102-
for (var clazz in filterNonDocumented(lib.allClasses)) {
102+
for (var clazz in lib.allClasses.whereDocumented) {
103103
indexAccumulator.add(clazz);
104104
_generatorBackend.generateClass(packageGraph, lib, clazz);
105105

106-
for (var constructor in filterNonDocumented(clazz.constructors)) {
106+
for (var constructor in clazz.constructors.whereDocumented) {
107107
if (!constructor.isCanonical) continue;
108108

109109
indexAccumulator.add(constructor);
110110
_generatorBackend.generateConstructor(
111111
packageGraph, lib, clazz, constructor);
112112
}
113113

114-
for (var constant in filterNonDocumented(clazz.constantFields)) {
114+
for (var constant in clazz.constantFields.whereDocumented) {
115115
if (!constant.isCanonical) continue;
116116

117117
indexAccumulator.add(constant);
118118
_generatorBackend.generateProperty(
119119
packageGraph, lib, clazz, constant);
120120
}
121121

122-
for (var property
123-
in filterNonDocumented(clazz.variableStaticFields)) {
122+
for (var property in clazz.variableStaticFields.whereDocumented) {
124123
if (!property.isCanonical) continue;
125124

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

131-
for (var property in filterNonDocumented(clazz.instanceFields)) {
130+
for (var property in clazz.instanceFields.whereDocumented) {
132131
if (!property.isCanonical) continue;
133132

134133
indexAccumulator.add(property);
135134
_generatorBackend.generateProperty(
136135
packageGraph, lib, clazz, property);
137136
}
138137

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

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

146-
for (var operator in filterNonDocumented(clazz.instanceOperators)) {
145+
for (var operator in clazz.instanceOperators.whereDocumented) {
147146
if (!operator.isCanonical) continue;
148147

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

154-
for (var method in filterNonDocumented(clazz.staticMethods)) {
153+
for (var method in clazz.staticMethods.whereDocumented) {
155154
if (!method.isCanonical) continue;
156155

157156
indexAccumulator.add(method);
158157
_generatorBackend.generateMethod(packageGraph, lib, clazz, method);
159158
}
160159
}
161160

162-
for (var extension in filterNonDocumented(lib.extensions)) {
161+
for (var extension in lib.extensions.whereDocumented) {
163162
indexAccumulator.add(extension);
164163
_generatorBackend.generateExtension(packageGraph, lib, extension);
165164

166-
for (var constant in filterNonDocumented(extension.constantFields)) {
165+
for (var constant in extension.constantFields.whereDocumented) {
167166
indexAccumulator.add(constant);
168167
_generatorBackend.generateProperty(
169168
packageGraph, lib, extension, constant);
170169
}
171170

172-
for (var method
173-
in filterNonDocumented(extension.publicInstanceMethods)) {
171+
for (var method in extension.instanceMethods.whereDocumented) {
174172
indexAccumulator.add(method);
175173
_generatorBackend.generateMethod(
176174
packageGraph, lib, extension, method);
177175
}
178176

179-
for (var operator
180-
in filterNonDocumented(extension.instanceOperators)) {
177+
for (var operator in extension.instanceOperators.whereDocumented) {
181178
indexAccumulator.add(operator);
182179
_generatorBackend.generateMethod(
183180
packageGraph, lib, extension, operator);
184181
}
185182

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

192189
for (var staticField
193-
in filterNonDocumented(extension.variableStaticFields)) {
190+
in extension.variableStaticFields.whereDocumented) {
194191
indexAccumulator.add(staticField);
195192
_generatorBackend.generateProperty(
196193
packageGraph, lib, extension, staticField);
197194
}
198195

199-
for (var method in filterNonDocumented(extension.staticMethods)) {
196+
for (var method in extension.staticMethods.whereDocumented) {
200197
if (!method.isCanonical) continue;
201198

202199
indexAccumulator.add(method);
@@ -205,56 +202,52 @@ class GeneratorFrontEnd implements Generator {
205202
}
206203
}
207204

208-
for (var extensionType in filterNonDocumented(lib.extensionTypes)) {
205+
for (var extensionType in lib.extensionTypes.whereDocumented) {
209206
indexAccumulator.add(extensionType);
210207
_generatorBackend.generateExtensionType(
211208
packageGraph, lib, extensionType);
212209

213-
for (var constructor
214-
in filterNonDocumented(extensionType.constructors)) {
210+
for (var constructor in extensionType.constructors.whereDocumented) {
215211
if (!constructor.isCanonical) continue;
216212

217213
indexAccumulator.add(constructor);
218214
_generatorBackend.generateConstructor(
219215
packageGraph, lib, extensionType, constructor);
220216
}
221217

222-
for (var constant
223-
in filterNonDocumented(extensionType.constantFields)) {
218+
for (var constant in extensionType.constantFields.whereDocumented) {
224219
indexAccumulator.add(constant);
225220
_generatorBackend.generateProperty(
226221
packageGraph, lib, extensionType, constant);
227222
}
228223

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

236230
for (var operator
237-
in filterNonDocumented(extensionType.instanceOperators)) {
231+
in extensionType.instanceOperators.whereDocumented) {
238232
indexAccumulator.add(operator);
239233
_generatorBackend.generateMethod(
240234
packageGraph, lib, extensionType, operator);
241235
}
242236

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

250243
for (var staticField
251-
in filterNonDocumented(extensionType.variableStaticFields)) {
244+
in extensionType.variableStaticFields.whereDocumented) {
252245
indexAccumulator.add(staticField);
253246
_generatorBackend.generateProperty(
254247
packageGraph, lib, extensionType, staticField);
255248
}
256249

257-
for (var method in filterNonDocumented(extensionType.staticMethods)) {
250+
for (var method in extensionType.staticMethods.whereDocumented) {
258251
if (!method.isCanonical) continue;
259252

260253
indexAccumulator.add(method);
@@ -263,62 +256,61 @@ class GeneratorFrontEnd implements Generator {
263256
}
264257
}
265258

266-
for (var mixin in filterNonDocumented(lib.mixins)) {
259+
for (var mixin in lib.mixins.whereDocumented) {
267260
indexAccumulator.add(mixin);
268261
_generatorBackend.generateMixin(packageGraph, lib, mixin);
269262

270-
for (var constant in filterNonDocumented(mixin.constantFields)) {
263+
for (var constant in mixin.constantFields.whereDocumented) {
271264
if (!constant.isCanonical) continue;
272265
indexAccumulator.add(constant);
273266
_generatorBackend.generateProperty(
274267
packageGraph, lib, mixin, constant);
275268
}
276269

277-
for (var property
278-
in filterNonDocumented(mixin.variableStaticFields)) {
270+
for (var property in mixin.variableStaticFields.whereDocumented) {
279271
if (!property.isCanonical) continue;
280272

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

286-
for (var property in filterNonDocumented(mixin.instanceFields)) {
278+
for (var property in mixin.instanceFields.whereDocumented) {
287279
if (!property.isCanonical) continue;
288280

289281
indexAccumulator.add(property);
290282
_generatorBackend.generateProperty(
291283
packageGraph, lib, mixin, property);
292284
}
293285

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

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

301-
for (var operator in filterNonDocumented(mixin.instanceOperators)) {
293+
for (var operator in mixin.instanceOperators.whereDocumented) {
302294
if (!operator.isCanonical) continue;
303295

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

309-
for (var method in filterNonDocumented(mixin.staticMethods)) {
301+
for (var method in mixin.staticMethods.whereDocumented) {
310302
if (!method.isCanonical) continue;
311303

312304
indexAccumulator.add(method);
313305
_generatorBackend.generateMethod(packageGraph, lib, mixin, method);
314306
}
315307
}
316308

317-
for (var enum_ in filterNonDocumented(lib.enums)) {
309+
for (var enum_ in lib.enums.whereDocumented) {
318310
indexAccumulator.add(enum_);
319311
_generatorBackend.generateEnum(packageGraph, lib, enum_);
320312

321-
for (var constant in filterNonDocumented(enum_.constantFields)) {
313+
for (var constant in enum_.constantFields.whereDocumented) {
322314
if (constant is EnumField) {
323315
// Enum values don't get their own page; just any additional
324316
// constants.
@@ -331,48 +323,48 @@ class GeneratorFrontEnd implements Generator {
331323
packageGraph, lib, enum_, constant);
332324
}
333325

334-
for (var constructor in filterNonDocumented(enum_.constructors)) {
326+
for (var constructor in enum_.constructors.whereDocumented) {
335327
if (!constructor.isCanonical) continue;
336328

337329
indexAccumulator.add(constructor);
338330
_generatorBackend.generateConstructor(
339331
packageGraph, lib, enum_, constructor);
340332
}
341333

342-
for (var property in filterNonDocumented(enum_.instanceFields)) {
334+
for (var property in enum_.instanceFields.whereDocumented) {
343335
indexAccumulator.add(property);
344336
_generatorBackend.generateProperty(
345337
packageGraph, lib, enum_, property);
346338
}
347-
for (var operator in filterNonDocumented(enum_.instanceOperators)) {
339+
for (var operator in enum_.instanceOperators.whereDocumented) {
348340
indexAccumulator.add(operator);
349341
_generatorBackend.generateMethod(
350342
packageGraph, lib, enum_, operator);
351343
}
352-
for (var method in filterNonDocumented(enum_.instanceMethods)) {
344+
for (var method in enum_.instanceMethods.whereDocumented) {
353345
indexAccumulator.add(method);
354346
_generatorBackend.generateMethod(packageGraph, lib, enum_, method);
355347
}
356348
}
357349

358-
for (var constant in filterNonDocumented(lib.constants)) {
350+
for (var constant in lib.constants.whereDocumented) {
359351
indexAccumulator.add(constant);
360352
_generatorBackend.generateTopLevelProperty(
361353
packageGraph, lib, constant);
362354
}
363355

364-
for (var property in filterNonDocumented(lib.properties)) {
356+
for (var property in lib.properties.whereDocumented) {
365357
indexAccumulator.add(property);
366358
_generatorBackend.generateTopLevelProperty(
367359
packageGraph, lib, property);
368360
}
369361

370-
for (var function in filterNonDocumented(lib.functions)) {
362+
for (var function in lib.functions.whereDocumented) {
371363
indexAccumulator.add(function);
372364
_generatorBackend.generateFunction(packageGraph, lib, function);
373365
}
374366

375-
for (var typeDef in filterNonDocumented(lib.typedefs)) {
367+
for (var typeDef in lib.typedefs.whereDocumented) {
376368
indexAccumulator.add(typeDef);
377369
_generatorBackend.generateTypeDef(packageGraph, lib, typeDef);
378370
}

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)