summaryrefslogtreecommitdiff
path: root/src/scalap
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2011-01-26 12:13:36 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2011-01-26 12:13:36 +0000
commitdc39ab60d579029e094a7e4c4c077c8aba0810dc (patch)
tree0a5db4312ddc055960b2504431017b27ecd71721 /src/scalap
parentda6b846e70f2718c13d633961fea870f7448f707 (diff)
downloadscala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.tar.gz
scala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.tar.bz2
scala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.zip
brought scalap up to date with minimal patch.
Diffstat (limited to 'src/scalap')
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala3
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala2
-rw-r--r--src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala1
3 files changed, 5 insertions, 1 deletions
diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
index 7e84c53988..cb4f336d9c 100644
--- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSig.scala
@@ -253,7 +253,8 @@ object ScalaSigEntryParsers extends RulesWithState with MemoisableRules {
18 -~ classSymRef ~ (typeRef*) ^~^ RefinedType,
19 -~ symbolRef ~ (typeRef*) ^~^ ClassInfoType,
20 -~ typeRef ~ (symbolRef*) ^~^ MethodType,
- 21 -~ typeRef ~ (refTo(typeSymbol)*) ^~^ PolyType,
+ 21 -~ typeRef ~ (refTo(typeSymbol)+) ^~^ PolyType, // TODO: make future safe for past by doing the same transformation as in the full unpickler in case we're reading pre-2.9 classfiles
+ 21 -~ typeRef ^^ NullaryMethodType,
22 -~ typeRef ~ (symbolRef*) ^~^ ImplicitMethodType,
42 -~ typeRef ~ (attribTreeRef*) ^~^ AnnotatedType,
51 -~ typeRef ~ symbolRef ~ (attribTreeRef*) ^~~^ AnnotatedWithSelfType,
diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala
index fd7653003d..acaf64df2a 100644
--- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala
@@ -223,6 +223,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
}
t match {
+ case NullaryMethodType(resType) => if (printResult) { print(" : "); printType(resType) }
case mt@MethodType(resType, paramSymbols) => _pmt(mt)
case mt@ImplicitMethodType(resType, paramSymbols) => _pmt(mt)
case pt@PolyType(mt, typeParams) => {
@@ -374,6 +375,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) {
case ImplicitMethodType(resultType, _) => toString(resultType, sep)
case MethodType(resultType, _) => toString(resultType, sep)
+ case NullaryMethodType(resultType) => toString(resultType, sep)
case PolyType(typeRef, symbols) => typeParamString(symbols) + toString(typeRef, sep)
case PolyTypeWithCons(typeRef, symbols, cons) => typeParamString(symbols) + processName(cons) + toString(typeRef, sep)
diff --git a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala
index c991df6c09..3658cb1c89 100644
--- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala
+++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala
@@ -17,6 +17,7 @@ case class RefinedType(classSym : Symbol, typeRefs : List[Type]) extends Type
case class ClassInfoType(symbol : Symbol, typeRefs : Seq[Type]) extends Type
case class ClassInfoTypeWithCons(symbol : Symbol, typeRefs : Seq[Type], cons: String) extends Type
case class MethodType(resultType : Type, paramSymbols : Seq[Symbol]) extends Type
+case class NullaryMethodType(resultType : Type) extends Type
case class PolyType(typeRef : Type, symbols : Seq[TypeSymbol]) extends Type
case class PolyTypeWithCons(typeRef : Type, symbols : Seq[TypeSymbol], cons: String) extends Type
case class ImplicitMethodType(resultType : Type, paramSymbols : Seq[Symbol]) extends Type