diff options
author | mihaylov <mihaylov@epfl.ch> | 2007-03-26 15:49:25 +0000 |
---|---|---|
committer | mihaylov <mihaylov@epfl.ch> | 2007-03-26 15:49:25 +0000 |
commit | 831cb380f1eeb62090b549d739296ef0e7f856b9 (patch) | |
tree | b2493f843e444120d75bd445c1fe4eb47f54f973 /src | |
parent | 1ce961f61e248054c8e7a6cf92db5e277973dafd (diff) | |
download | scala-831cb380f1eeb62090b549d739296ef0e7f856b9.tar.gz scala-831cb380f1eeb62090b549d739296ef0e7f856b9.tar.bz2 scala-831cb380f1eeb62090b549d739296ef0e7f856b9.zip |
Small refactoring of the Setting classes
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/ant/FastScalac.scala | 8 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/GenericRunnerSettings.scala | 5 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/Settings.scala | 24 |
3 files changed, 21 insertions, 16 deletions
diff --git a/src/compiler/scala/tools/ant/FastScalac.scala b/src/compiler/scala/tools/ant/FastScalac.scala index 8df43977d0..8af86c6759 100644 --- a/src/compiler/scala/tools/ant/FastScalac.scala +++ b/src/compiler/scala/tools/ant/FastScalac.scala @@ -81,18 +81,18 @@ class FastScalac extends Scalac { // StringSetting List.flatten( List(settings.outdir, settings.classpath, settings.bootclasspath, - settings.extdirs, settings.encoding) map (s => List(s.nme, s.value))) ::: + settings.extdirs, settings.encoding) map (s => List(s.name, s.value))) ::: // '-server' option (if (serverAddr.isEmpty) Nil else List("-server", serverAddr.get)) ::: // ChoiceSetting - (List(settings.debuginfo, settings.target) map (s => s.nme + ":" + s.value)) ::: + (List(settings.debuginfo, settings.target) map (s => s.name + ":" + s.value)) ::: // BooleanSetting trim( List(settings.debug, settings.deprecation, settings.nopredefs, - settings.verbose, reset, shutdown) map (s => if (s.value) s.nme else "")) ::: + settings.verbose, reset, shutdown) map (s => if (s.value) s.name else "")) ::: // PhaseSetting trim( - List(settings.log) map (s => if (s.value.isEmpty) "" else s.nme + ":" + s.value)) + List(settings.log) map (s => if (s.value.isEmpty) "" else s.name + ":" + s.value)) val args = (cmdOptions ::: (sourceFiles map (.toString()))).toArray try { diff --git a/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala b/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala index cf6e6672db..4ba176d0fe 100644 --- a/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala +++ b/src/compiler/scala/tools/nsc/GenericRunnerSettings.scala @@ -34,8 +34,11 @@ extends Settings(error) { is not added to allsettings. Thus, */ class DefinesSetting - extends Setting("-D<prop>", "set a Java property") + extends Setting("set a Java property") { + + def name = "-D<prop>" + private val props = new Queue[(String, String)] def value = props.toList diff --git a/src/compiler/scala/tools/nsc/Settings.scala b/src/compiler/scala/tools/nsc/Settings.scala index a0429ffd44..f3e073ac6f 100644 --- a/src/compiler/scala/tools/nsc/Settings.scala +++ b/src/compiler/scala/tools/nsc/Settings.scala @@ -148,7 +148,10 @@ class Settings(error: String => unit) { /** A base class for settings of all types. * Subclasses each define a `value' field of the appropriate type. */ - abstract class Setting(val name: String, descr: String) { + abstract class Setting(descr: String) { + + /** The name of the option as written on the command line, '-' included. */ + def name: String /** If first arg defines this setting, consume it as well as all following * args needed to define the setting. If this can be done without @@ -178,8 +181,7 @@ class Settings(error: String => unit) { } /** A setting represented by a boolean flag (false, unless set) */ - case class BooleanSetting(nme: String, descr: String) - extends Setting(nme, descr) { + case class BooleanSetting(name: String, descr: String) extends Setting(descr) { var value: boolean = false def tryToSet(args: List[String]): List[String] = args match { @@ -195,8 +197,8 @@ class Settings(error: String => unit) { } /** A setting represented by a string, (`default' unless set) */ - case class StringSetting(nme: String, arg: String, descr: String, default: String) - extends Setting(nme, descr) { + case class StringSetting(name: String, arg: String, descr: String, default: String) + extends Setting(descr) { override def hiddenToIDE = true; var abbreviation: String = null @@ -226,8 +228,8 @@ class Settings(error: String => unit) { /** A setting represented by a string in a given set of <code>choices</code>, * (<code>default</code> unless set). */ - case class ChoiceSetting(nme: String, descr: String, choices: List[String], default: String) - extends Setting(nme, descr + choices.mkString(" (", ",", ")")) { + case class ChoiceSetting(name: String, descr: String, choices: List[String], default: String) + extends Setting(descr + choices.mkString(" (", ",", ")")) { protected var v: String = default def value: String = this.v @@ -263,8 +265,8 @@ class Settings(error: String => unit) { * index of the selected choice. The <code>defaultEmpty</code> is used when * this setting is used without specifying any of the available choices. */ - class DebugSetting(nme: String, descr: String, choices: List[String], default: String, defaultEmpty: String) - extends ChoiceSetting(nme, descr, choices, default) { + class DebugSetting(name: String, descr: String, choices: List[String], default: String, defaultEmpty: String) + extends ChoiceSetting(name, descr, choices, default) { def indexOf[a](xs: List[a], e: a): Option[Int] = xs match { case y :: ys => if (e == y) Some(0) else indexOf(ys, e) match { @@ -305,8 +307,8 @@ class Settings(error: String => unit) { * phase names. This is not checked here, however. * (the empty list, unless set) */ - case class PhasesSetting(nme: String, descr: String) - extends Setting(nme, descr + " <phase>") { // (see -showphases)") { + case class PhasesSetting(name: String, descr: String) + extends Setting(descr + " <phase>") { // (see -showphases)") { override def hiddenToIDE = true var value: List[String] = List() |