Skip to content

DUC unsupported type checks - #3492

Merged
arporter merged 27 commits into
masterfrom
duc_unsupported_type_checks
Aug 26, 2026
Merged

DUC unsupported type checks#3492
arporter merged 27 commits into
masterfrom
duc_unsupported_type_checks

Conversation

@LonelyCat124

Copy link
Copy Markdown
Collaborator

No description provided.

@LonelyCat124
LonelyCat124 requested review from arporter and sergisiso and removed request for sergisiso July 10, 2026 12:52
@codecov

codecov Bot commented Jul 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (d9515d0) to head (51857dd).

Additional details and impacted files
@@            Coverage Diff             @@
##            master     #3492    +/-   ##
==========================================
  Coverage   100.00%   100.00%            
==========================================
  Files          399       399            
  Lines        56094     56201   +107     
==========================================
+ Hits         56094     56201   +107     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@LonelyCat124

Copy link
Copy Markdown
Collaborator Author

@sergisiso @arporter This is ready for a first look - it handles edge cases in the DUC where we need to force any UnsupportedType reference to match to any UnsupportedType reference as we can't guarantee there is no aliasing between them (due to TARGET and POINTER).

@arporter arporter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Aidan. I have to confess that I don't really understand the implementation (although I'm getting there) so I've mainly focused on whether it looks sensible. I do think it could do with being broken up a bit as the methods are huge - see inline.
Thanks for all the new tests - I've requested quite a few changes to those to help me to understand them. I'll do the ITs next time.

Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_backward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_backward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_backward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_backward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
@LonelyCat124

Copy link
Copy Markdown
Collaborator Author

@arporter Should be ready for another look now - some of the comments you had were repeats so I just put done on a single comment instead of each.

@arporter arporter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking much better now, thanks Aidan. I think I'm getting my head around it. My main concern now is that the new methods update state both via an argument and via internal object state. I think it would be better if they did exclusively one or the other but am open to be persuaded. A little bit of renaming might help make this clearer too.
Apart from that, it's just tidying. There's a merge conflict so I won't run any tests this time.

Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
Comment thread src/psyclone/tests/psyir/tools/definition_use_chains_forward_dependence_test.py Outdated
@LonelyCat124

Copy link
Copy Markdown
Collaborator Author

@arporter I think this is ready for another look now. All but one comment is addressed, that comment got put into its own issue as I think its too much for right now and I'd rather look at it separately later. I added TODOs for it.

@arporter arporter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks very much Aidan, very nearly there now.
Coming back to this fresh, I realised that the code is breaking encapsulation by importing some fparser classes. Some of this is fixable right now but I suspect some will require CodeBlock to be extended with appropriate query method(s).
Apart from that, it's just a bit more tidying/comments.
I'll run the ITs next time.

Comment thread src/psyclone/psyir/tools/definition_use_chains.py
Comment thread src/psyclone/psyir/tools/definition_use_chains.py
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py Outdated
Comment thread src/psyclone/psyir/tools/definition_use_chains.py
Comment thread src/psyclone/psyir/tools/definition_use_chains.py
Comment thread src/psyclone/psyir/tools/definition_use_chains.py
Comment thread src/psyclone/psyir/tools/definition_use_chains.py
@LonelyCat124

Copy link
Copy Markdown
Collaborator Author

@arporter This is ready for another look. I think technically you've not checked through the forward tests - I tried to apply everything you've said to both but probably worth checking over in case I missed anything.

@arporter
arporter deployed to integration August 26, 2026 11:53 — with GitHub Actions Active
@arporter

Copy link
Copy Markdown
Member

Thanks @LonelyCat124, all looks good now. I've set the ITs running. If they are OK then I shall proceed to merge.

@arporter arporter left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ITs were all green. Will proceed to merge.

@arporter
arporter merged commit 21b1715 into master Aug 26, 2026
16 checks passed
@arporter
arporter deleted the duc_unsupported_type_checks branch August 26, 2026 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants