diff options
author | Paul Phillips <paulp@improving.org> | 2010-03-08 06:06:36 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-03-08 06:06:36 +0000 |
commit | 217415af22e2909a44405cf75ab34933023d1612 (patch) | |
tree | b8f7454a19695cd9651a5409ab138946649a2803 /src/compiler/scala/tools/nsc/settings/AbsScalaSettings.scala | |
parent | fee21b7e701bbb4a3f311cf06ecd668cb5d0bc94 (diff) | |
download | scala-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.scala | 40 |
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) + } +} |