summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2012-07-24 02:08:40 -0700
committerAdriaan Moors <adriaan.moors@epfl.ch>2012-07-24 02:08:40 -0700
commit84c0aa63d13008bdb0a9ab43064c3281a6f6b006 (patch)
tree27cbe1fca6a8068a41671abc0c9ebfaf6f988e36 /src
parent54b5bea7a498be3520b12aa9107d64ab946e67a8 (diff)
parent100d82697b2ec747cfc955a9869b8c3d2900f1a2 (diff)
downloadscala-84c0aa63d13008bdb0a9ab43064c3281a6f6b006.tar.gz
scala-84c0aa63d13008bdb0a9ab43064c3281a6f6b006.tar.bz2
scala-84c0aa63d13008bdb0a9ab43064c3281a6f6b006.zip
Merge pull request #974 from adriaanm/repull-unchecked-hk
Improve unchecked warnings.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index 22e78a1e36..bcbcb96400 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -1352,8 +1352,10 @@ trait Infer {
} else {
for (arg <- args) {
if (sym == ArrayClass) check(arg, bound)
- else if (arg.typeArgs.nonEmpty) () // avoid spurious warnings with higher-kinded types
- else if (sym == NonLocalReturnControlClass) () // no way to suppress unchecked warnings on try/catch
+ // avoid spurious warnings with higher-kinded types
+ else if (arg.typeArgs exists (_.typeSymbol.isTypeParameterOrSkolem)) ()
+ // no way to suppress unchecked warnings on try/catch
+ else if (sym == NonLocalReturnControlClass) ()
else arg match {
case TypeRef(_, sym, _) if isLocalBinding(sym) =>
;
@@ -1497,7 +1499,7 @@ trait Infer {
)
// Intentionally *not* using `Type#typeSymbol` here, which would normalize `tp`
- // and collect symbols from the result type of any resulting `PolyType`s, which
+ // and collect symbols from the result type of any resulting `PolyType`s, which
// are not free type parameters of `tp`.
//
// Contrast with `isFreeTypeParamNoSkolem`.
@@ -1530,7 +1532,7 @@ trait Infer {
def inferExprAlternative(tree: Tree, pt: Type) = tree.tpe match {
case OverloadedType(pre, alts) => tryTwice { isSecondTry =>
val alts0 = alts filter (alt => isWeaklyCompatible(pre.memberType(alt), pt))
- val noAlternatives = alts0.isEmpty
+ val noAlternatives = alts0.isEmpty
val alts1 = if (noAlternatives) alts else alts0
//println("trying "+alts1+(alts1 map (_.tpe))+(alts1 map (_.locationString))+" for "+pt)
@@ -1688,7 +1690,7 @@ trait Infer {
val saved = context.state
var fallback = false
context.setBufferErrors()
- // We cache the current buffer because it is impossible to
+ // We cache the current buffer because it is impossible to
// distinguish errors that occurred before entering tryTwice
// and our first attempt in 'withImplicitsDisabled'. If the
// first attempt fails we try with implicits on *and* clean