Skip to content

Commit 0c86079

Browse files
authored
Cleanup model_element migration and surrounding accesses (#2876)
1 parent 0599437 commit 0c86079

8 files changed

+148
-179
lines changed

lib/src/generator/templates.runtime_renderers.dart

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -376,7 +376,7 @@ class _Renderer_Accessor extends RendererBase<Accessor?> {
376376
nextProperty,
377377
[...remainingNames.skip(1)]);
378378
},
379-
isNullValue: (CT_ c) => c.sourceCode == null,
379+
isNullValue: (CT_ c) => false,
380380
renderValue: (CT_ c, RendererBase<CT_> r,
381381
List<MustachioNode> ast, StringSink sink) {
382382
_render_String(c.sourceCode, ast, r.template, sink,
@@ -5872,7 +5872,7 @@ class _Renderer_Field extends RendererBase<Field?> {
58725872
nextProperty,
58735873
[...remainingNames.skip(1)]);
58745874
},
5875-
isNullValue: (CT_ c) => c.sourceCode == null,
5875+
isNullValue: (CT_ c) => false,
58765876
renderValue: (CT_ c, RendererBase<CT_> r,
58775877
List<MustachioNode> ast, StringSink sink) {
58785878
_render_String(c.sourceCode, ast, r.template, sink,
@@ -9930,11 +9930,10 @@ class _Renderer_ModelElement extends RendererBase<ModelElement?> {
99309930
List<String> remainingNames) =>
99319931
self.renderSimpleVariable(
99329932
c, remainingNames, 'List<Parameter>'),
9933-
isNullValue: (CT_ c) => c.allParameters == null,
9934-
renderValue: (CT_ c, RendererBase<CT_> r,
9933+
renderIterable: (CT_ c, RendererBase<CT_> r,
99359934
List<MustachioNode> ast, StringSink sink) {
9936-
renderSimple(c.allParameters, ast, r.template, sink,
9937-
parent: r, getters: _invisibleGetters['List']!);
9935+
return c.allParameters.map((e) =>
9936+
_render_Parameter(e, ast, r.template, sink, parent: r));
99389937
},
99399938
),
99409939
'annotations': Property(
@@ -10339,8 +10338,7 @@ class _Renderer_ModelElement extends RendererBase<ModelElement?> {
1033910338
nextProperty,
1034010339
[...remainingNames.skip(1)]);
1034110340
},
10342-
isNullValue: (CT_ c) =>
10343-
c.fullyQualifiedNameWithoutLibrary == null,
10341+
isNullValue: (CT_ c) => false,
1034410342
renderValue: (CT_ c, RendererBase<CT_> r,
1034510343
List<MustachioNode> ast, StringSink sink) {
1034610344
_render_String(c.fullyQualifiedNameWithoutLibrary, ast,
@@ -10440,7 +10438,7 @@ class _Renderer_ModelElement extends RendererBase<ModelElement?> {
1044010438
nextProperty,
1044110439
[...remainingNames.skip(1)]);
1044210440
},
10443-
isNullValue: (CT_ c) => c.htmlId == null,
10441+
isNullValue: (CT_ c) => false,
1044410442
renderValue: (CT_ c, RendererBase<CT_> r,
1044510443
List<MustachioNode> ast, StringSink sink) {
1044610444
_render_String(c.htmlId, ast, r.template, sink, parent: r);
@@ -10881,7 +10879,7 @@ class _Renderer_ModelElement extends RendererBase<ModelElement?> {
1088110879
nextProperty,
1088210880
[...remainingNames.skip(1)]);
1088310881
},
10884-
isNullValue: (CT_ c) => c.sourceCode == null,
10882+
isNullValue: (CT_ c) => false,
1088510883
renderValue: (CT_ c, RendererBase<CT_> r,
1088610884
List<MustachioNode> ast, StringSink sink) {
1088710885
_render_String(c.sourceCode, ast, r.template, sink,
@@ -10925,7 +10923,7 @@ class _Renderer_ModelElement extends RendererBase<ModelElement?> {
1092510923
nextProperty,
1092610924
[...remainingNames.skip(1)]);
1092710925
},
10928-
isNullValue: (CT_ c) => c.sourceHref == null,
10926+
isNullValue: (CT_ c) => false,
1092910927
renderValue: (CT_ c, RendererBase<CT_> r,
1093010928
List<MustachioNode> ast, StringSink sink) {
1093110929
_render_String(c.sourceHref, ast, r.template, sink,
@@ -13339,7 +13337,7 @@ class _Renderer_SourceCodeMixin extends RendererBase<SourceCodeMixin?> {
1333913337
nextProperty,
1334013338
[...remainingNames.skip(1)]);
1334113339
},
13342-
isNullValue: (CT_ c) => c.sourceCode == null,
13340+
isNullValue: (CT_ c) => false,
1334313341
renderValue: (CT_ c, RendererBase<CT_> r,
1334413342
List<MustachioNode> ast, StringSink sink) {
1334513343
_render_String(c.sourceCode, ast, r.template, sink,

lib/src/model/accessor.dart

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,20 +55,13 @@ class Accessor extends ModelElement implements EnclosedElement {
5555
late final GetterSetterCombo definingCombo =
5656
modelBuilder.fromElement(element.variable) as GetterSetterCombo;
5757

58-
String? _sourceCode;
58+
late final String _sourceCode = isSynthetic
59+
? _sourceCodeRenderer.renderSourceCode(
60+
packageGraph.getModelNodeFor(definingCombo.element)!.sourceCode)
61+
: super.sourceCode;
5962

6063
@override
61-
String? get sourceCode {
62-
if (_sourceCode == null) {
63-
if (isSynthetic) {
64-
_sourceCode = _sourceCodeRenderer.renderSourceCode(
65-
packageGraph.getModelNodeFor(definingCombo.element)!.sourceCode!);
66-
} else {
67-
_sourceCode = super.sourceCode;
68-
}
69-
}
70-
return _sourceCode;
71-
}
64+
String get sourceCode => _sourceCode;
7265

7366
bool _documentationCommentComputed = false;
7467
String? _documentationComment;

lib/src/model/constructor.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ class Constructor extends ModelElement
105105
Map<String, CommentReferable> get referenceChildren {
106106
if (_referenceChildren == null) {
107107
_referenceChildren = {};
108-
_referenceChildren!.addEntries(allParameters!.map((param) {
108+
_referenceChildren!.addEntries(allParameters.map((param) {
109109
var paramElement = param.element;
110110
if (paramElement is FieldFormalParameterElement) {
111111
return modelBuilder.fromElement(paramElement.field!);

lib/src/model/field.dart

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -137,34 +137,31 @@ class Field extends ModelElement
137137
SourceCodeRenderer get _sourceCodeRenderer =>
138138
packageGraph.rendererFactory.sourceCodeRenderer;
139139

140-
String? _sourceCode;
141-
142-
@override
143-
String? get sourceCode {
144-
if (_sourceCode == null) {
145-
// We could use a set to figure the dupes out, but that would lose ordering.
146-
var fieldSourceCode = modelNode!.sourceCode ?? '';
147-
var getterSourceCode = getter?.sourceCode ?? '';
148-
var setterSourceCode = setter?.sourceCode ?? '';
149-
var buffer = StringBuffer();
150-
if (fieldSourceCode.isNotEmpty) {
151-
fieldSourceCode = _sourceCodeRenderer.renderSourceCode(fieldSourceCode);
152-
buffer.write(fieldSourceCode);
153-
}
154-
if (buffer.isNotEmpty) buffer.write('\n\n');
155-
if (fieldSourceCode != getterSourceCode) {
156-
if (getterSourceCode != setterSourceCode) {
157-
buffer.write(getterSourceCode);
158-
if (buffer.isNotEmpty) buffer.write('\n\n');
159-
}
160-
}
161-
if (fieldSourceCode != setterSourceCode) {
162-
buffer.write(setterSourceCode);
140+
late final String _sourceCode = () {
141+
// We could use a set to figure the dupes out, but that would lose ordering.
142+
var fieldSourceCode = modelNode?.sourceCode ?? '';
143+
var getterSourceCode = getter?.sourceCode ?? '';
144+
var setterSourceCode = setter?.sourceCode ?? '';
145+
var buffer = StringBuffer();
146+
if (fieldSourceCode.isNotEmpty) {
147+
fieldSourceCode = _sourceCodeRenderer.renderSourceCode(fieldSourceCode);
148+
buffer.write(fieldSourceCode);
149+
}
150+
if (buffer.isNotEmpty) buffer.write('\n\n');
151+
if (fieldSourceCode != getterSourceCode) {
152+
if (getterSourceCode != setterSourceCode) {
153+
buffer.write(getterSourceCode);
154+
if (buffer.isNotEmpty) buffer.write('\n\n');
163155
}
164-
_sourceCode = buffer.toString();
165156
}
166-
return _sourceCode;
167-
}
157+
if (fieldSourceCode != setterSourceCode) {
158+
buffer.write(setterSourceCode);
159+
}
160+
return buffer.toString();
161+
}();
162+
163+
@override
164+
String get sourceCode => _sourceCode;
168165

169166
@override
170167
Library get library => super.library!;

lib/src/model/method.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ class Method extends ModelElement
133133
_referenceChildren = {};
134134
_referenceChildren!.addEntriesIfAbsent([
135135
...typeParameters.explicitOnCollisionWith(this),
136-
...allParameters!.explicitOnCollisionWith(this),
136+
...allParameters.explicitOnCollisionWith(this),
137137
...modelType.typeArguments.explicitOnCollisionWith(this),
138138
...modelType.returnType.typeArguments.explicitOnCollisionWith(this),
139139
]);

0 commit comments

Comments
 (0)