From 0f81e1686bef598c5353a7187a332f3008492f29 Mon Sep 17 00:00:00 2001 From: michelou Date: Tue, 24 Feb 2009 14:14:01 +0000 Subject: removed deprecated for-loops and units --- src/scalap/scala/tools/scalap/JavaWriter.scala | 68 ++++++++++++++------------ 1 file changed, 36 insertions(+), 32 deletions(-) (limited to 'src/scalap') 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 == "") - 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) == "") 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 + ";") -- cgit v1.2.3