summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala')
-rw-r--r--src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala b/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
index d0b8fd70ed..6b339b2a6d 100644
--- a/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
+++ b/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
@@ -7,20 +7,24 @@ package scala
package tools.nsc
package settings
+import scala.language.higherKinds
+
trait AbsScalaSettings {
self: AbsSettings =>
+ type MultiChoiceEnumeration <: Enumeration
+
type Setting <: AbsSetting
- type BooleanSetting <: Setting { type T = Boolean }
- type ChoiceSetting <: Setting { type T = String }
- type IntSetting <: Setting { type T = Int }
- type MultiStringSetting <: Setting { type T = List[String] }
- type MultiChoiceSetting <: Setting { type T = List[String] }
- type PathSetting <: Setting { type T = String }
- type PhasesSetting <: Setting { type T = List[String] }
- type StringSetting <: Setting { type T = String }
- type PrefixSetting <: Setting { type T = List[String] }
+ type BooleanSetting <: Setting { type T = Boolean }
+ type ChoiceSetting <: Setting { type T = String }
+ type IntSetting <: Setting { type T = Int }
+ type MultiStringSetting <: Setting { type T = List[String] }
+ type MultiChoiceSetting[E <: MultiChoiceEnumeration] <: Setting { type T <: E#ValueSet }
+ type PathSetting <: Setting { type T = String }
+ type PhasesSetting <: Setting { type T = List[String] }
+ type StringSetting <: Setting { type T = String }
+ type PrefixSetting <: Setting { type T = List[String] }
type OutputDirs
type OutputSetting <: Setting
@@ -29,7 +33,7 @@ trait AbsScalaSettings {
def ChoiceSetting(name: String, helpArg: String, descr: String, choices: List[String], default: String): ChoiceSetting
def IntSetting(name: String, descr: String, default: Int, range: Option[(Int, Int)], parser: String => Option[Int]): IntSetting
def MultiStringSetting(name: String, helpArg: String, descr: String): MultiStringSetting
- def MultiChoiceSetting(name: String, helpArg: String, descr: String, choices: List[String], default: Option[() => Unit])(helper: MultiChoiceSetting => String): MultiChoiceSetting
+ def MultiChoiceSetting[E <: MultiChoiceEnumeration](name: String, helpArg: String, descr: String, domain: E, default: Option[List[String]]): MultiChoiceSetting[E]
def OutputSetting(outputDirs: OutputDirs, default: String): OutputSetting
def PathSetting(name: String, descr: String, default: String): PathSetting
def PhasesSetting(name: String, descr: String, default: String): PhasesSetting