I implemented the Uniswap v2 pair contract in Core Solidity . The language is farther along than I thought. Here’s some thoughts:
name: uint256, vs uint256 name in function names and storage definitions is the biggest visual difference from classic solidity. Is there a compelling reason for this? If it’s going to switch back, might be good to go ahead and do it.
Are we having function modifiers? Reentrancy protection feels a bit uglier without this.
Function visibility is coming, right? internal / external / public?
Things I needed, but assume are coming:
1. Missing globals msg.sender, block.timestamp, etc. Defined my own methods for these, but writing your own code for it is not how it should ship.
2. String support
3. Safe math must be the default
4. I shouldn't have to always type literal numbers in the code, eg uint256(0)
6. Custom Error support, rather than just returning raw custom error bytes.
7. Auto-accessors for public variables.