diff options
author | Martin Odersky <odersky@gmail.com> | 2014-04-04 10:18:33 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2014-04-08 17:02:20 +0200 |
commit | 09a4bc5d099de71de824a35a67a26e7091e3bb5a (patch) | |
tree | 0787d8e5e92507b6ad0f23ad5a8bafe2d03a8930 /src/dotty/tools/dotc/typer/Checking.scala | |
parent | 3486eb0088f78e8ca93c0bc8f883c2af53ee7d3d (diff) | |
download | dotty-09a4bc5d099de71de824a35a67a26e7091e3bb5a.tar.gz dotty-09a4bc5d099de71de824a35a67a26e7091e3bb5a.tar.bz2 dotty-09a4bc5d099de71de824a35a67a26e7091e3bb5a.zip |
Reworked TermRef handling
The main problem with TermRef handling was that signatures were not always tracked correctly.
New invariant: A TermRef that points to a symbol is always a TermRefWithSig, and the signature
is the one of the corresponding member.
We achieve this by sometimes generating a new TermRefWithSig if a TermRef gets a denotation.
One possible simplification would be to always store a signature in a TermRef.
There's still a problem in TermRefWithSig#newLikeThis, which currently works only if the previously stored
denotation references a symbol. We will need to generalize JointRefDenotation to contain multiple symbols for
a complete fix.
Diffstat (limited to 'src/dotty/tools/dotc/typer/Checking.scala')
0 files changed, 0 insertions, 0 deletions