Description
Depends on #13368.
As a second step of #13323, we properly type check the new code
data location.
This entails removing the syntax error introduced in #13368 and instead implementing the type checker logic for the code
data location.
This will mostly involve conscious copying of the behaviour of the calldata
location in runtime context and of the memory
location in creation context. Since code
variables behave differently depending on creation vs runtime context, this will require some refactoring of the type checking logic (may overlap with #13365).
This should be accompanied by extensive syntax tests that demonstrate the type checking behaviour.
Finally, in code generation, any attempt to generate code for a code
variable should result in an solUnimplementedAssert
to be eliminated in subsequent steps.