diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-04-16 14:48:25 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-04-16 14:48:25 +1000 |
commit | d2a174d27bce392329a9c5e4c7d2acee263cdb34 (patch) | |
tree | 617a429238d02a13f658d58182a419d17133b398 /src | |
parent | 029cce77bd72cd8255c6dee08a227796cdb158b1 (diff) | |
parent | 4ff3abbe950c0bd703298d7808e1de38894ddac7 (diff) | |
download | scala-d2a174d27bce392329a9c5e4c7d2acee263cdb34.tar.gz scala-d2a174d27bce392329a9c5e4c7d2acee263cdb34.tar.bz2 scala-d2a174d27bce392329a9c5e4c7d2acee263cdb34.zip |
Merge pull request #4449 from retronym/ticket/9273
SI-9273 Avoid unpositioned error for bare classOf
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index 391ef9e337..7417c5364e 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -4881,10 +4881,11 @@ trait Typers extends Adaptations with Tags with TypersTracking with PatternTyper (// this -> Foo.this if (sym.isThisSym) typed1(This(sym.owner) setPos tree.pos, mode, pt) - // Inferring classOf type parameter from expected type. Otherwise an - // actual call to the stubbed classOf method is generated, returning null. - else if (isPredefClassOf(sym) && pt.typeSymbol == ClassClass && pt.typeArgs.nonEmpty) - typedClassOf(tree, TypeTree(pt.typeArgs.head)) + else if (isPredefClassOf(sym) && pt.typeSymbol == ClassClass && pt.typeArgs.nonEmpty) { + // Inferring classOf type parameter from expected type. Otherwise an + // actual call to the stubbed classOf method is generated, returning null. + typedClassOf(tree, TypeTree(pt.typeArgs.head).setPos(tree.pos.focus)) + } else { val pre1 = if (sym.isTopLevel) sym.owner.thisType else if (qual == EmptyTree) NoPrefix else qual.tpe val tree1 = if (qual == EmptyTree) tree else atPos(tree.pos)(Select(atPos(tree.pos.focusStart)(qual), name)) |