onflow/cadence-tools

[lint] Add Cadence 1.0 Analyzer

Closed this issue · 0 comments

Issue to be solved

Given the changes coming to Cadence 1.0 & the necessity for developers to update their contracts, it would be very useful to developers to have access to robust diagnostic information related to outdated code. While some dedicated messaging exists for particular features, others have not been addressed and will only surface as a generic checker/parser error (i.e. "member getCapability doesn't exist"). It would help the user experience if there were diagnostic errors which guided them through the process and specifically addressed these removed features.

This can be surfaced in multiple places:

  • Cadence 1.0 playground
  • VSCode extension when updating contract code
  • Flow CLI as a part of a lint command
  • Potentially Flow CLI when staging contract deployment

Suggested Solution

Add an analyzer which identifies pieces of code using the old >Cadence 1.0 syntaxes and gives diagnostic information with the following:

  • Information regarding what has changed to the syntax
  • Link to documentation about the changes
  • Potentially suggests fixes if there isn't significant logic change & these are simple/deterministic enough