From 235692a2e039aa6a256c828f5f3e9f56536fc91a Mon Sep 17 00:00:00 2001 From: Jordan Ribbink Date: Thu, 8 Feb 2024 09:58:50 -0800 Subject: [PATCH] fixup --- lint/cadence_v1_analyzer.go | 12 ++++++------ lint/cadence_v1_analyzer_test.go | 26 ++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/lint/cadence_v1_analyzer.go b/lint/cadence_v1_analyzer.go index 6eef8c75..29c3b8cd 100644 --- a/lint/cadence_v1_analyzer.go +++ b/lint/cadence_v1_analyzer.go @@ -28,7 +28,7 @@ import ( ) type cadenceV1Analyzer struct { - pass *analysis.Pass + program *analysis.Program elaboration *sema.Elaboration report func(analysis.Diagnostic) inspector *ast.Inspector @@ -57,7 +57,7 @@ func init() { func newCadenceV1Analyzer(pass *analysis.Pass) *cadenceV1Analyzer { visitor := &cadenceV1Analyzer{ - pass: pass, + program: pass.Program, elaboration: pass.Program.Checker.Elaboration, report: pass.Report, inspector: pass.ResultOf[analysis.InspectorAnalyzer].(*ast.Inspector), @@ -97,10 +97,10 @@ func (v *cadenceV1Analyzer) analyzeRemovedAccountMembers() { case "save": v.newDiagnostic( identifier, - "This has been removed in Cadence 1.0 in favour of the new Storage API.", + "`save` has been replaced by the new Storage API.", "C1.0-StorageAPI-Save", "https://forum.flow.com/t/update-on-cadence-1-0/5197#account-access-got-improved-55", - ).Report() + ).WithSimpleReplacement("storage.save").Report() // acct.linkAccount() case "linkAccount": @@ -136,7 +136,7 @@ func (v *cadenceV1Analyzer) analyzeRemovedAccountMembers() { "`getCapability` has been replaced by the Capability Controller API.", "C1.0-CapabilityAPI-GetCapability", "https://forum.flow.com/t/update-on-cadence-1-0/5197#capability-controller-api-replaced-existing-linking-based-capability-api-82", - ).Report() + ).WithSimpleReplacement("capabilities.get").Report() // acct.getLinkTarget() case "getLinkTarget": @@ -314,7 +314,7 @@ func (v *cadenceV1Analyzer) newDiagnostic( docURL string, ) *diagnostic { return newDiagnostic( - v.pass.Program.Location, + v.program.Location, v.report, fmt.Sprintf("[Cadence 1.0] %s", message), ast.NewRangeFromPositioned(nil, position), diff --git a/lint/cadence_v1_analyzer_test.go b/lint/cadence_v1_analyzer_test.go index 124a5fc7..90df0944 100644 --- a/lint/cadence_v1_analyzer_test.go +++ b/lint/cadence_v1_analyzer_test.go @@ -55,10 +55,32 @@ func TestCadenceV1Analyzer(t *testing.T) { Location: testLocation, Severity: analysis.SeverityError, Category: lint.CadenceV1Category, - Message: "[Cadence 1.0] This has been removed in Cadence 1.0 in favour of the new Storage API.", + Message: "[Cadence 1.0] `save` has been replaced by the new Storage API.", Code: "C1.0-StorageAPI-Save", DocURL: "https://forum.flow.com/t/update-on-cadence-1-0/5197#account-access-got-improved-55", - SuggestedFixes: []analysis.SuggestedFix{}, + SuggestedFixes: []analysis.SuggestedFix{ + { + Message: "Replace with `storage.save`", + TextEdits: []ast.TextEdit{ + { + Replacement: "storage.save", + Insertion: "", + Range: ast.Range{ + StartPos: ast.Position{ + Offset: 63, + Line: 4, + Column: 18, + }, + EndPos: ast.Position{ + Offset: 66, + Line: 4, + Column: 21, + }, + }, + }, + }, + }, + }, Range: ast.Range{ StartPos: ast.Position{ Offset: 63,