-
Notifications
You must be signed in to change notification settings - Fork 222
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
Introduce ClassHierarchyFactory.makeWithRoot #377
Conversation
Build ClassHiearchy and replace any missing superclass with the hierarchy root. Adds necessary changes to co-exist with makeWithPhantom.
Some additional note regarding the superclass issue in #335: There, I explicitly set the superclass to the hierarchy root, but this needs to be done for the PhantomClass mode as well. Probably, this already fixes the issues with makeWithPhantom. |
Sorry for my slow response here. This change looks great! But I don't see any tests. Can we enhance this test to cover the |
Hmm only the maven build fails for some (unrelated) reason. Any idea? Any thoughts on my second comment, i.e. why addClass computes the superclass but does not set it? To me, this looks like a construct that may easily lead to new issues, e.g. the (incomplete) phantom patch seems to miss setting the superclass there. |
I kicked the build again, hopefully it'll pass.
I don't know immediately the rationale for this, but the |
@reddr these changes look good to me but I'm unsure if this PR is still incomplete due to the |
@msridhar I think this one is good to go. Was unsure about why computing and setting the superclass is located in different methods and whether there is an easy way to fix this. I still think that this is the problem with the current phantom patch, I left a comment in the code. But that will be a separate PR. |
Ok, sounds good. If you have time could you open an issue regarding the specific problem with phantom classes? |
Update to the latest WALA version. Also, switch class hierarchy construction to use `makeWithRoot` which is more fully-baked than what we used before; see wala/WALA#377.
Build ClassHierarchy and replace any missing superclass
with the hierarchy root. Adds necessary changes to co-exist
with makeWithPhantom.