Skip to content

Commit 9111c9e

Browse files
committed
Merge pull request #38 from SethTisue/issue-36
in class mode, collapse Module/ModuleClass distinction
2 parents dcd27e6 + bca74d3 commit 9111c9e

File tree

4 files changed

+8
-12
lines changed

4 files changed

+8
-12
lines changed

README.md

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,10 @@ generates this `classes.json` file:
133133

134134
[
135135
{"sym": ["o:Dep1"], "uses": ["o:Dep2"]},
136-
{"sym": ["o:Dep1"], "uses": ["ov:Dep2"]},
137136
{"sym": ["o:Dep1"], "uses": ["pkt:java", "pkt:lang", "cl:Object"]},
138137
{"sym": ["o:Dep1"], "uses": ["pkt:scala", "cl:Int"]},
139138
{"sym": ["o:Dep1"], "uses": ["pkt:scala", "tp:AnyRef"]},
140139
{"sym": ["o:Dep2"], "uses": ["o:Dep1"]},
141-
{"sym": ["o:Dep2"], "uses": ["ov:Dep1"]},
142140
{"sym": ["o:Dep2"], "uses": ["pkt:java", "pkt:lang", "cl:Object"]},
143141
{"sym": ["o:Dep2"], "uses": ["pkt:scala", "cl:Int"]},
144142
{"sym": ["o:Dep2"], "uses": ["pkt:scala", "tp:AnyRef"]}
@@ -227,11 +225,9 @@ And here's the layers report for the same code:
227225
scala> println(res2.layersString)
228226
layers =
229227
"""|[1] o:Dep1 o:Dep2
230-
|[0] ov:Dep1
231228
|[0] cl:java.lang.Object
232229
|[0] cl:scala.Int
233230
|[0] tp:scala.AnyRef
234-
|[0] ov:Dep2
235231

236232
The numbers are layer numbers, defined as follows:
237233

src/main/scala/com/typesafe/tools/sculpt/model/ClassMode.scala

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ object ClassMode {
77
// promotes all of the dependencies to class level:
88
// * discarding self-dependencies
99
// * collapsing the uses/extends distinction
10+
// * collapsing the Module/ModuleClass distinction
1011
// * ignoring irrelevant pseudo-dependencies
1112
// * setting all counts to 1
1213
// (real counts handling is possible future work)
@@ -34,6 +35,9 @@ object ClassMode {
3435
next.kind match {
3536
case k if isClassKind(k) =>
3637
Some(Path(packages :+ next))
38+
// collapse Module/ModuleClass distinction
39+
case EntityKind.Module =>
40+
Some(Path(packages :+ next.copy(kind = EntityKind.ModuleClass)))
3741
// ignore strange dependencies on bare terms;
3842
// see https://github.com/typesafehub/scala-sculpt/issues/28
3943
case EntityKind.Term if packages.isEmpty =>
@@ -56,7 +60,6 @@ object ClassMode {
5660
private val isClassKind: EntityKind => Boolean =
5761
Set[EntityKind](
5862
EntityKind.Trait, EntityKind.Class,
59-
EntityKind.Module, EntityKind.ModuleClass,
60-
EntityKind.Type)
63+
EntityKind.ModuleClass, EntityKind.Type)
6164

6265
}

src/main/scala/com/typesafe/tools/sculpt/model/Cycles.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ object Cycles {
5353
layer.map(cycleString)
5454
.filter(_.nonEmpty) // omit empty package
5555
.map(s => s"[$n] $s\n")
56+
.sorted
5657
.mkString}
5758
.mkString
5859

src/test/scala/com/typesafe/tools/sculpt/Samples.scala

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ object Samples {
429429
classJson =
430430
"""|[
431431
| {"sym": ["o:O"], "uses": ["pkt:java", "pkt:lang", "cl:Object"]},
432-
| {"sym": ["o:O"], "uses": ["pkt:scala", "ov:None"]},
432+
| {"sym": ["o:O"], "uses": ["pkt:scala", "o:None"]},
433433
| {"sym": ["o:O"], "uses": ["pkt:scala", "tp:AnyRef"]}
434434
|]""".stripMargin,
435435
tree =
@@ -445,7 +445,7 @@ object Samples {
445445
layers =
446446
"""|[1] o:O
447447
|[0] cl:java.lang.Object
448-
|[0] ov:scala.None
448+
|[0] o:scala.None
449449
|[0] tp:scala.AnyRef
450450
|""".stripMargin)
451451

@@ -576,12 +576,10 @@ object Samples {
576576
classJson =
577577
"""|[
578578
| {"sym": ["o:Dep1"], "uses": ["o:Dep2"]},
579-
| {"sym": ["o:Dep1"], "uses": ["ov:Dep2"]},
580579
| {"sym": ["o:Dep1"], "uses": ["pkt:java", "pkt:lang", "cl:Object"]},
581580
| {"sym": ["o:Dep1"], "uses": ["pkt:scala", "cl:Int"]},
582581
| {"sym": ["o:Dep1"], "uses": ["pkt:scala", "tp:AnyRef"]},
583582
| {"sym": ["o:Dep2"], "uses": ["o:Dep1"]},
584-
| {"sym": ["o:Dep2"], "uses": ["ov:Dep1"]},
585583
| {"sym": ["o:Dep2"], "uses": ["pkt:java", "pkt:lang", "cl:Object"]},
586584
| {"sym": ["o:Dep2"], "uses": ["pkt:scala", "cl:Int"]},
587585
| {"sym": ["o:Dep2"], "uses": ["pkt:scala", "tp:AnyRef"]}
@@ -599,11 +597,9 @@ object Samples {
599597
"""|[2] o:Dep1 o:Dep2""".stripMargin,
600598
layers =
601599
"""|[1] o:Dep1 o:Dep2
602-
|[0] ov:Dep1
603600
|[0] cl:java.lang.Object
604601
|[0] cl:scala.Int
605602
|[0] tp:scala.AnyRef
606-
|[0] ov:Dep2
607603
|""".stripMargin)
608604

609605
}

0 commit comments

Comments
 (0)