177 lines · plain
1// RUN: mlir-lsp-server -lit-test < %s | FileCheck -strict-whitespace %s2{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"mlir","capabilities":{},"trace":"off"}}3// -----4{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{5 "uri":"test:///foo.mlir",6 "languageId":"mlir",7 "version":1,8 "text":"#attr = 42 : f32\n// -----\nfunc.func @foo(%arg: i32) -> i64 {\nreturn %arg : i64\n}\n"9}}}10// -----11{"jsonrpc":"2.0","id":1,"method":"textDocument/codeAction","params":{12 "textDocument":{13 "uri":"file:///foo.mlir"14 },15 "range":{16 "start":{"line":0,"character":8}, "end":{"line":0,"character":10}17 },18 "context":{19 "diagnostics":[{20 "range":{"start":{"line":0,"character":8}, "end":{"line":0,"character":10}},21 "message":"unexpected decimal integer literal for a floating point value",22 "severity":1,23 "relatedInformation":[{24 "message":"add a trailing dot to make the literal a float",25 "location":{26 "uri":"file:///foo.mlir",27 "range":{"start":{"line":0,"character":8}, "end":{"line":0,"character":10}}28 }29 }],30 "source":"mlir"31 }],32 "only":["quickfix"],33 "triggerKind":134 }35}}36// CHECK-LABEL: "id": 137// CHECK-NEXT: "jsonrpc": "2.0",38// CHECK-NEXT: "result": [39// CHECK-NEXT: {40// CHECK-NEXT: "diagnostics": [41// CHECK-NEXT: {42// CHECK-NEXT: "message": "unexpected decimal integer literal for a floating point value",43// CHECK-NEXT: "range": {44// CHECK-NEXT: "end": {45// CHECK-NEXT: "character": 10,46// CHECK-NEXT: "line": 047// CHECK-NEXT: },48// CHECK-NEXT: "start": {49// CHECK-NEXT: "character": 8,50// CHECK-NEXT: "line": 051// CHECK-NEXT: }52// CHECK-NEXT: },53// CHECK-NEXT: "relatedInformation": [54// CHECK-NEXT: {55// CHECK-NEXT: "location": {56// CHECK-NEXT: "range": {57// CHECK-NEXT: "end": {58// CHECK-NEXT: "character": 10,59// CHECK-NEXT: "line": 060// CHECK-NEXT: },61// CHECK-NEXT: "start": {62// CHECK-NEXT: "character": 8,63// CHECK-NEXT: "line": 064// CHECK-NEXT: }65// CHECK-NEXT: },66// CHECK-NEXT: "uri": "file:///foo.mlir"67// CHECK-NEXT: },68// CHECK-NEXT: "message": "add a trailing dot to make the literal a float"69// CHECK-NEXT: }70// CHECK-NEXT: ],71// CHECK-NEXT: "severity": 1,72// CHECK-NEXT: "source": "mlir"73// CHECK-NEXT: }74// CHECK-NEXT: ],75// CHECK-NEXT: "edit": {76// CHECK-NEXT: "changes": {77// CHECK-NEXT: "file:///foo.mlir": [78// CHECK-NEXT: {79// CHECK-LITERAL: "newText": "// expected-error @below {{unexpected decimal integer literal for a floating point value}}\n"80// CHECK: "range": {81// CHECK-NEXT: "end": {82// CHECK-NEXT: "character": 0,83// CHECK-NEXT: "line": 084// CHECK-NEXT: },85// CHECK-NEXT: "start": {86// CHECK-NEXT: "character": 0,87// CHECK-NEXT: "line": 088// CHECK-NEXT: }89// CHECK-NEXT: }90// CHECK-NEXT: },91// CHECK-NEXT: {92// CHECK-NEXT-LITERAL: "newText": "// expected-note @below {{add a trailing dot to make the literal a float}}\n",93// CHECK: "range": {94// CHECK-NEXT: "end": {95// CHECK-NEXT: "character": 0,96// CHECK-NEXT: "line": 097// CHECK-NEXT: },98// CHECK-NEXT: "start": {99// CHECK-NEXT: "character": 0,100// CHECK-NEXT: "line": 0101// CHECK-NEXT: }102// CHECK-NEXT: }103// CHECK-NEXT: }104// CHECK-NEXT: ]105// CHECK-NEXT: }106// CHECK-NEXT: },107// CHECK-NEXT: "kind": "quickfix",108// CHECK-NEXT: "title": "Add expected-* diagnostic checks"109// CHECK-NEXT: }110// CHECK-NEXT: ]111// -----112{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{113 "textDocument":{"uri":"file:///foo.mlir"},114 "range":{"start":{"line":3,"character":9},"end":{"line":3,"character":13}},115 "context":{116 "diagnostics":[{117 "range":{"start":{"line":3,"character":9},"end":{"line":3,"character":13}},118 "message":"use of value '%arg' expects different type than prior uses: 'i64' vs 'i32'",119 "severity":1,120 "relatedInformation":[{121 "message":"prior use here",122 "location":{123 "uri":"file:///foo.mlir",124 "range":{"start":{"line":2,"character":15},"end":{"line":2,"character":19}}125 }126 }],127 "source":"mlir"128 }],129 "only":["quickfix"],130 "triggerKind":1131 }132}}133// CHECK-LABEL: "id": 2134// CHECK-NEXT: "jsonrpc": "2.0",135// CHECK-NEXT: "result": [136// CHECK-NEXT: {137// CHECK: "edit": {138// CHECK-NEXT: "changes": {139// CHECK-NEXT: "file:///foo.mlir": [140// CHECK-NEXT: {141// CHECK-NEXT-LITERAL: "newText": "// expected-error @below {{use of value '%arg' expects different type than prior uses: 'i64' vs 'i32'}}\n",142// CHECK: "range": {143// CHECK-NEXT: "end": {144// CHECK-NEXT: "character": 0,145// CHECK-NEXT: "line": 3146// CHECK-NEXT: },147// CHECK-NEXT: "start": {148// CHECK-NEXT: "character": 0,149// CHECK-NEXT: "line": 3150// CHECK-NEXT: }151// CHECK-NEXT: }152// CHECK-NEXT: },153// CHECK-NEXT: {154// CHECK-NEXT-LITERAL: "newText": "// expected-note @below {{prior use here}}\n",155// CHECK: "range": {156// CHECK-NEXT: "end": {157// CHECK-NEXT: "character": 0,158// CHECK-NEXT: "line": 2159// CHECK-NEXT: },160// CHECK-NEXT: "start": {161// CHECK-NEXT: "character": 0,162// CHECK-NEXT: "line": 2163// CHECK-NEXT: }164// CHECK-NEXT: }165// CHECK-NEXT: }166// CHECK-NEXT: ]167// CHECK-NEXT: }168// CHECK-NEXT: },169// CHECK-NEXT: "kind": "quickfix",170// CHECK-NEXT: "title": "Add expected-* diagnostic checks"171// CHECK-NEXT: }172// CHECK-NEXT: ]173// -----174{"jsonrpc":"2.0","id":10,"method":"shutdown"}175// -----176{"jsonrpc":"2.0","method":"exit"}177