-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dotty: support distinctions between LTTs of simple subtypes #130
Dotty: support distinctions between LTTs of simple subtypes #130
Conversation
… String) =:= String should be false)
8e84855
to
48b6533
Compare
This isn't actually enough to work for my case, on reflection.... |
…ypeBounds thingy in the case of wildcards, where we actually seem to only care about hi after all...
This seems to work now. Quite possibly introducing some 🐛, but passes the existing test suite at least |
@hughsimpson To do that I may suggest to do copy your test to Scala 2's |
Could you explain what the basesDb and inheritanceDb do/represent exactly? TBH this was mostly me hacking around to get something that seemed to work for the precise test cases, but I don't really understand the project terribly well I'm afraid |
@hughsimpson Consider the debug representation of println(LTT[List[Int]].debug())
inheritanceDb here contains just the inheritance trees of List & Int, while basesDb is more precise with variance and information that only Int parameterized List is related to AbstractSeq of Int/ SeqOps of Int, List, List/LinearSeq of Int, List[?], List[Int]/etc. |
Thanks for that. You're absolutely right that there are some issues with this pr as it stands. I'll need a little more time to figure out what the expected distinctions between the debug output should be - a relatively simple fix seems to have solved the prefix issue, but there're quite possibly some deeper issues that I'm gonna have to scope out a bit more. Things are busy at work right now so it will likely be a few days before I'll have time to revisit this. And thanks again for the pointers, really appreciate it - and, of course, really appreciate the library. Moved to it from TypeTags a month or so ago when looking at the 2->3 migration and it has been an absolute win for performance (and jar size!). Will be back here soon when I've figured a bit more out. |
… Add some test assertions about the current ref repr, and bases & inheritance maps
Pushed up a fix for ref prefix of the case I'm interested in, as well as a few assertions about the inheritance and bases maps. They... behave quite differently to the scala 2 ones. This pr doesn't, as it stands, affect that representation at all... |
@hughsimpson Thanks for fixing this! |
e.g. (type T <: String) =:= String should be false (see new test cases)
Seemed the lightest reasonable implementation, but there's a lot of this codebase I don't exactly grok yet.
Doesn't seem to be a ticket that corresponds to this
I also didn't see any similar tests in the commented-out part of the dotty LTT tests, but highly possible I just missed themthis doesn't seem to fix any of the commented-out tests so I'm assuming there's either no existing coverage of this, or the coverage that exists uses some much more advanced wizardry