Skip to content

Commit 270bc00

Browse files
scheglovCommit Queue
authored andcommitted
Elements. Improvements for FormalParameterElement / Fragment printer.
Change-Id: I7ad071f71d51589c5b4f2acb72c2064ce53a931c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/458962 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Paul Berry <[email protected]>
1 parent 9e2d8a2 commit 270bc00

24 files changed

+1879
-1754
lines changed

pkg/analyzer/test/src/summary/element_text.dart

Lines changed: 29 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -645,11 +645,7 @@ class _Element2Writer extends _AbstractElementWriter {
645645

646646
void _writeFormalParameterElement(FormalParameterElement e) {
647647
e as FormalParameterElementImpl;
648-
// if (e.isNamed && e.enclosingElement is ExecutableElement) {
649-
// expect(e.reference, isNotNull);
650-
// } else {
651-
// expect(e.reference, isNull);
652-
// }
648+
expect(e.reference, isNull);
653649

654650
_sink.writeIndentedLine(() {
655651
_writeObjectId(e);
@@ -666,13 +662,14 @@ class _Element2Writer extends _AbstractElementWriter {
666662
_sink.writeIf(e.isConst, 'const ');
667663
_sink.writeIf(e.isCovariant, 'covariant ');
668664
_sink.writeIf(e.isFinal, 'final ');
665+
_sink.writeIf(e.hasDefaultValue, 'hasDefaultValue ');
669666
_sink.writeIf(e.hasImplicitType, 'hasImplicitType ');
670667

671-
if (e is FieldFormalParameterFragmentImpl) {
672-
_sink.write('this.');
673-
} else if (e is SuperFormalParameterFragmentImpl) {
674-
_sink.writeIf(e.hasDefaultValue, 'hasDefaultValue ');
675-
_sink.write('super.');
668+
switch (e) {
669+
case FieldFormalParameterElementImpl():
670+
_sink.write('this.');
671+
case SuperFormalParameterElementImpl():
672+
_sink.write('super.');
676673
}
677674

678675
_writeElementName(e);
@@ -683,7 +680,6 @@ class _Element2Writer extends _AbstractElementWriter {
683680
_writeType('type', e.type);
684681
_writeMetadata(e.metadata);
685682
_writeSinceSdkVersion(e);
686-
// _writeCodeRange(e);
687683
_writeElementList(
688684
'typeParameters',
689685
e,
@@ -697,40 +693,41 @@ class _Element2Writer extends _AbstractElementWriter {
697693
_writeFormalParameterElement,
698694
);
699695
_writeVariableElementConstantInitializer(e);
700-
// _writeNonSyntheticElement(e);
701-
// _writeFieldFormalParameterField(e);
702-
// _writeSuperConstructorParameter(e);
696+
697+
switch (e) {
698+
case FieldFormalParameterElementImpl():
699+
_elementPrinter.writeNamedElement2('field', e.field);
700+
case SuperFormalParameterElementImpl():
701+
_elementPrinter.writeNamedElement2(
702+
'superConstructorParameter',
703+
e.superConstructorParameter,
704+
);
705+
}
703706
});
704707
}
705708

706709
void _writeFormalParameterFragment(FormalParameterFragment f) {
707710
f as FormalParameterFragmentImpl;
708-
// if (f.isNamed && f.enclosingFragment is ExecutableFragment) {
709-
// expect(f.reference, isNotNull);
710-
// } else {
711-
// expect(f.reference, isNull);
712-
// }
713711

714712
_sink.writeIndentedLine(() {
715713
_writeObjectId(f);
716-
// if (f.isRequiredPositional) {
717-
// _sink.write('requiredPositional ');
718-
// } else if (f.isOptionalPositional) {
719-
// _sink.write('optionalPositional ');
720-
// } else if (f.isRequiredNamed) {
721-
// _sink.write('requiredNamed ');
722-
// } else if (f.isOptionalNamed) {
723-
// _sink.write('optionalNamed ');
724-
// }
714+
if (f.isRequiredPositional) {
715+
_sink.write('requiredPositional ');
716+
} else if (f.isOptionalPositional) {
717+
_sink.write('optionalPositional ');
718+
} else if (f.isRequiredNamed) {
719+
_sink.write('requiredNamed ');
720+
} else if (f.isOptionalNamed) {
721+
_sink.write('optionalNamed ');
722+
}
725723

726-
// _sink.writeIf(f.isConst, 'const ');
727-
// _sink.writeIf(f.isCovariant, 'covariant ');
728-
// _sink.writeIf(f.isFinal, 'final ');
724+
_sink.writeIf(f.isConst, 'const ');
725+
_sink.writeIf(f.isExplicitlyCovariant, 'covariant ');
726+
_sink.writeIf(f.isFinal, 'final ');
729727

730728
if (f is FieldFormalParameterFragmentImpl) {
731729
_sink.write('this.');
732730
} else if (f is SuperFormalParameterFragmentImpl) {
733-
// _sink.writeIf(f.hasDefaultValue, 'hasDefaultValue ');
734731
_sink.write('super.');
735732
}
736733

@@ -739,7 +736,6 @@ class _Element2Writer extends _AbstractElementWriter {
739736

740737
_sink.withIndent(() {
741738
_writeElementReference('element', f.element);
742-
// _writeType('type', f.type);
743739
_writeMetadata(f.metadata);
744740
// _writeCodeRange(f);
745741
_writeFragmentList(
@@ -755,9 +751,6 @@ class _Element2Writer extends _AbstractElementWriter {
755751
_writeFormalParameterFragment,
756752
);
757753
_writeVariableFragmentInitializer(f);
758-
// _writeNonSyntheticElement(e);
759-
// _writeFieldFormalParameterField(e);
760-
// _writeSuperConstructorParameter(e);
761754
_writeFragmentReference('previousFragment', f.previousFragment);
762755
_writeFragmentReference('nextFragment', f.nextFragment);
763756
});

0 commit comments

Comments
 (0)