summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@typesafe.com>2014-02-26 18:08:07 -0800
committerAdriaan Moors <adriaan.moors@typesafe.com>2014-02-26 18:08:07 -0800
commit59bcf6b98cedb95bc15c98ab37246b42dda12489 (patch)
tree2f74444601488e1ed13fb103214879428bb7c1a5
parent8b95e11f6bf53f6f350ee59a66537b89a04783c2 (diff)
parent7bb1f41cd152b4e4930a1d8f769ddc2304cf6877 (diff)
downloadscala-59bcf6b98cedb95bc15c98ab37246b42dda12489.tar.gz
scala-59bcf6b98cedb95bc15c98ab37246b42dda12489.tar.bz2
scala-59bcf6b98cedb95bc15c98ab37246b42dda12489.zip
Merge pull request #3588 from adriaanm/rebase-3587
Revert "SI-7624 Fix -feature warnings in scala/tools/scalap"
-rwxr-xr-xbuild.xml2
-rw-r--r--src/scalap/scala/tools/scalap/Arguments.scala1
-rw-r--r--src/scalap/scala/tools/scalap/ByteArrayReader.scala12
-rw-r--r--src/scalap/scala/tools/scalap/Classfile.scala2
-rw-r--r--src/scalap/scala/tools/scalap/Classfiles.scala2
-rw-r--r--src/scalap/scala/tools/scalap/CodeWriter.scala8
-rw-r--r--src/scalap/scala/tools/scalap/Decode.scala30
-rw-r--r--src/scalap/scala/tools/scalap/JavaWriter.scala4
-rw-r--r--src/scalap/scala/tools/scalap/Main.scala16
-rw-r--r--src/scalap/scala/tools/scalap/MetaParser.scala6
-rw-r--r--src/scalap/scala/tools/scalap/Properties.scala3
-rw-r--r--src/scalap/scala/tools/scalap/rules/package.scala6
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala (renamed from src/scalap/scala/tools/scalap/rules/Memoisable.scala)9
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/Result.scala (renamed from src/scalap/scala/tools/scalap/rules/Result.scala)4
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/Rule.scala (renamed from src/scalap/scala/tools/scalap/rules/Rule.scala)7
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/Rules.scala (renamed from src/scalap/scala/tools/scalap/rules/Rules.scala)3
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/SeqRule.scala (renamed from src/scalap/scala/tools/scalap/rules/SeqRule.scala)9
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala (renamed from src/scalap/scala/tools/scalap/scalasig/ClassFileParser.scala)23
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/Flags.scala (renamed from src/scalap/scala/tools/scalap/scalasig/Flags.scala)5
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala (renamed from src/scalap/scala/tools/scalap/scalasig/ScalaSig.scala)20
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala (renamed from src/scalap/scala/tools/scalap/scalasig/ScalaSigPrinter.scala)31
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/SourceFileAttributeParser.scala (renamed from src/scalap/scala/tools/scalap/scalasig/SourceFileAttributeParser.scala)12
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/Symbol.scala (renamed from src/scalap/scala/tools/scalap/scalasig/Symbol.scala)5
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala (renamed from src/scalap/scala/tools/scalap/scalasig/Type.scala)5
-rw-r--r--src/scalap/scala/tools/scalap/scalax/util/StringUtil.scala19
-rw-r--r--versions.properties2
26 files changed, 163 insertions, 83 deletions
diff --git a/build.xml b/build.xml
index 4979ec26e7..ffac3faaa5 100755
--- a/build.xml
+++ b/build.xml
@@ -274,6 +274,7 @@ TODO:
</artifact:dependencies>
+ <artifact:remoteRepository id="sonatype-release" url="https://oss.sonatype.org/content/repositories/releases"/>
<artifact:remoteRepository id="extra-repo" url="${extra.repo.url}"/>
<!-- prepare, for each of the names below, the property "@{name}.cross", set to the
@@ -293,6 +294,7 @@ TODO:
<!-- so we don't have to wait for artifacts to synch to maven central
(we don't distribute partest with Scala, so the risk of sonatype and maven being out of synch is irrelevant):
-->
+ <artifact:remoteRepository refid="sonatype-release"/>
<artifact:remoteRepository refid="extra-repo"/>
<dependency groupId="org.scala-lang.modules" artifactId="scala-partest${partest.cross}" version="${partest.version.number}" />
</artifact:dependencies>
diff --git a/src/scalap/scala/tools/scalap/Arguments.scala b/src/scalap/scala/tools/scalap/Arguments.scala
index cb0a92b6b3..c375a5bac4 100644
--- a/src/scalap/scala/tools/scalap/Arguments.scala
+++ b/src/scalap/scala/tools/scalap/Arguments.scala
@@ -5,6 +5,7 @@
**
*/
+
package scala.tools.scalap
import scala.collection.mutable
diff --git a/src/scalap/scala/tools/scalap/ByteArrayReader.scala b/src/scalap/scala/tools/scalap/ByteArrayReader.scala
index 59f083ee76..cf160871dd 100644
--- a/src/scalap/scala/tools/scalap/ByteArrayReader.scala
+++ b/src/scalap/scala/tools/scalap/ByteArrayReader.scala
@@ -5,7 +5,10 @@
**
*/
-package scala.tools.scalap
+
+package scala
+package tools.scalap
+
class ByteArrayReader(content: Array[Byte]) {
@@ -101,6 +104,9 @@ class ByteArrayReader(content: Array[Byte]) {
def getDouble(bp: Int): Double = java.lang.Double.longBitsToDouble(getLong(bp))
/** skip next 'n' bytes
- */
- def skip(n: Int): Unit = bp += n
+ */
+ def skip(n: Int) {
+ bp += n
+ }
+
}
diff --git a/src/scalap/scala/tools/scalap/Classfile.scala b/src/scalap/scala/tools/scalap/Classfile.scala
index d9d264bbbf..f62df285f9 100644
--- a/src/scalap/scala/tools/scalap/Classfile.scala
+++ b/src/scalap/scala/tools/scalap/Classfile.scala
@@ -5,8 +5,10 @@
**
*/
+
package scala.tools.scalap
+
class Classfile(in: ByteArrayReader) {
import Classfiles._
diff --git a/src/scalap/scala/tools/scalap/Classfiles.scala b/src/scalap/scala/tools/scalap/Classfiles.scala
index 982a83cfa0..9295dd7aff 100644
--- a/src/scalap/scala/tools/scalap/Classfiles.scala
+++ b/src/scalap/scala/tools/scalap/Classfiles.scala
@@ -5,8 +5,10 @@
**
*/
+
package scala.tools.scalap
+
object Classfiles {
final val JAVA_MAGIC = 0xCAFEBABE
final val JAVA_MAJOR_VERSION = 45
diff --git a/src/scalap/scala/tools/scalap/CodeWriter.scala b/src/scalap/scala/tools/scalap/CodeWriter.scala
index 21c4399d5c..168050096d 100644
--- a/src/scalap/scala/tools/scalap/CodeWriter.scala
+++ b/src/scalap/scala/tools/scalap/CodeWriter.scala
@@ -6,9 +6,13 @@
*/
-package scala.tools.scalap
+package scala
+package tools.scalap
-class CodeWriter(writer: java.io.Writer) {
+import java.io._
+
+
+class CodeWriter(writer: Writer) {
private val nl = scala.compat.Platform.EOL
private var step = " "
diff --git a/src/scalap/scala/tools/scalap/Decode.scala b/src/scalap/scala/tools/scalap/Decode.scala
index 69325c1ec8..76ce3f4173 100644
--- a/src/scalap/scala/tools/scalap/Decode.scala
+++ b/src/scalap/scala/tools/scalap/Decode.scala
@@ -5,14 +5,17 @@
**
*/
-package scala.tools.scalap
+// $Id$
-import scala.tools.scalap.scalasig._
+package scala.tools.scalap
-import scala.reflect.internal.util.ScalaClassLoader
+import scala.tools.scalap.scalax.rules.scalasig._
+import scala.tools.nsc.util.ScalaClassLoader
+import scala.tools.nsc.util.ScalaClassLoader.appLoader
import scala.reflect.internal.pickling.ByteCodecs
import ClassFileParser.{ ConstValueIndex, Annotation }
+import Main.{ SCALA_SIG, SCALA_SIG_ANNOTATION, BYTES_VALUE }
/** Temporary decoder. This would be better off in the scala.tools.nsc
* but right now the compiler won't acknowledge scala.tools.scalap
@@ -28,7 +31,7 @@ object Decode {
/** Return the classfile bytes representing the scala sig classfile attribute.
* This has been obsoleted by the switch to annotations.
*/
- def scalaSigBytes(name: String): Option[Array[Byte]] = scalaSigBytes(name, ScalaClassLoader.appLoader)
+ def scalaSigBytes(name: String): Option[Array[Byte]] = scalaSigBytes(name, appLoader)
def scalaSigBytes(name: String, classLoader: ScalaClassLoader): Option[Array[Byte]] = {
val bytes = classLoader.classBytes(name)
val reader = new ByteArrayReader(bytes)
@@ -36,16 +39,17 @@ object Decode {
cf.scalaSigAttribute map (_.data)
}
- /** Return the bytes representing the annotation. */
- def scalaSigAnnotationBytes(name: String): Option[Array[Byte]] = scalaSigAnnotationBytes(name, ScalaClassLoader.appLoader)
+ /** Return the bytes representing the annotation
+ */
+ def scalaSigAnnotationBytes(name: String): Option[Array[Byte]] = scalaSigAnnotationBytes(name, appLoader)
def scalaSigAnnotationBytes(name: String, classLoader: ScalaClassLoader): Option[Array[Byte]] = {
val bytes = classLoader.classBytes(name)
val byteCode = ByteCode(bytes)
val classFile = ClassFileParser.parse(byteCode)
import classFile._
- classFile annotation Main.SCALA_SIG_ANNOTATION map { case Annotation(_, els) =>
- val bytesElem = els find (x => constant(x.elementNameIndex) == Main.BYTES_VALUE) getOrElse null
+ classFile annotation SCALA_SIG_ANNOTATION map { case Annotation(_, els) =>
+ val bytesElem = els find (x => constant(x.elementNameIndex) == BYTES_VALUE) getOrElse null
val _bytes = bytesElem.elementValue match { case ConstValueIndex(x) => constantWrapped(x) }
val bytes = _bytes.asInstanceOf[StringBytesPair].bytes
val length = ByteCodecs.decode(bytes)
@@ -54,7 +58,8 @@ object Decode {
}
}
- /** private[scala] so nobody gets the idea this is a supported interface. */
+ /** private[scala] so nobody gets the idea this is a supported interface.
+ */
private[scala] def caseParamNames(path: String): Option[List[String]] = {
val (outer, inner) = (path indexOf '$') match {
case -1 => (path, "")
@@ -62,7 +67,7 @@ object Decode {
}
for {
- clazz <- ScalaClassLoader.appLoader.tryToLoadClass[AnyRef](outer)
+ clazz <- appLoader.tryToLoadClass[AnyRef](outer)
ssig <- ScalaSigParser.parse(clazz)
}
yield {
@@ -80,10 +85,11 @@ object Decode {
}
}
- /** Returns a map of Alias -> Type for the given package. */
+ /** Returns a map of Alias -> Type for the given package.
+ */
private[scala] def typeAliases(pkg: String) = {
for {
- clazz <- ScalaClassLoader.appLoader.tryToLoadClass[AnyRef](pkg + ".package")
+ clazz <- appLoader.tryToLoadClass[AnyRef](pkg + ".package")
ssig <- ScalaSigParser.parse(clazz)
}
yield {
diff --git a/src/scalap/scala/tools/scalap/JavaWriter.scala b/src/scalap/scala/tools/scalap/JavaWriter.scala
index 1ba89e4702..772cf6eacd 100644
--- a/src/scalap/scala/tools/scalap/JavaWriter.scala
+++ b/src/scalap/scala/tools/scalap/JavaWriter.scala
@@ -5,11 +5,13 @@
**
*/
+
package scala.tools.scalap
+import java.io._
import scala.reflect.NameTransformer
-class JavaWriter(classfile: Classfile, writer: java.io.Writer) extends CodeWriter(writer) {
+class JavaWriter(classfile: Classfile, writer: Writer) extends CodeWriter(writer) {
val cf = classfile
diff --git a/src/scalap/scala/tools/scalap/Main.scala b/src/scalap/scala/tools/scalap/Main.scala
index 44d7ef6a41..c72f416a89 100644
--- a/src/scalap/scala/tools/scalap/Main.scala
+++ b/src/scalap/scala/tools/scalap/Main.scala
@@ -5,17 +5,17 @@
**
*/
-package scala.tools.scalap
+package scala
+package tools.scalap
import java.io.{ PrintStream, OutputStreamWriter, ByteArrayOutputStream }
-
+import scala.reflect.NameTransformer
+import scalax.rules.scalasig._
import scala.tools.nsc.util.{ ClassPath, JavaClassPath }
-import scala.tools.nsc.util.ClassPath.DefaultJavaContext
+import scala.tools.util.PathResolver
+import ClassPath.DefaultJavaContext
import scala.tools.nsc.io.AbstractFile
-import scala.tools.scalap.scalasig._
-
-
/**The main object used to execute scalap on the command-line.
*
* @author Matthias Zenger, Stephane Micheloud, Burak Emir, Ilya Sergey
@@ -104,7 +104,7 @@ class Main {
// we have to encode every fragment of a name separately, otherwise the NameTransformer
// will encode using unicode escaping dot separators as well
// we can afford allocations because this is not a performance critical code
- classname.split('.').map(scala.reflect.NameTransformer.encode).mkString(".")
+ classname.split('.').map(NameTransformer.encode).mkString(".")
}
val cls = path.findClass(encName)
if (cls.isDefined && cls.get.binary.isDefined) {
@@ -185,7 +185,7 @@ object Main extends Main {
val cparg = List("-classpath", "-cp") map (arguments getArgument _) reduceLeft (_ orElse _)
val path = cparg match {
case Some(cp) => new JavaClassPath(DefaultJavaContext.classesInExpandedPath(cp), DefaultJavaContext)
- case _ => scala.tools.util.PathResolver.fromPathString(".") // include '.' in the default classpath SI-6669
+ case _ => PathResolver.fromPathString(".") // include '.' in the default classpath SI-6669
}
// print the classpath if output is verbose
if (verbose)
diff --git a/src/scalap/scala/tools/scalap/MetaParser.scala b/src/scalap/scala/tools/scalap/MetaParser.scala
index 324330466f..1ebf86268a 100644
--- a/src/scalap/scala/tools/scalap/MetaParser.scala
+++ b/src/scalap/scala/tools/scalap/MetaParser.scala
@@ -6,15 +6,17 @@
*/
-package scala.tools.scalap
+package scala
+package tools.scalap
+import java.util._
/** a parser class for parsing meta type information in classfiles
* generated by pico.
*/
class MetaParser(meta: String) {
- val scanner = new java.util.StringTokenizer(meta, "()[], \t<;", true)
+ val scanner = new StringTokenizer(meta, "()[], \t<;", true)
var token: String = _
val res = new StringBuffer
diff --git a/src/scalap/scala/tools/scalap/Properties.scala b/src/scalap/scala/tools/scalap/Properties.scala
index 432dd495e9..8f9a9d8606 100644
--- a/src/scalap/scala/tools/scalap/Properties.scala
+++ b/src/scalap/scala/tools/scalap/Properties.scala
@@ -9,7 +9,8 @@
package scala.tools.scalap
/** Loads decoder.properties from the jar. */
-object Properties extends scala.util.PropertiesTrait {
+object Properties extends scala.util.PropertiesTrait
+{
protected def propCategory = "decoder"
protected def pickJarBasedOn = classOf[Classfile]
}
diff --git a/src/scalap/scala/tools/scalap/rules/package.scala b/src/scalap/scala/tools/scalap/rules/package.scala
deleted file mode 100644
index dcd5f7ac00..0000000000
--- a/src/scalap/scala/tools/scalap/rules/package.scala
+++ /dev/null
@@ -1,6 +0,0 @@
-package scala.tools.scalap
-
-package object rules {
- // make some language features in this package compile without warning
- implicit def postfixOps = scala.language.postfixOps
-}
diff --git a/src/scalap/scala/tools/scalap/rules/Memoisable.scala b/src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala
index 418141bee7..bdd1761ed9 100644
--- a/src/scalap/scala/tools/scalap/rules/Memoisable.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/Memoisable.scala
@@ -10,7 +10,9 @@
//
// -----------------------------------------------------------------------------
-package scala.tools.scalap.rules
+package scala.tools.scalap
+package scalax
+package rules
import scala.collection.mutable
@@ -20,7 +22,7 @@ trait MemoisableRules extends Rules {
from[In] { in => in.memo(key, rule(in)) }
}
- override def ruleWithName[In, Out, A, X](name: String, f: In => Result[Out, A, X]) = super.ruleWithName(name, (in: In) => in match {
+ override def ruleWithName[In, Out, A, X](name: String, f: In => rules.Result[Out, A, X]) = super.ruleWithName(name, (in: In) => in match {
case s: Memoisable => s.memo(name, f(in))
case _ => f(in)
})
@@ -54,3 +56,6 @@ trait DefaultMemoisable extends Memoisable {
if(DefaultMemoisable.debug) println(key + " -> " + t + " (" + out + ")")
}
}
+
+
+
diff --git a/src/scalap/scala/tools/scalap/rules/Result.scala b/src/scalap/scala/tools/scalap/scalax/rules/Result.scala
index ae05416d7a..f37340e7b7 100644
--- a/src/scalap/scala/tools/scalap/rules/Result.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/Result.scala
@@ -10,7 +10,9 @@
//
// -----------------------------------------------------------------------------
-package scala.tools.scalap.rules;
+package scala.tools.scalap
+package scalax
+package rules;
/** Represents the combined value of two rules applied in sequence.
*
diff --git a/src/scalap/scala/tools/scalap/rules/Rule.scala b/src/scalap/scala/tools/scalap/scalax/rules/Rule.scala
index 0a00111f7a..307458fc7d 100644
--- a/src/scalap/scala/tools/scalap/rules/Rule.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/Rule.scala
@@ -10,7 +10,9 @@
//
// -----------------------------------------------------------------------------
-package scala.tools.scalap.rules
+package scala.tools.scalap
+package scalax
+package rules
/** A Rule is a function from some input to a Result. The result may be:
* <ul>
@@ -170,3 +172,6 @@ trait Choice[-In, +Out, +A, +X] extends Rule[In, Out, A, X] {
lazy val choices = Choice.this.choices ::: other :: Nil
}
}
+
+
+
diff --git a/src/scalap/scala/tools/scalap/rules/Rules.scala b/src/scalap/scala/tools/scalap/scalax/rules/Rules.scala
index bdcc81c22d..dd17c46f79 100644
--- a/src/scalap/scala/tools/scalap/rules/Rules.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/Rules.scala
@@ -11,8 +11,11 @@
// -----------------------------------------------------------------------------
package scala.tools.scalap
+package scalax
package rules
+import language.postfixOps
+
trait Name {
def name: String
override def toString = name
diff --git a/src/scalap/scala/tools/scalap/rules/SeqRule.scala b/src/scalap/scala/tools/scalap/scalax/rules/SeqRule.scala
index e96a38b6be..f3c0235b23 100644
--- a/src/scalap/scala/tools/scalap/rules/SeqRule.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/SeqRule.scala
@@ -10,7 +10,11 @@
//
// -----------------------------------------------------------------------------
-package scala.tools.scalap.rules
+package scala.tools.scalap
+package scalax
+package rules
+
+import language.postfixOps
/**
* A workaround for the difficulties of dealing with
@@ -47,7 +51,7 @@ class SeqRule[S, +A, +X](rule: Rule[S, S, A, X]) {
/** Creates a rule that always succeeds with a Boolean value.
* Value is 'true' if this rule succeeds, 'false' otherwise */
- def -? = ? map { _.isDefined }
+ def -? = ? map { _ isDefined }
def * = from[S] {
// tail-recursive function with reverse list accumulator
@@ -96,3 +100,4 @@ class SeqRule[S, +A, +X](rule: Rule[S, S, A, X]) {
in => rep(0, in)
}
}
+
diff --git a/src/scalap/scala/tools/scalap/scalasig/ClassFileParser.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala
index 9bd8402ccc..cfd750055b 100644
--- a/src/scalap/scala/tools/scalap/scalasig/ClassFileParser.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ClassFileParser.scala
@@ -1,6 +1,11 @@
-package scala.tools.scalap.scalasig
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
-import scala.tools.scalap.rules.{ Success, Failure, ~, RulesWithState }
+import language.postfixOps
+
+import java.io.IOException
object ByteCode {
def apply(bytes: Array[Byte]) = new ByteCode(bytes, 0, bytes.length)
@@ -15,7 +20,7 @@ object ByteCode {
val bytes = new Array[Byte](rest)
while (rest > 0) {
val res = in.read(bytes, bytes.length - rest, rest)
- if (res == -1) throw new java.io.IOException("read error")
+ if (res == -1) throw new IOException("read error")
rest -= res
}
ByteCode(bytes)
@@ -26,7 +31,8 @@ object ByteCode {
}
}
-/** Represents a chunk of raw bytecode. Used as input for the parsers. */
+/** Represents a chunk of raw bytecode. Used as input for the parsers
+ */
class ByteCode(val bytes: Array[Byte], val pos: Int, val length: Int) {
assert(pos >= 0 && length >= 0 && pos + length <= bytes.length)
@@ -78,11 +84,11 @@ trait ByteCodeReader extends RulesWithState {
type S = ByteCode
type Parser[A] = Rule[A, String]
- val byte = apply(_.nextByte)
+ val byte = apply(_ nextByte)
val u1 = byte ^^ (_ & 0xFF)
- val u2 = bytes(2) ^^ (_.toInt)
- val u4 = bytes(4) ^^ (_.toInt) // should map to Long??
+ val u2 = bytes(2) ^^ (_ toInt)
+ val u4 = bytes(4) ^^ (_ toInt) // should map to Long??
def bytes(n: Int) = apply(_ next n)
}
@@ -93,7 +99,7 @@ object ClassFileParser extends ByteCodeReader {
val magicNumber = (u4 filter (_ == 0xCAFEBABE)) | error("Not a valid class file")
val version = u2 ~ u2 ^^ { case minor ~ major => (major, minor) }
- val constantPool = (u2 ^^ ConstantPool) >> repeatUntil(constantPoolEntry)(_.isFull)
+ val constantPool = (u2 ^^ ConstantPool) >> repeatUntil(constantPoolEntry)(_ isFull)
// NOTE currently most constants just evaluate to a string description
// TODO evaluate to useful values
@@ -238,3 +244,4 @@ case class ConstantPool(len: Int) {
this
}
}
+
diff --git a/src/scalap/scala/tools/scalap/scalasig/Flags.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Flags.scala
index b9925150d2..050317cb82 100644
--- a/src/scalap/scala/tools/scalap/scalasig/Flags.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Flags.scala
@@ -1,4 +1,7 @@
-package scala.tools.scalap.scalasig
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
trait Flags {
def hasFlag(flag: Long): Boolean
diff --git a/src/scalap/scala/tools/scalap/scalasig/ScalaSig.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
index 311e4acd6f..e3076322dd 100644
--- a/src/scalap/scala/tools/scalap/scalasig/ScalaSig.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
@@ -5,25 +5,27 @@
**
*/
-package scala.tools.scalap.scalasig
-import scala.language.implicitConversions
-
-import scala.reflect.internal.pickling.ByteCodecs
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
-import scala.tools.scalap.Main
-import scala.tools.scalap.rules._
+import scala.language.postfixOps
+import scala.language.implicitConversions
import ClassFileParser.{ ConstValueIndex, Annotation }
+import scala.reflect.internal.pickling.ByteCodecs
object ScalaSigParser {
+ import Main.{ SCALA_SIG, SCALA_SIG_ANNOTATION, BYTES_VALUE }
def scalaSigFromAnnotation(classFile: ClassFile): Option[ScalaSig] = {
import classFile._
- classFile.annotation(Main.SCALA_SIG_ANNOTATION) map {
+ classFile.annotation(SCALA_SIG_ANNOTATION) map {
case Annotation(_, elements) =>
- val bytesElem = elements.find(elem => constant(elem.elementNameIndex) == Main.BYTES_VALUE).get
+ val bytesElem = elements.find(elem => constant(elem.elementNameIndex) == BYTES_VALUE).get
val bytes = ((bytesElem.elementValue match {case ConstValueIndex(index) => constantWrapped(index)})
.asInstanceOf[StringBytesPair].bytes)
val length = ByteCodecs.decode(bytes)
@@ -33,7 +35,7 @@ object ScalaSigParser {
}
def scalaSigFromAttribute(classFile: ClassFile): Option[ScalaSig] =
- classFile.attribute(Main.SCALA_SIG).map(_.byteCode).map(ScalaSigAttributeParsers.parse)
+ classFile.attribute(SCALA_SIG).map(_.byteCode).map(ScalaSigAttributeParsers.parse)
def parse(classFile: ClassFile): Option[ScalaSig] = {
val scalaSig = scalaSigFromAttribute(classFile)
diff --git a/src/scalap/scala/tools/scalap/scalasig/ScalaSigPrinter.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala
index 5929e0f59f..dd17c39d84 100644
--- a/src/scalap/scala/tools/scalap/scalasig/ScalaSigPrinter.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala
@@ -5,14 +5,19 @@
**
*/
-package scala.tools.scalap.scalasig
-import scala.language.implicitConversions
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
+
+import language.postfixOps
import java.io.{PrintStream, ByteArrayOutputStream}
import java.util.regex.Pattern
-
-import scala.tools.scalap.rules.~
+import scala.tools.scalap.scalax.util.StringUtil
+import scala.reflect.NameTransformer
+import java.lang.String
class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
import stream._
@@ -343,8 +348,8 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
}
case "scala.<byname>" => "=> " + toString(typeArgs.head)
case _ => {
- val path = cutSubstring(symbol.path)(".package") //remove package object reference
- trimStart(processName(path) + typeArgString(typeArgs), "<empty>.")
+ val path = StringUtil.cutSubstring(symbol.path)(".package") //remove package object reference
+ StringUtil.trimStart(processName(path) + typeArgString(typeArgs), "<empty>.")
}
})
case TypeBoundsType(lower, upper) => {
@@ -389,7 +394,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
def typeArgString(typeArgs: Seq[Type]): String =
if (typeArgs.isEmpty) ""
- else typeArgs.map(toString).map(trimStart(_, "=> ")).mkString("[", ", ", "]")
+ else typeArgs.map(toString).map(StringUtil.trimStart(_, "=> ")).mkString("[", ", ", "]")
def typeParamString(params: Seq[Symbol]): String =
if (params.isEmpty) ""
@@ -410,7 +415,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
if (i > 0) name.substring(i + 2) else name
}
- private def processName(name: String) = {
+ def processName(name: String) = {
val stripped = stripPrivatePrefix(name)
val m = pattern.matcher(stripped)
var temp = stripped
@@ -420,15 +425,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
temp = temp.replaceAll(re, _syms(re))
}
val result = temp.replaceAll(placeholderPattern, "_")
- scala.reflect.NameTransformer.decode(result)
+ NameTransformer.decode(result)
}
- private def trimStart(s: String, prefix: String) =
- if (s != null && s.startsWith(prefix)) s.substring(prefix.length) else s
-
- private def decapitalize(s: String) =
- java.beans.Introspector.decapitalize(s)
-
- private def cutSubstring(dom: String)(s: String) =
- if (dom != null && s != null) dom.replace(s, "") else dom
}
diff --git a/src/scalap/scala/tools/scalap/scalasig/SourceFileAttributeParser.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/SourceFileAttributeParser.scala
index 88d3d3b8b0..fc5a75c046 100644
--- a/src/scalap/scala/tools/scalap/scalasig/SourceFileAttributeParser.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/SourceFileAttributeParser.scala
@@ -1,4 +1,7 @@
-package scala.tools.scalap.scalasig
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
/**
* @author ilyas
@@ -13,12 +16,13 @@ object SourceFileAttributeParser extends ByteCodeReader {
/**
*
* SourceFile_attribute {
- u2 attribute_name_index;
- u4 attribute_length;
- u2 sourcefile_index;
+ u2 attribute_name_index;
+ u4 attribute_length;
+ u2 sourcefile_index;
}
*
* Contains only file index in ConstantPool, first two fields are already treated
* by {@link scalax.rules.scalasig.ClassFile.attribute#attribute}
*/
case class SourceFileInfo(sourceFileIndex: Int)
+
diff --git a/src/scalap/scala/tools/scalap/scalasig/Symbol.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Symbol.scala
index 0656938150..6c38687649 100644
--- a/src/scalap/scala/tools/scalap/scalasig/Symbol.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Symbol.scala
@@ -1,4 +1,7 @@
-package scala.tools.scalap.scalasig
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
import ScalaSigEntryParsers._
diff --git a/src/scalap/scala/tools/scalap/scalasig/Type.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala
index 97dc28d223..22d90325ce 100644
--- a/src/scalap/scala/tools/scalap/scalasig/Type.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala
@@ -1,4 +1,7 @@
-package scala.tools.scalap.scalasig
+package scala.tools.scalap
+package scalax
+package rules
+package scalasig
abstract class Type
diff --git a/src/scalap/scala/tools/scalap/scalax/util/StringUtil.scala b/src/scalap/scala/tools/scalap/scalax/util/StringUtil.scala
new file mode 100644
index 0000000000..6077eded0f
--- /dev/null
+++ b/src/scalap/scala/tools/scalap/scalax/util/StringUtil.scala
@@ -0,0 +1,19 @@
+package scala.tools.scalap
+package scalax
+package util
+
+import java.beans.Introspector
+
+/**
+ * @author ilyas
+ */
+
+object StringUtil {
+
+ def trimStart(s: String, prefix: String) = if (s != null && s.startsWith(prefix)) s.substring(prefix.length) else s
+
+ def decapitalize(s: String) = Introspector.decapitalize(s)
+
+ def cutSubstring(dom: String)(s: String) = if (dom != null && s != null) dom.replace(s, "") else dom
+
+}
diff --git a/versions.properties b/versions.properties
index 2ea8e713f1..9109702299 100644
--- a/versions.properties
+++ b/versions.properties
@@ -18,7 +18,7 @@ akka-actor.version.number=2.2.3
actors-migration.version.number=1.0.0
# external modules, used internally (not shipped)
-partest.version.number=1.0.0-RC8
+partest.version.number=1.0.0-RC9
scalacheck.version.number=1.11.3
# TODO: modularize the compiler