Experimental codegen for types of different stack sizes
Fixes https://github.com/ethereum/solidity/issues/14569
I just rebased this on top of the current state of newAnalysis.
As for the syntax tests failing on test/libsolidity/syntaxTests/experimental/builtin/builtin_type_definition.sol: that's not an issue of this PR, but of the test itself.
It's generally invalid to declare a variable of type void as done in let v:void there, so we should change the test.
We could either remove that variable from the test or change it to a function - let v:void->void should be fine.
In a separate PR we can then at some point extend analysis to produce proper errors on declaring variables of types without stack representation, but that's out of scope for this PR.
As for the syntax tests failing on
test/libsolidity/syntaxTests/experimental/builtin/builtin_type_definition.sol: that's not an issue of this PR, but of the test itself. It's generally invalid to declare a variable of typevoidas done inlet v:voidthere, so we should change the test. We could either remove that variable from the test or change it to a function -let v:void->voidshould be fine.In a separate PR we can then at some point extend analysis to produce proper errors on declaring variables of types without stack representation, but that's out of scope for this PR.
Also, now I'm asserting instead of throwing a error as suggested here https://github.com/ethereum/solidity/pull/14620#discussion_r1472815686 so tests that test will also fail because of the integer declaration: let i: integer; or should this also be a function?
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request is stale because it has been open for 14 days with no activity.
It will be closed in 7 days unless the stale label is removed.
This pull request was closed due to a lack of activity for 7 days after it was stale.