diff options
author | ilyas <ilyas@epfl.ch> | 2010-04-28 12:29:26 +0000 |
---|---|---|
committer | ilyas <ilyas@epfl.ch> | 2010-04-28 12:29:26 +0000 |
commit | 3db6fcb7bf5aa8183402eab22a97eb867e93b1e0 (patch) | |
tree | a2ca796c273165d234444cdaeaeef7e575feb2e4 /src | |
parent | 4f5a598284609a094255b08e9887b61417a6ce68 (diff) | |
download | scala-3db6fcb7bf5aa8183402eab22a97eb867e93b1e0.tar.gz scala-3db6fcb7bf5aa8183402eab22a97eb867e93b1e0.tar.bz2 scala-3db6fcb7bf5aa8183402eab22a97eb867e93b1e0.zip |
scalap: signature for case classes fixed
Diffstat (limited to 'src')
-rw-r--r-- | src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala | 4 | ||||
-rw-r--r-- | src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala | 1 |
2 files changed, 5 insertions, 0 deletions
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 3cb70ec04e..354e3131e8 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/ScalaSigPrinter.scala @@ -17,6 +17,7 @@ import java.util.regex.Pattern import scala.tools.scalap.scalax.util.StringUtil import reflect.NameTransformer +import java.lang.String class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { import stream._ @@ -130,6 +131,7 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { val it = c.infoType val classType = it match { case PolyType(typeRef, symbols) => PolyTypeWithCons(typeRef, symbols, defaultConstructor) + case ClassInfoType(a, b) if c.isCase => ClassInfoTypeWithCons(a, b, defaultConstructor) case _ => it } printType(classType) @@ -368,6 +370,8 @@ class ScalaSigPrinter(stream: PrintStream, printPrivates: Boolean) { } case RefinedType(classSym, typeRefs) => sep + typeRefs.map(toString).mkString("", " with ", "") case ClassInfoType(symbol, typeRefs) => sep + typeRefs.map(toString).mkString(" extends ", " with ", "") + case ClassInfoTypeWithCons(symbol, typeRefs, cons) => sep + typeRefs.map(toString). + mkString(cons + " extends ", " with ", "") case ImplicitMethodType(resultType, _) => toString(resultType, sep) case MethodType(resultType, _) => toString(resultType, 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 e224525d06..c991df6c09 100644 --- a/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala +++ b/src/scalap/scala/tools/scalap/scalax/rules/scalasig/Type.scala @@ -15,6 +15,7 @@ case class TypeRefType(prefix : Type, symbol : Symbol, typeArgs : Seq[Type]) ext case class TypeBoundsType(lower : Type, upper : Type) extends Type 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 PolyType(typeRef : Type, symbols : Seq[TypeSymbol]) extends Type case class PolyTypeWithCons(typeRef : Type, symbols : Seq[TypeSymbol], cons: String) extends Type |