diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2011-01-26 12:13:36 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2011-01-26 12:13:36 +0000 |
commit | dc39ab60d579029e094a7e4c4c077c8aba0810dc (patch) | |
tree | 0a5db4312ddc055960b2504431017b27ecd71721 /src | |
parent | da6b846e70f2718c13d633961fea870f7448f707 (diff) | |
download | scala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.tar.gz scala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.tar.bz2 scala-dc39ab60d579029e094a7e4c4c077c8aba0810dc.zip |
brought scalap up to date with minimal patch.
Diffstat (limited to 'src')
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 |