Skip to content

Conversation

diegoximenes
Copy link
Contributor

@diegoximenes diegoximenes commented Sep 24, 2025

Description

Resolves NIT-3911

This PR includes the following changes:

  • export-abi support for the new inheritance model
  • Run clippy individually for export-abi. export-abi considerably changes code output, so it is advisable to run it separately.
  • ci/build_and_test.sh doesn't run with export-abi. From now on, to test the export-abi feature, we solely rely on the exported abi comparison procedure deployed by the integration test CI step.

What is missing:

  • export-abi support for associated types. Filed a linear ticket for that.

Checklist

  • I have documented these changes where necessary.
  • I have read the DCO and ensured that these changes comply.
  • I assign this work under its open source licensing.

@diegoximenes diegoximenes changed the title Inheritance export abi export-abi support for the new inheritance model Sep 25, 2025
@diegoximenes diegoximenes marked this pull request as ready for review September 26, 2025 15:05
interface ICallee is ITrait1, ITrait2 {
function noInputNoOutput() external view;
}
interface ITrait1 {
Copy link
Contributor

@alexandrosfilios alexandrosfilios Oct 10, 2025

Choose a reason for hiding this comment

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

Maybe very edge case, but in theory we could implement the same generic interface twice (for different generics), e.g.

impl Trait1<String> for Callee {}

impl Trait1<U256> for Callee {}

Then we could either re-define the attribute as

#[implements(Trait1<U256> as Trait1Number, Trait1<String> as Trait1String)]

That would require also some renaming of the methods though. Maybe it would be simpler to return an error if it is the case, or at least document it in the README to avoid the scenario.

@rory-ocl rory-ocl merged commit 650db42 into main Oct 10, 2025
72 checks passed
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.

3 participants