go-ethereum/rlp/rlpgen
Quentin McGaw 739ba847f6
feat(rlp/rlpgen): support alias types (#154)
## Why this should be merged

To be able to generate RLP code using type aliases (defined e.g. in
`coreth`).
This can and should be PR-ed upstream as well I think.

## How this works

Call `types.Unalias()` at the start of `buildContext.makeOp()`. The
alternative of adding a `case` to the switch statement adds unnecessary
recursive calls while `types.Unalias()` is a no-op if not an alias.

## How this was tested

New `rlpgen` unit test with aliases of well-known types that have
special handling—these make their proper handling easy to spot when
inspecting generated code. A recursive alias in the same test also
demonstrates full alias resolution.

---------

Co-authored-by: Arran Schlosberg <me@arranschlosberg.com>
2025-02-27 11:13:11 +00:00
..
testdata feat(rlp/rlpgen): support alias types (#154) 2025-02-27 11:13:11 +00:00
gen.go feat(rlp/rlpgen): support alias types (#154) 2025-02-27 11:13:11 +00:00
gen_test.go feat(rlp/rlpgen): support alias types (#154) 2025-02-27 11:13:11 +00:00
main.go feat: internalise command (#90) 2024-12-17 17:20:02 +01:00
types.go rlp: support for uint256 (#26898) 2023-03-17 06:51:55 -04:00