diff options
author | schinz <schinz@epfl.ch> | 2004-12-09 08:43:26 +0000 |
---|---|---|
committer | schinz <schinz@epfl.ch> | 2004-12-09 08:43:26 +0000 |
commit | 436a4363f7890c12f11d866bbff6d792c9041e88 (patch) | |
tree | 3fec52aa5f44c7490f986bdc4e638172f451537f /sources/scalac/transformer | |
parent | a0a569dfb76080df049e2ca27c27d696c848f5f9 (diff) | |
download | scala-436a4363f7890c12f11d866bbff6d792c9041e88.tar.gz scala-436a4363f7890c12f11d866bbff6d792c9041e88.tar.bz2 scala-436a4363f7890c12f11d866bbff6d792c9041e88.zip |
- fixed a bug in the "refinements" method (note...
- fixed a bug in the "refinements" method (note: all of this will
disappear soon, but I just want to keep the history)
Diffstat (limited to 'sources/scalac/transformer')
-rw-r--r-- | sources/scalac/transformer/TypesAsValuesPhase.java | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/sources/scalac/transformer/TypesAsValuesPhase.java b/sources/scalac/transformer/TypesAsValuesPhase.java index 217ed6553e..698a7eb8d1 100644 --- a/sources/scalac/transformer/TypesAsValuesPhase.java +++ b/sources/scalac/transformer/TypesAsValuesPhase.java @@ -1064,8 +1064,14 @@ public class TypesAsValuesPhase extends Phase { while (membersIt.hasNext()) { Symbol mem = membersIt.next(); Symbol origMem = originalSymbol(mem); - if (origMem != Symbol.NONE && !mem.info().isSameAs(origMem.info())) - myRefs.add(new Refinement(origMem, mem.info())); + if (origMem != Symbol.NONE) { + Type ownerTp = mem.owner().thisType(); + Type origTp = ownerTp.memberType(origMem); + Type memTp = ownerTp.memberType(mem); + + if (!memTp.isSameAs(origTp)) + myRefs.add(new Refinement(origMem, mem.info())); + } } Collections.sort(myRefs); return myRefs; |