diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2013-08-26 20:06:25 +0200 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2013-09-27 09:26:13 +0200 |
commit | 2ccbfa57783270049105b8c171d69159d54e578c (patch) | |
tree | 6beeddb44701335f15c1660e959319cd62316feb /src | |
parent | f0ca5aec4c575fe297adcd3e2b16018fff4a0639 (diff) | |
download | scala-2ccbfa57783270049105b8c171d69159d54e578c.tar.gz scala-2ccbfa57783270049105b8c171d69159d54e578c.tar.bz2 scala-2ccbfa57783270049105b8c171d69159d54e578c.zip |
SI-7783 Don't issue deprecation warnings for inferred TypeTrees
Deprecation checks in RefChecks were looking into all TypeTrees
to find references to deprecated type aliases. However, when the
compiler infers a type argument or type of a member it creates
a TypeTree (with a null original) that was also leading to warnings.
I ran into this problem often when upgrading a build from SBT 0.12
to 0.13: a plugin I was using used the deprecated type alias, and I
suffered transitively when I used methods from its API.
This commit disables the checks for inferred TypeTree-s.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/RefChecks.scala | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala index 83afb3a728..081f7a8696 100644 --- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala +++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala @@ -1515,7 +1515,11 @@ abstract class RefChecks extends InfoTransform with scala.reflect.internal.trans private def checkTypeRef(tp: Type, tree: Tree, skipBounds: Boolean) = tp match { case TypeRef(pre, sym, args) => - checkDeprecated(sym, tree.pos) + tree match { + case tt: TypeTree if tt.original == null => // SI-7783 don't warn about inferred types + case _ => + checkDeprecated(sym, tree.pos) + } if(sym.isJavaDefined) sym.typeParams foreach (_.cookJavaRawInfo()) if (!tp.isHigherKinded && !skipBounds) |