summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/cmd/FromString.scala
diff options
context:
space:
mode:
authorEugene Burmako <xeno.by@gmail.com>2012-06-06 14:02:45 +0200
committerEugene Burmako <xeno.by@gmail.com>2012-06-08 15:23:13 +0200
commit8ce47873f2207a72d902e01cc54eef26f28d1213 (patch)
treebfa03485dffd18c00e651ccd82f35eb1f3a93fe9 /src/compiler/scala/tools/cmd/FromString.scala
parent3a198976ef3732a894d71f7ca7f66be2f7674bed (diff)
downloadscala-8ce47873f2207a72d902e01cc54eef26f28d1213.tar.gz
scala-8ce47873f2207a72d902e01cc54eef26f28d1213.tar.bz2
scala-8ce47873f2207a72d902e01cc54eef26f28d1213.zip
preparations: always explicitly provide type tags
In our codebase we now explicitly provide type tags even if they can be materialized. This is necessary to ease the upcoming reflection refactoring (or refactorings :)).
Diffstat (limited to 'src/compiler/scala/tools/cmd/FromString.scala')
-rw-r--r--src/compiler/scala/tools/cmd/FromString.scala14
1 files changed, 7 insertions, 7 deletions
diff --git a/src/compiler/scala/tools/cmd/FromString.scala b/src/compiler/scala/tools/cmd/FromString.scala
index 91356b3c19..dd3b680afe 100644
--- a/src/compiler/scala/tools/cmd/FromString.scala
+++ b/src/compiler/scala/tools/cmd/FromString.scala
@@ -7,7 +7,7 @@ package scala.tools
package cmd
import nsc.io.{ Path, File, Directory }
-import scala.reflect.TypeTag
+import scala.tools.reflect.StdTags._
/** A general mechanism for defining how a command line argument
* (always a String) is transformed into an arbitrary type. A few
@@ -29,19 +29,19 @@ object FromString {
/** Path related stringifiers.
*/
- val ExistingFile: FromString[File] = new FromString[File] {
+ val ExistingFile: FromString[File] = new FromString[File]()(tagOfFile) {
override def isDefinedAt(s: String) = toFile(s).isFile
def apply(s: String): File =
if (isDefinedAt(s)) toFile(s)
else cmd.runAndExit(println("'%s' is not an existing file." format s))
}
- val ExistingDir: FromString[Directory] = new FromString[Directory] {
+ val ExistingDir: FromString[Directory] = new FromString[Directory]()(tagOfDirectory) {
override def isDefinedAt(s: String) = toDir(s).isDirectory
def apply(s: String): Directory =
if (isDefinedAt(s)) toDir(s)
else cmd.runAndExit(println("'%s' is not an existing directory." format s))
}
- def ExistingDirRelativeTo(root: Directory) = new FromString[Directory] {
+ def ExistingDirRelativeTo(root: Directory) = new FromString[Directory]()(tagOfDirectory) {
private def resolve(s: String) = toDir(s) toAbsoluteWithRoot root toDirectory
override def isDefinedAt(s: String) = resolve(s).isDirectory
def apply(s: String): Directory =
@@ -52,19 +52,19 @@ object FromString {
/** Argument expander, i.e. turns single argument "foo bar baz" into argument
* list "foo", "bar", "baz".
*/
- val ArgumentsFromString: FromString[List[String]] = new FromString[List[String]] {
+ val ArgumentsFromString: FromString[List[String]] = new FromString[List[String]]()(tagOfListOfString) {
def apply(s: String) = toArgs(s)
}
/** Identity.
*/
- implicit val StringFromString: FromString[String] = new FromString[String] {
+ implicit val StringFromString: FromString[String] = new FromString[String]()(tagOfString) {
def apply(s: String): String = s
}
/** Implicit as the most likely to be useful as-is.
*/
- implicit val IntFromString: FromString[Int] = new FromString[Int] {
+ implicit val IntFromString: FromString[Int] = new FromString[Int]()(tagOfInt) {
override def isDefinedAt(s: String) = safeToInt(s).isDefined
def apply(s: String) = safeToInt(s).get
def safeToInt(s: String): Option[Int] = try Some(java.lang.Integer.parseInt(s)) catch { case _: NumberFormatException => None }