diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-26 18:08:07 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2014-02-26 18:08:07 -0800 |
commit | 59bcf6b98cedb95bc15c98ab37246b42dda12489 (patch) | |
tree | 2f74444601488e1ed13fb103214879428bb7c1a5 | |
parent | 8b95e11f6bf53f6f350ee59a66537b89a04783c2 (diff) | |
parent | 7bb1f41cd152b4e4930a1d8f769ddc2304cf6877 (diff) | |
download | scala-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"
26 files changed, 163 insertions, 83 deletions
@@ -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 |