aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/config/Settings.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-08-03 20:44:27 +0200
committerMartin Odersky <odersky@gmail.com>2014-08-03 20:45:09 +0200
commit168e4f18f0b2f8ac0e3d7ef5128797303dec6a44 (patch)
treed07dbc2cd645e56784cf5c2b830508724761fc8c /src/dotty/tools/dotc/config/Settings.scala
parent2020938a77590f8c461041707716eca228f647d2 (diff)
downloaddotty-168e4f18f0b2f8ac0e3d7ef5128797303dec6a44.tar.gz
dotty-168e4f18f0b2f8ac0e3d7ef5128797303dec6a44.tar.bz2
dotty-168e4f18f0b2f8ac0e3d7ef5128797303dec6a44.zip
Added version settings -migration, -source
Diffstat (limited to 'src/dotty/tools/dotc/config/Settings.scala')
-rw-r--r--src/dotty/tools/dotc/config/Settings.scala9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/config/Settings.scala b/src/dotty/tools/dotc/config/Settings.scala
index 17d4d6712..531c49bfb 100644
--- a/src/dotty/tools/dotc/config/Settings.scala
+++ b/src/dotty/tools/dotc/config/Settings.scala
@@ -18,6 +18,7 @@ object Settings {
val IntTag = ClassTag.Int
val StringTag = ClassTag(classOf[String])
val ListTag = ClassTag(classOf[List[_]])
+ val VersionTag = ClassTag(classOf[ScalaVersion])
class SettingsState(initialValues: Seq[Any]) {
private var values = ArrayBuffer(initialValues: _*)
@@ -132,6 +133,11 @@ object Settings {
case _: NumberFormatException =>
fail(s"$arg2 is not an integer argument for $name", args2)
}
+ case (VersionTag, _) =>
+ ScalaVersion.parse(argRest) match {
+ case Success(v) => update(v, args)
+ case Failure(ex) => fail(ex.getMessage, args)
+ }
case (_, Nil) =>
missingArg
}
@@ -246,5 +252,8 @@ object Settings {
def PrefixSetting(name: String, pre: String, descr: String): Setting[List[String]] =
publish(Setting(name, descr, Nil, prefix = pre))
+
+ def VersionSetting(name: String, descr: String, default: ScalaVersion = NoScalaVersion): Setting[ScalaVersion] =
+ publish(Setting(name, descr, default))
}
} \ No newline at end of file