summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormihaylov <mihaylov@epfl.ch>2007-03-26 15:49:25 +0000
committermihaylov <mihaylov@epfl.ch>2007-03-26 15:49:25 +0000
commit831cb380f1eeb62090b549d739296ef0e7f856b9 (patch)
treeb2493f843e444120d75bd445c1fe4eb47f54f973
parent1ce961f61e248054c8e7a6cf92db5e277973dafd (diff)
downloadscala-831cb380f1eeb62090b549d739296ef0e7f856b9.tar.gz
scala-831cb380f1eeb62090b549d739296ef0e7f856b9.tar.bz2
scala-831cb380f1eeb62090b549d739296ef0e7f856b9.zip
Small refactoring of the Setting classes
-rw-r--r--src/compiler/scala/tools/ant/FastScalac.scala8
-rw-r--r--src/compiler/scala/tools/nsc/GenericRunnerSettings.scala5
-rw-r--r--src/compiler/scala/tools/nsc/Settings.scala24
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()