summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2014-09-24 10:31:33 -0700
committerSom Snytt <som.snytt@gmail.com>2015-03-09 17:07:32 -0700
commitd04cd7b39107fb7cb817a08265724c00043b1396 (patch)
treec89aba4a90616bce4b25164fcb66d229450dfdc1 /src
parente8e9c0d6b9181be657a1d28eef9f999cb26df9e5 (diff)
downloadscala-d04cd7b39107fb7cb817a08265724c00043b1396.tar.gz
scala-d04cd7b39107fb7cb817a08265724c00043b1396.tar.bz2
scala-d04cd7b39107fb7cb817a08265724c00043b1396.zip
SI-8861 Handle alias when probing for Any
If args to a method are alias types, dealias to see if they contain Any before warning about inferring it. Similarly for return and expected types.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index cf97474d9a..27e17fc65f 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -553,9 +553,8 @@ trait Infer extends Checkable {
// ...or lower bound of a type param, since they're asking for it.
def canWarnAboutAny = {
val loBounds = tparams map (_.info.bounds.lo)
- val hasAny = pt :: restpe :: formals ::: argtpes ::: loBounds exists (t =>
- (t contains AnyClass) || (t contains AnyValClass)
- )
+ def containsAny(t: Type) = (t contains AnyClass) || (t contains AnyValClass)
+ val hasAny = pt :: restpe :: formals ::: argtpes ::: loBounds exists (_.dealiasWidenChain exists containsAny)
!hasAny
}
def argumentPosition(idx: Int): Position = context.tree match {