summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-03-08 06:06:36 +0000
committerPaul Phillips <paulp@improving.org>2010-03-08 06:06:36 +0000
commit217415af22e2909a44405cf75ab34933023d1612 (patch)
treeb8f7454a19695cd9651a5409ab138946649a2803 /src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
parentfee21b7e701bbb4a3f311cf06ecd668cb5d0bc94 (diff)
downloadscala-217415af22e2909a44405cf75ab34933023d1612.tar.gz
scala-217415af22e2909a44405cf75ab34933023d1612.tar.bz2
scala-217415af22e2909a44405cf75ab34933023d1612.zip
More progress toward immutable Settings, and va...
More progress toward immutable Settings, and various cleanups encountered along the way. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala')
-rw-r--r--src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala b/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
new file mode 100644
index 0000000000..790f4cce00
--- /dev/null
+++ b/src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala
@@ -0,0 +1,40 @@
+/* NSC -- new Scala compiler
+ * Copyright 2005-2010 LAMP/EPFL
+ * @author Paul Phillips
+ */
+
+package scala.tools.nsc
+package settings
+
+trait AbsScalaSettings {
+ self: AbsSettings =>
+
+ type BooleanSetting <: AbsSetting { type T = Boolean }
+ type ChoiceSetting <: AbsSetting { type T = String }
+ type DefinesSetting <: AbsSetting { type T = List[(String, String)] }
+ type IntSetting <: AbsSetting { type T = Int }
+ type MultiStringSetting <: AbsSetting { type T = List[String] }
+ type PathSetting <: AbsSetting { type T = String }
+ type PhasesSetting <: AbsSetting { type T = List[String] }
+ type StringSetting <: AbsSetting { type T = String }
+
+ type OutputDirs
+ type OutputSetting <: AbsSetting
+
+ def BooleanSetting(name: String, descr: String): BooleanSetting
+ def ChoiceSetting(name: String, descr: String, choices: List[String], default: String): ChoiceSetting
+ def DefinesSetting(): DefinesSetting
+ def IntSetting(name: String, descr: String, default: Int, range: Option[(Int, Int)], parser: String => Option[Int]): IntSetting
+ def MultiStringSetting(name: String, arg: String, descr: String): MultiStringSetting
+ def OutputSetting(outputDirs: OutputDirs, default: String): OutputSetting
+ def PathSetting(name: String, arg: String, descr: String, default: String): PathSetting
+ def PhasesSetting(name: String, descr: String): PhasesSetting
+ def StringSetting(name: String, arg: String, descr: String, default: String): StringSetting
+
+ /** **/
+ abstract class SettingGroup(val prefix: String) extends AbsSetting {
+ def name = prefix
+ def helpDescription: String = error("todo")
+ def unparse: List[String] = List(name)
+ }
+}