diff options
author | Martin Odersky <odersky@gmail.com> | 2011-11-15 18:33:07 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2011-11-15 18:33:07 +0000 |
commit | 8a64ed85b9a63fd08c13f6730f038ba233d27fb6 (patch) | |
tree | 02770db6dbae39192acd196205b9c45bb0df017a /src/compiler/scala/tools/nsc/typechecker/Implicits.scala | |
parent | 7abc466d64681ea7f2610068702019fee66b0579 (diff) | |
download | scala-8a64ed85b9a63fd08c13f6730f038ba233d27fb6.tar.gz scala-8a64ed85b9a63fd08c13f6730f038ba233d27fb6.tar.bz2 scala-8a64ed85b9a63fd08c13f6730f038ba233d27fb6.zip |
Towards better reflection APIs.
Diffstat (limited to 'src/compiler/scala/tools/nsc/typechecker/Implicits.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index d58df50451..2c32d22081 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -1110,7 +1110,7 @@ trait Implicits { // a manifest should have been found by normal searchImplicit EmptyTree } - case RefinedType(parents, decls) => + case RefinedType(parents, decls) => // !!! not yet: if !full || decls.isEmpty => // refinement is not generated yet if (hasLength(parents, 1)) findManifest(parents.head) else if (full) manifestFactoryCall("intersectionType", tp, parents map findSubManifest: _*) @@ -1119,7 +1119,14 @@ trait Implicits { mot(tp1.skolemizeExistential, from, to) case _ => EmptyTree - } +/* !!! the following is almost right, but we have to splice nested manifest + * !!! types into this type. This requires a substantial extension of + * !!! reifiers. + val reifier = new liftcode.Reifier() + val rtree = reifier.reifyTopLevel(tp1) + manifestFactoryCall("apply", tp, rtree) +*/ + } } mot(tp, Nil, Nil) |