func foo() { let a = 0; let b = 0 }; unresolved // Test that offsets of diagnostic ranges and fixits get updated correctly after the edit request // RUN: %sourcekitd-test -req=open %s -- %s == -req=print-diags %s \ // RUN: == -req=edit -pos=2:1 -replace="_" -length=5 %s == -req=print-diags %s \ // RUN: | %FileCheck %s // CHECK: key.line: 2, // CHECK-NEXT: key.column: 5, // CHECK: key.description: "initialization of immutable value 'a' // CHECK: key.fixits: // CHECK-NEXT: { // CHECK-NEXT: key.offset: 13, // CHECK-NEXT: key.length: 5, // CHECK-NEXT: key.sourcetext: "_" // CHECK-NEXT: } // CHECK: key.line: 2, // CHECK-NEXT: key.column: 16, // CHECK: key.description: "initialization of immutable value 'b' // CHECK: key.fixits: // CHECK-NEXT: { // CHECK-NEXT: key.offset: 24, // CHECK-NEXT: key.length: 5, // CHECK-NEXT: key.sourcetext: "_" // CHECK-NEXT: } // CHECK: key.line: 2, // CHECK-NEXT: key.column: 25, // CHECK: key.description: "use of unresolved identifier 'unresolved'", // CHECK: key.ranges: // CHECK-NEXT: { // CHECK-NEXT: key.offset: 37, // CHECK-NEXT: key.length: 10 // CHECK-NEXT: } // == After the edit ===== // CHECK: key.line: 2, // CHECK-NEXT: key.column: 12, // CHECK: key.description: "initialization of immutable value 'b' // CHECK: key.fixits: // CHECK-NEXT: { // CHECK-NEXT: key.offset: 20, // CHECK-NEXT: key.length: 5, // CHECK-NEXT: key.sourcetext: "_" // CHECK-NEXT: } // CHECK: key.line: 2, // CHECK-NEXT: key.column: 21, // CHECK: key.description: "use of unresolved identifier 'unresolved'", // CHECK: key.ranges: // CHECK-NEXT: { // CHECK-NEXT: key.offset: 33, // CHECK-NEXT: key.length: 10 // CHECK-NEXT: }