diff options
author | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-07-02 09:53:16 +0000 |
---|---|---|
committer | Lukas Rytz <lukas.rytz@epfl.ch> | 2009-07-02 09:53:16 +0000 |
commit | 568cba14a3b458977988788fb0281865002916cb (patch) | |
tree | 7b27ddbb3ef7134979908ea05db644b7257212b1 | |
parent | def1f684c0f25f7f7e8186ea13a59be2a6cd7ad9 (diff) | |
download | scala-568cba14a3b458977988788fb0281865002916cb.tar.gz scala-568cba14a3b458977988788fb0281865002916cb.tar.bz2 scala-568cba14a3b458977988788fb0281865002916cb.zip |
fix for #2116
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Namers.scala | 1 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/Typers.scala | 3 |
2 files changed, 2 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/Namers.scala b/src/compiler/scala/tools/nsc/typechecker/Namers.scala index 685fe8b419..4b037533f6 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Namers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Namers.scala @@ -843,7 +843,6 @@ trait Namers { self: Analyzer => // for instance, B.foo would not override A.foo, and the default on parameter b would not be inherited // class A { def foo[T](a: T)(b: T = a) = a } // class B extends A { override def foo[U](a: U)(b: U) = b } - // (new B).foo(1)() sym != NoSymbol && (site.memberType(sym) matches thisMethodType(resultPt).substSym(tparams map (_.symbol), tparamSyms)) }) diff --git a/src/compiler/scala/tools/nsc/typechecker/Typers.scala b/src/compiler/scala/tools/nsc/typechecker/Typers.scala index d6bcd4f6eb..c19cedfe75 100644 --- a/src/compiler/scala/tools/nsc/typechecker/Typers.scala +++ b/src/compiler/scala/tools/nsc/typechecker/Typers.scala @@ -1507,7 +1507,8 @@ trait Typers { self: Analyzer => checkStructuralCondition(meth.owner, vparam) // only one overloaded method is allowed to have defaults - if (meth.owner.isClass && meth.paramss.exists(_.exists(_.hasFlag(DEFAULTPARAM)))) { + if (phase.id <= currentRun.typerPhase.id && + meth.owner.isClass && meth.paramss.exists(_.exists(_.hasFlag(DEFAULTPARAM)))) { // don't do the check if it has already failed for another alternatvie if (meth.paramss.exists(_.exists(p => p.hasFlag(DEFAULTPARAM) && !p.defaultGetter.tpe.isError))) { |