diff options
author | Paul Phillips <paulp@improving.org> | 2010-03-07 18:53:07 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-03-07 18:53:07 +0000 |
commit | 69d8830083ad509acadcca3051b64154532bc145 (patch) | |
tree | d6bd0da6bbc2c4f7a89c8d4d8058e06053423e38 /src | |
parent | 60e50904a39315950e186eefc8d12b1f30978d15 (diff) | |
download | scala-69d8830083ad509acadcca3051b64154532bc145.tar.gz scala-69d8830083ad509acadcca3051b64154532bc145.tar.bz2 scala-69d8830083ad509acadcca3051b64154532bc145.zip |
Removed unnecessary DebugSetting, folding the s...
Removed unnecessary DebugSetting, folding the small extra functionality
back into ChoiceSetting. No review.
Diffstat (limited to 'src')
5 files changed, 11 insertions, 36 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala index 5929b45369..74100976fc 100644 --- a/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala +++ b/src/compiler/scala/tools/nsc/backend/jvm/GenJVM.scala @@ -73,6 +73,8 @@ abstract class GenJVM extends SubComponent { class BytecodeGenerator { import JAccessFlags._ + def debugLevel = settings.debuginfo.indexOfChoice + val MIN_SWITCH_DENSITY = 0.7 val INNER_CLASSES_FLAGS = (ACC_PUBLIC | ACC_PRIVATE | ACC_PROTECTED | ACC_STATIC | ACC_FINAL | ACC_INTERFACE | ACC_ABSTRACT) @@ -112,9 +114,9 @@ abstract class GenJVM extends SubComponent { val fjbgContext = new FJBGContext(49, 0) - val emitSource = settings.debuginfo.level >= 1 - val emitLines = settings.debuginfo.level >= 2 - val emitVars = settings.debuginfo.level >= 3 + val emitSource = debugLevel >= 1 + val emitLines = debugLevel >= 2 + val emitVars = debugLevel >= 3 /** Write a class to disk, adding the Scala signature (pickled type information) and * inner classes. diff --git a/src/compiler/scala/tools/nsc/settings/AbsScalacSettings.scala b/src/compiler/scala/tools/nsc/settings/AbsScalacSettings.scala index 34f10d3769..bb0c6f8ee7 100644 --- a/src/compiler/scala/tools/nsc/settings/AbsScalacSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/AbsScalacSettings.scala @@ -11,7 +11,6 @@ trait AbsScalacSettings { type BooleanSetting <: AbsSetting type ChoiceSetting <: AbsSetting - type DebugSetting <: AbsSetting type DefinesSetting <: AbsSetting type IntSetting <: AbsSetting type MultiStringSetting <: AbsSetting @@ -24,7 +23,6 @@ trait AbsScalacSettings { def BooleanSetting(name: String, descr: String): BooleanSetting def ChoiceSetting(name: String, descr: String, choices: List[String], default: String): ChoiceSetting - def DebugSetting(name: String, descr: String, choices: List[String], default: String, defaultEmpty: String): DebugSetting 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 diff --git a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala index 3b1cb89f41..8e11b4f506 100644 --- a/src/compiler/scala/tools/nsc/settings/MutableSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/MutableSettings.scala @@ -174,8 +174,8 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal } def BooleanSetting(name: String, descr: String) = add(new BooleanSetting(name, descr)) - def ChoiceSetting(name: String, descr: String, choices: List[String], default: String) = add(new ChoiceSetting(name, descr, choices, default)) - def DebugSetting(name: String, descr: String, choices: List[String], default: String, defaultEmpty: String) = add(new DebugSetting(name, descr, choices, default, defaultEmpty)) + def ChoiceSetting(name: String, descr: String, choices: List[String], default: String) = + add(new ChoiceSetting(name, descr, choices, default)) def DefinesSetting() = add(new DefinesSetting()) def IntSetting(name: String, descr: String, default: Int, range: Option[(Int, Int)], parser: String => Option[Int]) = add(new IntSetting(name, descr, default, range, parser)) def MultiStringSetting(name: String, arg: String, descr: String) = add(new MultiStringSetting(name, arg, descr)) @@ -494,8 +494,10 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal type T = String protected var v: String = default protected def argument: String = name drop 1 + def indexOfChoice: Int = choices indexOf value def tryToSet(args: List[String]) = { value = default ; Some(args) } + override def tryToSetColon(args: List[String]) = args match { case Nil => errorAndValue("missing " + argument, None) case List(x) if choices contains x => value = x ; Some(Nil) @@ -508,33 +510,6 @@ class MutableSettings(val errorFn: String => Unit) extends AbsSettings with Scal withHelpSyntax(name + ":<" + argument + ">") } - /** Same as ChoiceSetting but have a <code>level</code> int which tells the - * 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 private[nsc]( - name: String, - descr: String, - choices: List[String], - default: String, - val defaultEmpty: String) - extends ChoiceSetting(name, descr, choices, default) { - def indexOf[T](xs: List[T], e: T): Option[Int] = xs.indexOf(e) match { - case -1 => None - case x => Some(x) - } - var level: Int = indexOf(choices, default).get - - override def value_=(choice: String) = { - super.value_=(choice) - level = indexOf(choices, choice).get - } - - override def tryToSet(args: List[String]) = - if (args.isEmpty) { value = defaultEmpty ; Some(Nil) } - else super.tryToSet(args) - } - /** A setting represented by a list of strings which should be prefixes of * phase names. This is not checked here, however. Alternatively the string * "all" can be used to represent all phases. diff --git a/src/compiler/scala/tools/nsc/settings/ScalacSettings.scala b/src/compiler/scala/tools/nsc/settings/ScalacSettings.scala index 2f9a362457..60c996f02d 100644 --- a/src/compiler/scala/tools/nsc/settings/ScalacSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/ScalacSettings.scala @@ -64,7 +64,7 @@ trait ScalacSettings extends AbsScalacSettings with StandardScalaSettings { val deprecation = BooleanSetting ("-deprecation", "Output source locations where deprecated APIs are used") val encoding = StringSetting ("-encoding", "encoding", "Specify character encoding used by source files", Properties.sourceEncoding) val explaintypes = BooleanSetting ("-explaintypes", "Explain type errors in more detail") - val g = DebugSetting ("-g", "Specify level of generated debugging info", List("none", "source", "line", "vars", "notailcalls"), "vars", "vars") + val g = ChoiceSetting ("-g", "Specify level of generated debugging info", List("none", "source", "line", "vars", "notailcalls"), "vars") val help = BooleanSetting ("-help", "Print a synopsis of standard options") val make = ChoiceSetting ("-make", "Specify recompilation detection strategy", List("all", "changed", "immediate", "transitive", "transitivenocp"), "all") . withHelpSyntax("-make:<strategy>") diff --git a/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala b/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala index 69d411235c..6ad82454e5 100644 --- a/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala +++ b/src/compiler/scala/tools/nsc/settings/StandardScalaSettings.scala @@ -19,7 +19,7 @@ trait StandardScalaSettings { val classpath: PathSetting val d: OutputSetting val extdirs: PathSetting - val g: DebugSetting + val g: ChoiceSetting val javabootclasspath: PathSetting val javaextdirs: PathSetting val javaignorecp: BooleanSetting |