Skip to content

Commit 4e73d72

Browse files
authored
Merge pull request #2770 from jcollins-g/inheriting-container-extraction
Refactor containers to better reflect current Dart behavior
2 parents 348cbd7 + 6ac6358 commit 4e73d72

33 files changed

+4742
-4777
lines changed

lib/src/generator/generator_frontend.dart

-8
Original file line numberDiff line numberDiff line change
@@ -168,14 +168,6 @@ class GeneratorFrontEnd implements Generator {
168168
indexAccumulator.add(mixin);
169169
_generatorBackend.generateMixin(writer, packageGraph, lib, mixin);
170170

171-
for (var constructor in filterNonDocumented(mixin.constructors)) {
172-
if (!constructor.isCanonical) continue;
173-
174-
indexAccumulator.add(constructor);
175-
_generatorBackend.generateConstructor(
176-
writer, packageGraph, lib, mixin, constructor);
177-
}
178-
179171
for (var constant in filterNonDocumented(mixin.constantFields)) {
180172
if (!constant.isCanonical) continue;
181173
indexAccumulator.add(constant);

lib/src/generator/template_data.dart

+25-8
Original file line numberDiff line numberDiff line change
@@ -173,34 +173,51 @@ class LibraryTemplateData extends TemplateData<Library>
173173
}
174174

175175
/// Template data for Dart 2.1-style mixin declarations.
176-
class MixinTemplateData extends ClassTemplateData<Mixin> {
177-
final Mixin mixin;
178-
176+
class MixinTemplateData extends InheritingContainerTemplateData<Mixin> {
179177
MixinTemplateData(
180178
TemplateOptions htmlOptions,
181179
PackageGraph packageGraph,
182180
Library library,
183-
this.mixin,
181+
Mixin mixin,
184182
LibrarySidebar _sidebarForLibrary,
185183
ContainerSidebar _sidebarForContainer)
186184
: super(htmlOptions, packageGraph, library, mixin, _sidebarForLibrary,
187185
_sidebarForContainer);
188186

187+
Mixin get mixin => clazz;
188+
189189
@override
190190
Mixin get self => mixin;
191191
}
192192

193+
/// Template data for Dart classes.
194+
class ClassTemplateData extends InheritingContainerTemplateData<Class> {
195+
ClassTemplateData(
196+
TemplateOptions htmlOptions,
197+
PackageGraph packageGraph,
198+
Library library,
199+
Class clazz,
200+
LibrarySidebar _sidebarForLibrary,
201+
ContainerSidebar _sidebarForContainer)
202+
: super(htmlOptions, packageGraph, library, clazz, _sidebarForLibrary,
203+
_sidebarForContainer);
204+
205+
@override
206+
Class get clazz => super.clazz;
207+
}
208+
193209
/// Base template data class for [Class], [Enum], and [Mixin].
194-
class ClassTemplateData<T extends Class> extends TemplateData<T>
210+
abstract class InheritingContainerTemplateData<T extends InheritingContainer>
211+
extends TemplateData<T>
195212
implements TemplateDataWithLibrary<T>, TemplateDataWithContainer<T> {
196-
final Class clazz;
213+
final InheritingContainer clazz;
197214
@override
198215
final Library library;
199216
Class _objectType;
200217
final LibrarySidebar _sidebarForLibrary;
201218
final ContainerSidebar _sidebarForContainer;
202219

203-
ClassTemplateData(
220+
InheritingContainerTemplateData(
204221
TemplateOptions htmlOptions,
205222
PackageGraph packageGraph,
206223
this.library,
@@ -335,7 +352,7 @@ class ConstructorTemplateData extends TemplateData<Constructor>
335352
'for the Dart programming language.';
336353
}
337354

338-
class EnumTemplateData extends ClassTemplateData<Enum> {
355+
class EnumTemplateData extends InheritingContainerTemplateData<Enum> {
339356
EnumTemplateData(
340357
TemplateOptions htmlOptions,
341358
PackageGraph packageGraph,

0 commit comments

Comments
 (0)