Skip to content

Commit 56062a9

Browse files
scheglovCommit Queue
authored and
Commit Queue
committed
Fine. Improve ClassItem / MixinItem printing, asserts.
Change-Id: Ibdb745b91215fd22c3b3c24faa2362e450c95014 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/421886 Reviewed-by: Paul Berry <[email protected]> Commit-Queue: Konstantin Shcheglov <[email protected]>
1 parent 8b4ce01 commit 56062a9

File tree

3 files changed

+62
-59
lines changed

3 files changed

+62
-59
lines changed

pkg/analyzer/lib/src/fine/manifest_item.dart

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ class ClassItem extends InterfaceItem {
2020
required super.metadata,
2121
required super.typeParameters,
2222
required super.supertype,
23-
required super.interfaces,
2423
required super.mixins,
24+
required super.interfaces,
2525
required super.declaredMembers,
2626
required super.inheritedMembers,
2727
});
@@ -323,8 +323,8 @@ sealed class InterfaceItem extends InstanceItem {
323323
required super.typeParameters,
324324
required super.declaredMembers,
325325
required this.supertype,
326-
required this.interfaces,
327326
required this.mixins,
327+
required this.interfaces,
328328
required this.inheritedMembers,
329329
});
330330

@@ -539,7 +539,9 @@ class MixinItem extends InterfaceItem {
539539
required super.declaredMembers,
540540
required super.inheritedMembers,
541541
required this.superclassConstraints,
542-
});
542+
}) : assert(supertype == null),
543+
assert(mixins.isEmpty),
544+
assert(superclassConstraints.isNotEmpty);
543545

544546
factory MixinItem.fromElement({
545547
required ManifestItemId id,

pkg/analyzer/test/src/dart/analysis/driver_test.dart

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13727,6 +13727,8 @@ mixin A {
1372713727
package:test/test.dart
1372813728
manifest
1372913729
A: #M0
13730+
superclassConstraints
13731+
Object @ dart:core
1373013732
declaredMembers
1373113733
foo: #M1
1373213734
returnType: int @ dart:core
@@ -13741,6 +13743,8 @@ mixin A {
1374113743
package:test/test.dart
1374213744
manifest
1374313745
A: #M0
13746+
superclassConstraints
13747+
Object @ dart:core
1374413748
declaredMembers
1374513749
foo: #M2
1374613750
returnType: double @ dart:core
@@ -14368,6 +14372,8 @@ mixin A {
1436814372
package:test/test.dart
1436914373
manifest
1437014374
A: #M0
14375+
superclassConstraints
14376+
Object @ dart:core
1437114377
declaredMembers
1437214378
foo: #M1
1437314379
functionType: FunctionType
@@ -14383,6 +14389,8 @@ mixin A {
1438314389
package:test/test.dart
1438414390
manifest
1438514391
A: #M0
14392+
superclassConstraints
14393+
Object @ dart:core
1438614394
declaredMembers
1438714395
foo: #M2
1438814396
functionType: FunctionType
@@ -14503,6 +14511,8 @@ mixin A<T> {
1450314511
A: #M0
1450414512
typeParameters
1450514513
bound: <null>
14514+
superclassConstraints
14515+
Object @ dart:core
1450614516
declaredMembers
1450714517
foo: #M1
1450814518
functionType: FunctionType
@@ -14525,6 +14535,8 @@ mixin A<T> {
1452514535
A: #M0
1452614536
typeParameters
1452714537
bound: <null>
14538+
superclassConstraints
14539+
Object @ dart:core
1452814540
declaredMembers
1452914541
bar: #M2
1453014542
functionType: FunctionType
@@ -15180,6 +15192,8 @@ mixin A {
1518015192
package:test/test.dart
1518115193
manifest
1518215194
A: #M0
15195+
superclassConstraints
15196+
Object @ dart:core
1518315197
declaredMembers
1518415198
foo=: #M1
1518515199
valueType: int @ dart:core
@@ -15194,6 +15208,8 @@ mixin A {
1519415208
package:test/test.dart
1519515209
manifest
1519615210
A: #M0
15211+
superclassConstraints
15212+
Object @ dart:core
1519715213
declaredMembers
1519815214
foo=: #M2
1519915215
valueType: double @ dart:core

pkg/analyzer/test/src/dart/analysis/result_printer.dart

Lines changed: 41 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -775,38 +775,27 @@ class LibraryManifestPrinter {
775775
_writeMetadata(item);
776776
_writeTypeParameters(item.typeParameters);
777777
_writeNamedType('supertype', item.supertype);
778-
// TODO(scheglov): other types
778+
_writeTypeList('mixins', item.mixins);
779+
_writeTypeList('interfaces', item.interfaces);
779780
});
780781
}
781782

782-
{
783-
var declared = item.declaredMembers.sorted;
784-
declared = _withoutIgnoredMembers(declared);
785-
if (declared.isNotEmpty) {
786-
sink.withIndent(() {
787-
sink.writelnWithIndent('declaredMembers');
788-
sink.withIndent(() {
789-
for (var entry in declared) {
790-
_writeInstanceItemDeclaredMember(entry.key, entry.value);
791-
}
792-
});
793-
});
794-
}
795-
}
783+
_writeInstanceItemDeclaredItems(item);
784+
_writeInterfaceItemInheritedItems(item);
785+
}
796786

797-
{
798-
var inherited = item.inheritedMembers.sorted;
799-
inherited = _withoutIgnoredMembers(inherited);
800-
if (inherited.isNotEmpty) {
787+
void _writeInstanceItemDeclaredItems(InstanceItem item) {
788+
var declared = item.declaredMembers.sorted;
789+
declared = _withoutIgnoredMembers(declared);
790+
if (declared.isNotEmpty) {
791+
sink.withIndent(() {
792+
sink.writelnWithIndent('declaredMembers');
801793
sink.withIndent(() {
802-
sink.writelnWithIndent('inheritedMembers');
803-
sink.withIndent(() {
804-
for (var entry in inherited) {
805-
_writeNamedId(entry.key, entry.value);
806-
}
807-
});
794+
for (var entry in declared) {
795+
_writeInstanceItemDeclaredMember(entry.key, entry.value);
796+
}
808797
});
809-
}
798+
});
810799
}
811800
}
812801

@@ -836,6 +825,21 @@ class LibraryManifestPrinter {
836825
}
837826
}
838827

828+
void _writeInterfaceItemInheritedItems(InterfaceItem item) {
829+
var inherited = item.inheritedMembers.sorted;
830+
inherited = _withoutIgnoredMembers(inherited);
831+
if (inherited.isNotEmpty) {
832+
sink.withIndent(() {
833+
sink.writelnWithIndent('inheritedMembers');
834+
sink.withIndent(() {
835+
for (var entry in inherited) {
836+
_writeNamedId(entry.key, entry.value);
837+
}
838+
});
839+
});
840+
}
841+
}
842+
839843
void _writelnElement(ManifestElement element) {
840844
var parts = [
841845
element.libraryUri,
@@ -863,39 +867,13 @@ class LibraryManifestPrinter {
863867
sink.withIndent(() {
864868
_writeMetadata(item);
865869
_writeTypeParameters(item.typeParameters);
866-
// TODO(scheglov): other types
870+
_writeTypeList('superclassConstraints', item.superclassConstraints);
871+
_writeTypeList('interfaces', item.interfaces);
867872
});
868873
}
869874

870-
{
871-
var declared = item.declaredMembers.sorted;
872-
declared = _withoutIgnoredMembers(declared);
873-
if (declared.isNotEmpty) {
874-
sink.withIndent(() {
875-
sink.writelnWithIndent('declaredMembers');
876-
sink.withIndent(() {
877-
for (var entry in declared) {
878-
_writeInstanceItemDeclaredMember(entry.key, entry.value);
879-
}
880-
});
881-
});
882-
}
883-
}
884-
885-
{
886-
var inherited = item.inheritedMembers.sorted;
887-
inherited = _withoutIgnoredMembers(inherited);
888-
if (inherited.isNotEmpty) {
889-
sink.withIndent(() {
890-
sink.writelnWithIndent('inheritedMembers');
891-
sink.withIndent(() {
892-
for (var entry in inherited) {
893-
_writeNamedId(entry.key, entry.value);
894-
}
895-
});
896-
});
897-
}
898-
}
875+
_writeInstanceItemDeclaredItems(item);
876+
_writeInterfaceItemInheritedItems(item);
899877
}
900878

901879
void _writeNamedId(LookupName name, ManifestItemId id) {
@@ -1036,6 +1014,13 @@ class LibraryManifestPrinter {
10361014
}
10371015
}
10381016

1017+
void _writeTypeList(String name, List<ManifestType> types) {
1018+
sink.writeElements(name, types, (type) {
1019+
sink.writeIndent();
1020+
_writeType(type);
1021+
});
1022+
}
1023+
10391024
void _writeTypeParameters(
10401025
List<ManifestTypeParameter> typeParameters,
10411026
) {

0 commit comments

Comments
 (0)