Skip to content
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

Implement AST parent edges #1479

Draft
wants to merge 59 commits into
base: main
Choose a base branch
from
Draft

Implement AST parent edges #1479

wants to merge 59 commits into from

Conversation

maximiliankaul
Copy link
Contributor

@maximiliankaul maximiliankaul commented Mar 28, 2024

WIP!

@oxisto oxisto force-pushed the mk/backwards-ast branch from 6faff13 to 6eee05b Compare March 28, 2024 21:24
renovate bot and others added 16 commits April 17, 2024 14:35
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Due to a bug in the symbol resolver, we did not resolve fields that are in base classes of classes incorrectly
This PR adds the way `Type.isDerivedFrom` works. More concretly, we are once again taking the "wrap state" of the type into account. This means that pointer types and non-pointer types will not match even though their root types derive from each other. This was the way this function behaved in the past and it seems this was changed at some point, which led to some weird over-approximations in call resolving, basically ignoring wether a type was a pointer or not.
* Extracted call/cast replacement into separate pass

Multiple languages, such as Go and C++ support "functional style casts", in the form of int(5). During the frontend parsing, they are indistinguishable from function calls. Therefore, we need to do a cleanup after all types are known but before other passes are invoked that replace those calls with casts. The proposed solution is to include a new language trait HasFuntionalCasts and to move the logic from the GoExtraPass into a separate, language-neutral one.

Fixes #1487

* Added annotation to pass that requires a language trait
* Fix style of docs

* Clean DFG spec a bit

* re-generate graph schema with minor style updates
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* Add BoolOp and + or

* nicer error handling

* Add some messages to better debug the TODO()s in the future

---------

Co-authored-by: Alexander Kuechler <[email protected]>
ForLoop not handled in cyclomaticComplexity
* Fixing javaparser resultion error

* Always use our scope manager

---------

Co-authored-by: Alexander Kuechler <[email protected]>
@oxisto oxisto added this to the 9.0.0 milestone Jul 18, 2024
oxisto added a commit that referenced this pull request Jul 18, 2024
Provides an API similar to #1479 but different approach for setting the AST parent

Co-Authored-By: Maximilian Kaul <[email protected]>
maximiliankaul and others added 7 commits July 23, 2024 10:18
Slightly inspired by discussion with @konradweiss. This adds a helper function to set the ast parent in cases where the node cannot be created within the `withChildren` block.
oxisto added a commit that referenced this pull request Jul 31, 2024
Provides an API similar to #1479 but different approach for setting the AST parent

Co-Authored-By: Maximilian Kaul <[email protected]>
@KuechA
Copy link
Contributor

KuechA commented Sep 1, 2024

I guess this PR is obsoleted by #1646 and #1642 and should be closed?

@maximiliankaul
Copy link
Contributor Author

I guess this PR is obsoleted by #1646 and #1642 and should be closed?

No, we want to include this work once the withChildren { ... } (or similar) stuff is merged into main.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants