aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/typer/Applications.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2016-02-19 13:49:15 +0100
committerMartin Odersky <odersky@gmail.com>2016-02-20 10:19:58 +0100
commitc6064ed02c4d895b1d0df269fc018265b0d55625 (patch)
tree224e7a2fcbb0bdf829a7bcbfacad09ff03fcc00b /src/dotty/tools/dotc/typer/Applications.scala
parent419ee6cd11214c91e55bb74fb77b8e84760a780e (diff)
downloaddotty-c6064ed02c4d895b1d0df269fc018265b0d55625.tar.gz
dotty-c6064ed02c4d895b1d0df269fc018265b0d55625.tar.bz2
dotty-c6064ed02c4d895b1d0df269fc018265b0d55625.zip
Check that classOf gets applied to class types
Diffstat (limited to 'src/dotty/tools/dotc/typer/Applications.scala')
-rw-r--r--src/dotty/tools/dotc/typer/Applications.scala4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/typer/Applications.scala b/src/dotty/tools/dotc/typer/Applications.scala
index 098385d4b..3b8c56ea6 100644
--- a/src/dotty/tools/dotc/typer/Applications.scala
+++ b/src/dotty/tools/dotc/typer/Applications.scala
@@ -617,6 +617,10 @@ trait Applications extends Compatibility { self: Typer =>
case pt: PolyType =>
if (typedArgs.length <= pt.paramBounds.length && !isNamed)
typedArgs = typedArgs.zipWithConserve(pt.paramBounds)(adaptTypeArg)
+ if (typedFn.symbol == defn.Predef_classOf && typedArgs.nonEmpty) {
+ val arg = typedArgs.head
+ checkClassType(arg.tpe, arg.pos, traitReq = false, stablePrefixReq = false)
+ }
case _ =>
}
assignType(cpy.TypeApply(tree)(typedFn, typedArgs), typedFn, typedArgs)