Skip to content

Commit 29496c5

Browse files
committed
simplify world
1 parent a13a1dc commit 29496c5

File tree

2 files changed

+63
-15
lines changed

2 files changed

+63
-15
lines changed

.idea/codeStyles/Project.xml

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analyzer/src/main/scala/com/avsystem/commons/analyzer/ImplicitValueClasses.scala

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@ class ImplicitValueClasses(g: Global) extends AnalyzerRule(g, "implicitValueClas
1010

1111
private lazy val defaultClasses = Set[Symbol](AnyClass, AnyValClass, ObjectClass)
1212

13-
private lazy val reportOnNestedClasses = ImplicitValueClasses.Options.fromString(argument).reportOnNestedClasses
13+
private lazy val reportOnNestedClasses = argument match {
14+
case "all" => true
15+
case "top-level-only" | null => false
16+
case _ => throw new IllegalArgumentException(s"Unknown ImplicitValueClasses option: $argument")
17+
}
1418

1519
def analyze(unit: CompilationUnit): Unit = unit.body.foreach {
1620
case cd: ClassDef if cd.mods.hasFlag(Flag.IMPLICIT) =>
@@ -21,10 +25,12 @@ class ImplicitValueClasses(g: Global) extends AnalyzerRule(g, "implicitValueClas
2125

2226
def inheritsOtherClass = tpe.baseClasses.exists { cls =>
2327
def isDefault = defaultClasses contains cls
28+
2429
def isUniversalTrait = cls.isTrait && cls.superClass == AnyClass
2530

2631
cls != cd.symbol && !isDefault && !isUniversalTrait
2732
}
33+
2834
def hasExactlyOneParam = paramLists.exists(lists => lists.size == 1 && lists.head.size == 1)
2935

3036
def paramIsValueClass = paramLists.exists { lists =>
@@ -48,17 +54,3 @@ class ImplicitValueClasses(g: Global) extends AnalyzerRule(g, "implicitValueClas
4854
case _ =>
4955
}
5056
}
51-
52-
object ImplicitValueClasses {
53-
private sealed abstract class Options(val reportOnNestedClasses: Boolean)
54-
private object Options {
55-
private case object All extends Options(reportOnNestedClasses = true)
56-
private case object TopLevelOnly extends Options(reportOnNestedClasses = false)
57-
58-
def fromString(s: String): Options = s match {
59-
case "all" => All
60-
case "top-level-only" | null => TopLevelOnly
61-
case _ => throw new IllegalArgumentException(s"Unknown ImplicitValueClasses option: $s")
62-
}
63-
}
64-
}

0 commit comments

Comments
 (0)