summaryrefslogtreecommitdiff
path: root/src/scalap
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2009-02-24 14:14:01 +0000
committermichelou <michelou@epfl.ch>2009-02-24 14:14:01 +0000
commit0f81e1686bef598c5353a7187a332f3008492f29 (patch)
tree875ecf733730c066f016f44a1e3d8751b07f5d39 /src/scalap
parent57e95eb403c325594e17c6f84852bbdc49954fd6 (diff)
downloadscala-0f81e1686bef598c5353a7187a332f3008492f29.tar.gz
scala-0f81e1686bef598c5353a7187a332f3008492f29.tar.bz2
scala-0f81e1686bef598c5353a7187a332f3008492f29.zip
removed deprecated for-loops and units
Diffstat (limited to 'src/scalap')
-rw-r--r--src/scalap/scala/tools/scalap/JavaWriter.scala68
1 files changed, 36 insertions, 32 deletions
diff --git a/src/scalap/scala/tools/scalap/JavaWriter.scala b/src/scalap/scala/tools/scalap/JavaWriter.scala
index 46d1f0fb56..55e5df5f27 100644
--- a/src/scalap/scala/tools/scalap/JavaWriter.scala
+++ b/src/scalap/scala/tools/scalap/JavaWriter.scala
@@ -1,6 +1,6 @@
/* ___ ____ ___ __ ___ ___
** / _// __// _ | / / / _ | / _ \ Scala classfile decoder
-** __\ \/ /__/ __ |/ /__/ __ |/ ___/ (c) 2003-2006, LAMP/EPFL
+** __\ \/ /__/ __ |/ /__/ __ |/ ___/ (c) 2003-2009, LAMP/EPFL
** /____/\___/_/ |_/____/_/ |_/_/
**
*/
@@ -16,7 +16,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
val cf = classfile
- def flagsToStr(clazz: Boolean, flags: Int) = {
+ def flagsToStr(clazz: Boolean, flags: Int): String = {
val buffer = new StringBuffer()
var x: StringBuffer = buffer
if (((flags & 0x0007) == 0) &&
@@ -32,7 +32,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
buffer.toString()
}
- def nameToClass(str: String) = {
+ def nameToClass(str: String): String = {
val res = Names.decode(str.replace('/', '.'))
if (res == "java.lang.Object") "scala.Any" else res
}
@@ -54,37 +54,41 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
def sigToType(str: String): String =
sigToType(str, 0)._1
- def sigToType(str: String, i: Int): Pair[String, Int] = str.charAt(i) match {
- case 'B' => Pair("scala.Byte", i + 1)
- case 'C' => Pair("scala.Char", i + 1)
- case 'D' => Pair("scala.Double", i + 1)
- case 'F' => Pair("scala.Float", i + 1)
- case 'I' => Pair("scala.Int", i + 1)
- case 'J' => Pair("scala.Long", i + 1)
- case 'S' => Pair("scala.Short", i + 1)
- case 'V' => Pair("scala.Unit", i + 1)
- case 'Z' => Pair("scala.Boolean", i + 1)
- case 'L' => val j = str.indexOf(';', i);
- Pair(nameToClass(str.substring(i + 1, j)), j + 1)
- case '[' => val Pair(tpe, j) = sigToType(str, i + 1);
- Pair("scala.Array[" + tpe + "]", j)
- case '(' => val Pair(tpe, j) = sigToType0(str, i + 1);
- Pair("(" + tpe, j)
- case ')' => val Pair(tpe, j) = sigToType(str, i + 1);
- Pair("): " + tpe, j)
+ def sigToType(str: String, i: Int): (String, Int) = str.charAt(i) match {
+ case 'B' => ("scala.Byte", i + 1)
+ case 'C' => ("scala.Char", i + 1)
+ case 'D' => ("scala.Double", i + 1)
+ case 'F' => ("scala.Float", i + 1)
+ case 'I' => ("scala.Int", i + 1)
+ case 'J' => ("scala.Long", i + 1)
+ case 'S' => ("scala.Short", i + 1)
+ case 'V' => ("scala.Unit", i + 1)
+ case 'Z' => ("scala.Boolean", i + 1)
+ case 'L' =>
+ val j = str.indexOf(';', i)
+ (nameToClass(str.substring(i + 1, j)), j + 1)
+ case '[' =>
+ val (tpe, j) = sigToType(str, i + 1)
+ ("scala.Array[" + tpe + "]", j)
+ case '(' =>
+ val (tpe, j) = sigToType0(str, i + 1)
+ ("(" + tpe, j)
+ case ')' =>
+ val (tpe, j) = sigToType(str, i + 1)
+ ("): " + tpe, j)
}
- def sigToType0(str: String, i: Int): Pair[String, Int] =
+ def sigToType0(str: String, i: Int): (String, Int) =
if (str.charAt(i) == ')')
sigToType(str, i)
else {
- val Pair(tpe, j) = sigToType(str, i)
+ val (tpe, j) = sigToType(str, i)
if (str.charAt(j) == ')') {
- val Pair(rest, k) = sigToType(str, j)
- Pair(tpe + rest, k)
+ val (rest, k) = sigToType(str, j)
+ (tpe + rest, k)
} else {
- val Pair(rest, k) = sigToType0(str, j)
- Pair(tpe + ", " + rest, k)
+ val (rest, k) = sigToType0(str, j)
+ (tpe + ", " + rest, k)
}
}
@@ -109,7 +113,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
def isConstr(name: String) = (name == "<init>")
- def printField(flags: Int, name: Int, tpe: Int, attribs: List[cf.Attribute]) = {
+ def printField(flags: Int, name: Int, tpe: Int, attribs: List[cf.Attribute]) {
print(flagsToStr(false, flags))
if ((flags & 0x0010) != 0)
print("val " + Names.decode(getName(name)))
@@ -118,7 +122,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
print(": " + getType(tpe) + ";").newline
}
- def printMethod(flags: Int, name: Int, tpe: Int, attribs: List[cf.Attribute]) = {
+ def printMethod(flags: Int, name: Int, tpe: Int, attribs: List[cf.Attribute]) {
if (getName(name) == "<init>")
print(flagsToStr(false, flags))
attribs find {
@@ -155,7 +159,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
case Some(cf.Attribute(_, data)) =>
val n = ((data(0) & 0xff) << 8) + (data(1) & 0xff)
indent.print("throws ")
- for (val i <- Iterator.range(0, n) map {x => 2 * (x + 1)}) {
+ for (i <- Iterator.range(0, n) map {x => 2 * (x + 1)}) {
val inx = ((data(i) & 0xff) << 8) + (data(i+1) & 0xff)
if (i > 2) print(", ")
print(getClassName(inx).trim())
@@ -165,7 +169,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
}
}
- def printClassHeader = {
+ def printClassHeader {
if (isInterface(cf.flags)) {
print("trait " + getSimpleClassName(cf.classname))
} else {
@@ -178,7 +182,7 @@ class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer
}
}
- def printClass = {
+ def printClass {
val pck = getPackage(cf.classname);
if (pck.length() > 0)
println("package " + pck + ";")