diff options
author | Martin Odersky <odersky@gmail.com> | 2012-01-31 12:33:47 +0100 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2012-01-31 12:33:47 +0100 |
commit | e9a70f564a29ec0e2262cc9e6608c990b6b05274 (patch) | |
tree | b64e854a7c4f8e30322d9c08c9b73c54aea43e4f /src/compiler/scala/reflect/internal/Types.scala | |
parent | 5cb688172c86d3f34a4149e8280694f64bbf1422 (diff) | |
download | scala-e9a70f564a29ec0e2262cc9e6608c990b6b05274.tar.gz scala-e9a70f564a29ec0e2262cc9e6608c990b6b05274.tar.bz2 scala-e9a70f564a29ec0e2262cc9e6608c990b6b05274.zip |
First steps towards erasure of inline classes.
Diffstat (limited to 'src/compiler/scala/reflect/internal/Types.scala')
-rw-r--r-- | src/compiler/scala/reflect/internal/Types.scala | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/scala/reflect/internal/Types.scala b/src/compiler/scala/reflect/internal/Types.scala index bf0017d989..0d25ccf86d 100644 --- a/src/compiler/scala/reflect/internal/Types.scala +++ b/src/compiler/scala/reflect/internal/Types.scala @@ -65,6 +65,8 @@ import util.Statistics._ // inst is the instantiation and constr is a list of bounds. case DeBruijnIndex(level, index) // for dependent method types: a type referring to a method parameter. + case ErasedInlineType(tp) + // only used during erasure of inline classes. */ trait Types extends api.Types { self: SymbolTable => @@ -3067,6 +3069,15 @@ trait Types extends api.Types { self: SymbolTable => "De Bruijn "+kind+"("+(pnames mkString ",")+";"+(ptypes mkString ",")+";"+restpe+")" } } + + abstract case class ErasedInlineType(sym: Symbol) extends Type + + final class UniqueErasedInlineType(sym: Symbol) extends ErasedInlineType(sym) with UniqueType + + object ErasedInlineType { + def apply(sym: Symbol): Type = + unique(new UniqueErasedInlineType(sym)) + } /** A class representing an as-yet unevaluated type. */ @@ -3732,6 +3743,7 @@ trait Types extends api.Types { self: SymbolTable => case WildcardType => tp case NoType => tp case NoPrefix => tp + case ErasedSingleType(sym) => tp */ case _ => tp |