update the parser to include synthesized methods for retain, release, and a counter
add a special case to the checker to not throw an error for an unintitialized counter field; that's never the programmer's job
update the parser to include a stub / shim for dealloc
emit contract specific wiper functions that take a storage pointer and zero out the instance stored there.
update the Yul translation to point the dealloc shim to the wiper
at Construction, set the reference count field to 1
add tests for incrementing, decrementing, and nested calls of the wipers
detect when an expression in an assignment will translate to something generating a pointer and deference the result accordingly
housekeeping:
remove dead code
add comments
update expected logs to reflect new layout in memory
update definition of FunctionDefinition Yul AST node to include a flag for inclusion in the dispatch table, and also filter transactions in the dispatch table accordingly.
add boolean parameter to the parser to control when GC code gets injected (otherwise the fabric tests fail)
technical:
housekeeping:
FunctionDefinition
Yul AST node to include a flag for inclusion in the dispatch table, and also filter transactions in the dispatch table accordingly.