diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-02-26 10:50:32 +0000 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2010-02-26 10:50:32 +0000 |
commit | d5ae4c69b0a0700fe7a35e96516eaea5e7182322 (patch) | |
tree | 5037d56ef694eb69af4c6a60f92231816a8b258f /src | |
parent | 0dd2f30edbb44d526be60676fef9ba05a9e3dfbf (diff) | |
download | scala-d5ae4c69b0a0700fe7a35e96516eaea5e7182322.tar.gz scala-d5ae4c69b0a0700fe7a35e96516eaea5e7182322.tar.bz2 scala-d5ae4c69b0a0700fe7a35e96516eaea5e7182322.zip |
closes #2421 -- now also deals with chained imp...
closes #2421 -- now also deals with chained implicits
no review
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Implicits.scala | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala index f8a32ab0f8..840ec1113d 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Implicits.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Implicits.scala @@ -477,12 +477,10 @@ self: Analyzer => // #2421b: since type inference (which may have been performed during implicit search) // does not check whether inferred arguments meet the bounds of the corresponding parameter (see note in solvedTypes), // must check again here: - itree2 match { // roughly equivalent to typed1(itree2, EXPRmode, wildPt), - // since typed1 only forces checking of the outer tree and calls typed on the subtrees - // (they have already been type checked, by the typed1(itree...) above, so the subtrees are skipped by typed) - // inlining the essential bit here for clarity - //TODO: verify that these subtrees don't need re-checking + // TODO: I would prefer to just call typed instead of duplicating the code here, but this is probably a hotspot (and you can't just call typed, need to force re-typecheck) + itree2 match { case TypeApply(fun, args) => typedTypeApply(itree2, EXPRmode, fun, args) + case Apply(TypeApply(fun, args), _) => typedTypeApply(itree2, EXPRmode, fun, args) // t2421c case _ => } |