1*0429472eSRiver Riddle// RUN: mlir-pdll-lsp-server -pdll-extra-dir %S -pdll-extra-dir %S/../../include -lit-test < %s | FileCheck -strict-whitespace %s 2469c5894SRiver Riddle{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"pdll","capabilities":{},"trace":"off"}} 3469c5894SRiver Riddle// ----- 4469c5894SRiver Riddle{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{ 5469c5894SRiver Riddle "uri":"test:///foo.pdll", 6469c5894SRiver Riddle "languageId":"pdll", 7469c5894SRiver Riddle "version":1, 8*0429472eSRiver Riddle "text":"#include \"include/included.td\"\nConstraint ValueCst(value: Value, value2: Value);\nPattern {\nlet root = op<test.multi>(val: Value, val) -> (ty: Type, ty);\nValueCst(root.result, root.result2);\nerase root;\n}" 9469c5894SRiver Riddle}}} 10469c5894SRiver Riddle// ----- 11469c5894SRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 12469c5894SRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 13*0429472eSRiver Riddle "position":{"line":3,"character":26} 14469c5894SRiver Riddle}} 15469c5894SRiver Riddle// CHECK: "id": 1 16469c5894SRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 17469c5894SRiver Riddle// CHECK-NEXT: "result": { 18469c5894SRiver Riddle// CHECK-NEXT: "activeParameter": 0, 19469c5894SRiver Riddle// CHECK-NEXT: "activeSignature": 0, 20469c5894SRiver Riddle// CHECK-NEXT: "signatures": [ 21469c5894SRiver Riddle// CHECK-NEXT: { 22*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "`op<test.multi>` ODS operand specification", 23*0429472eSRiver Riddle// CHECK-NEXT: "label": "(operand: Value, operand2: Value)", 24*0429472eSRiver Riddle// CHECK-NEXT: "parameters": [ 25*0429472eSRiver Riddle// CHECK-NEXT: { 26*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 27*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 28*0429472eSRiver Riddle// CHECK-NEXT: 1, 29*0429472eSRiver Riddle// CHECK-NEXT: 15 30*0429472eSRiver Riddle// CHECK-NEXT: ] 31*0429472eSRiver Riddle// CHECK-NEXT: }, 32*0429472eSRiver Riddle// CHECK-NEXT: { 33*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 34*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 35*0429472eSRiver Riddle// CHECK-NEXT: 17, 36*0429472eSRiver Riddle// CHECK-NEXT: 32 37*0429472eSRiver Riddle// CHECK-NEXT: ] 38*0429472eSRiver Riddle// CHECK-NEXT: } 39*0429472eSRiver Riddle// CHECK-NEXT: ] 40*0429472eSRiver Riddle// CHECK-NEXT: }, 41*0429472eSRiver Riddle// CHECK-NEXT: { 42469c5894SRiver Riddle// CHECK-NEXT: "documentation": "Generic operation operand specification", 43469c5894SRiver Riddle// CHECK-NEXT: "label": "(<operands>: ValueRange)", 44469c5894SRiver Riddle// CHECK-NEXT: "parameters": [ 45469c5894SRiver Riddle// CHECK-NEXT: { 46469c5894SRiver Riddle// CHECK-NEXT: "documentation": "All of the operands of the operation.", 47469c5894SRiver Riddle// CHECK-NEXT: "label": [ 48469c5894SRiver Riddle// CHECK-NEXT: 1, 49469c5894SRiver Riddle// CHECK-NEXT: 23 50469c5894SRiver Riddle// CHECK-NEXT: ] 51469c5894SRiver Riddle// CHECK-NEXT: } 52469c5894SRiver Riddle// CHECK-NEXT: ] 53469c5894SRiver Riddle// CHECK-NEXT: } 54469c5894SRiver Riddle// CHECK-NEXT: ] 55469c5894SRiver Riddle// CHECK-NEXT: } 56469c5894SRiver Riddle// ----- 57469c5894SRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 58469c5894SRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 59*0429472eSRiver Riddle "position":{"line":3,"character":38} 60*0429472eSRiver Riddle}} 61*0429472eSRiver Riddle// CHECK: "id": 1 62*0429472eSRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 63*0429472eSRiver Riddle// CHECK-NEXT: "result": { 64*0429472eSRiver Riddle// CHECK-NEXT: "activeParameter": 1, 65*0429472eSRiver Riddle// CHECK-NEXT: "activeSignature": 0, 66*0429472eSRiver Riddle// CHECK-NEXT: "signatures": [ 67*0429472eSRiver Riddle// CHECK-NEXT: { 68*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "`op<test.multi>` ODS operand specification", 69*0429472eSRiver Riddle// CHECK-NEXT: "label": "(operand: Value, operand2: Value)", 70*0429472eSRiver Riddle// CHECK-NEXT: "parameters": [ 71*0429472eSRiver Riddle// CHECK-NEXT: { 72*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 73*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 74*0429472eSRiver Riddle// CHECK-NEXT: 1, 75*0429472eSRiver Riddle// CHECK-NEXT: 15 76*0429472eSRiver Riddle// CHECK-NEXT: ] 77*0429472eSRiver Riddle// CHECK-NEXT: }, 78*0429472eSRiver Riddle// CHECK-NEXT: { 79*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 80*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 81*0429472eSRiver Riddle// CHECK-NEXT: 17, 82*0429472eSRiver Riddle// CHECK-NEXT: 32 83*0429472eSRiver Riddle// CHECK-NEXT: ] 84*0429472eSRiver Riddle// CHECK-NEXT: } 85*0429472eSRiver Riddle// CHECK-NEXT: ] 86*0429472eSRiver Riddle// CHECK-NEXT: } 87*0429472eSRiver Riddle// CHECK-NEXT: ] 88*0429472eSRiver Riddle// CHECK-NEXT: } 89*0429472eSRiver Riddle// ----- 90*0429472eSRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 91*0429472eSRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 92*0429472eSRiver Riddle "position":{"line":3,"character":47} 93469c5894SRiver Riddle}} 94469c5894SRiver Riddle// CHECK: "id": 1 95469c5894SRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 96469c5894SRiver Riddle// CHECK-NEXT: "result": { 97469c5894SRiver Riddle// CHECK-NEXT: "activeParameter": 0, 98469c5894SRiver Riddle// CHECK-NEXT: "activeSignature": 0, 99469c5894SRiver Riddle// CHECK-NEXT: "signatures": [ 100469c5894SRiver Riddle// CHECK-NEXT: { 101*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "`op<test.multi>` ODS result specification", 102*0429472eSRiver Riddle// CHECK-NEXT: "label": "(result: Type, result2: Type)", 103*0429472eSRiver Riddle// CHECK-NEXT: "parameters": [ 104*0429472eSRiver Riddle// CHECK-NEXT: { 105*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 106*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 107*0429472eSRiver Riddle// CHECK-NEXT: 1, 108*0429472eSRiver Riddle// CHECK-NEXT: 13 109*0429472eSRiver Riddle// CHECK-NEXT: ] 110*0429472eSRiver Riddle// CHECK-NEXT: }, 111*0429472eSRiver Riddle// CHECK-NEXT: { 112*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 113*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 114*0429472eSRiver Riddle// CHECK-NEXT: 15, 115*0429472eSRiver Riddle// CHECK-NEXT: 28 116*0429472eSRiver Riddle// CHECK-NEXT: ] 117*0429472eSRiver Riddle// CHECK-NEXT: } 118*0429472eSRiver Riddle// CHECK-NEXT: ] 119*0429472eSRiver Riddle// CHECK-NEXT: }, 120*0429472eSRiver Riddle// CHECK-NEXT: { 121469c5894SRiver Riddle// CHECK-NEXT: "documentation": "Generic operation result specification", 122469c5894SRiver Riddle// CHECK-NEXT: "label": "(<results>: TypeRange)", 123469c5894SRiver Riddle// CHECK-NEXT: "parameters": [ 124469c5894SRiver Riddle// CHECK-NEXT: { 125469c5894SRiver Riddle// CHECK-NEXT: "documentation": "All of the results of the operation.", 126469c5894SRiver Riddle// CHECK-NEXT: "label": [ 127469c5894SRiver Riddle// CHECK-NEXT: 1, 128469c5894SRiver Riddle// CHECK-NEXT: 21 129469c5894SRiver Riddle// CHECK-NEXT: ] 130469c5894SRiver Riddle// CHECK-NEXT: } 131469c5894SRiver Riddle// CHECK-NEXT: ] 132469c5894SRiver Riddle// CHECK-NEXT: } 133469c5894SRiver Riddle// CHECK-NEXT: ] 134469c5894SRiver Riddle// CHECK-NEXT: } 135469c5894SRiver Riddle// ----- 136469c5894SRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 137469c5894SRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 138*0429472eSRiver Riddle "position":{"line":3,"character":57} 139*0429472eSRiver Riddle}} 140*0429472eSRiver Riddle// CHECK: "id": 1 141*0429472eSRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 142*0429472eSRiver Riddle// CHECK-NEXT: "result": { 143*0429472eSRiver Riddle// CHECK-NEXT: "activeParameter": 1, 144*0429472eSRiver Riddle// CHECK-NEXT: "activeSignature": 0, 145*0429472eSRiver Riddle// CHECK-NEXT: "signatures": [ 146*0429472eSRiver Riddle// CHECK-NEXT: { 147*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "`op<test.multi>` ODS result specification", 148*0429472eSRiver Riddle// CHECK-NEXT: "label": "(result: Type, result2: Type)", 149*0429472eSRiver Riddle// CHECK-NEXT: "parameters": [ 150*0429472eSRiver Riddle// CHECK-NEXT: { 151*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 152*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 153*0429472eSRiver Riddle// CHECK-NEXT: 1, 154*0429472eSRiver Riddle// CHECK-NEXT: 13 155*0429472eSRiver Riddle// CHECK-NEXT: ] 156*0429472eSRiver Riddle// CHECK-NEXT: }, 157*0429472eSRiver Riddle// CHECK-NEXT: { 158*0429472eSRiver Riddle// CHECK-NEXT: "documentation": "64-bit signless integer", 159*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 160*0429472eSRiver Riddle// CHECK-NEXT: 15, 161*0429472eSRiver Riddle// CHECK-NEXT: 28 162*0429472eSRiver Riddle// CHECK-NEXT: ] 163*0429472eSRiver Riddle// CHECK-NEXT: } 164*0429472eSRiver Riddle// CHECK-NEXT: ] 165*0429472eSRiver Riddle// CHECK-NEXT: } 166*0429472eSRiver Riddle// CHECK-NEXT: ] 167*0429472eSRiver Riddle// CHECK-NEXT: } 168*0429472eSRiver Riddle// ----- 169*0429472eSRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 170*0429472eSRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 171*0429472eSRiver Riddle "position":{"line":4,"character":9} 172469c5894SRiver Riddle}} 173469c5894SRiver Riddle// CHECK: "id": 1 174469c5894SRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 175469c5894SRiver Riddle// CHECK-NEXT: "result": { 176469c5894SRiver Riddle// CHECK-NEXT: "activeParameter": 0, 177469c5894SRiver Riddle// CHECK-NEXT: "activeSignature": 0, 178469c5894SRiver Riddle// CHECK-NEXT: "signatures": [ 179469c5894SRiver Riddle// CHECK-NEXT: { 180*0429472eSRiver Riddle// CHECK-NEXT: "label": "ValueCst(value: Value, value2: Value) -> Tuple<>", 181469c5894SRiver Riddle// CHECK-NEXT: "parameters": [ 182469c5894SRiver Riddle// CHECK-NEXT: { 183469c5894SRiver Riddle// CHECK-NEXT: "label": [ 184469c5894SRiver Riddle// CHECK-NEXT: 9, 185469c5894SRiver Riddle// CHECK-NEXT: 21 186469c5894SRiver Riddle// CHECK-NEXT: ] 187*0429472eSRiver Riddle// CHECK-NEXT: }, 188*0429472eSRiver Riddle// CHECK-NEXT: { 189*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 190*0429472eSRiver Riddle// CHECK-NEXT: 23, 191*0429472eSRiver Riddle// CHECK-NEXT: 36 192*0429472eSRiver Riddle// CHECK-NEXT: ] 193*0429472eSRiver Riddle// CHECK-NEXT: } 194*0429472eSRiver Riddle// CHECK-NEXT: ] 195*0429472eSRiver Riddle// CHECK-NEXT: } 196*0429472eSRiver Riddle// CHECK-NEXT: ] 197*0429472eSRiver Riddle// CHECK-NEXT: } 198*0429472eSRiver Riddle// ----- 199*0429472eSRiver Riddle{"jsonrpc":"2.0","id":1,"method":"textDocument/signatureHelp","params":{ 200*0429472eSRiver Riddle "textDocument":{"uri":"test:///foo.pdll"}, 201*0429472eSRiver Riddle "position":{"line":4,"character":21} 202*0429472eSRiver Riddle}} 203*0429472eSRiver Riddle// CHECK: "id": 1 204*0429472eSRiver Riddle// CHECK-NEXT: "jsonrpc": "2.0", 205*0429472eSRiver Riddle// CHECK-NEXT: "result": { 206*0429472eSRiver Riddle// CHECK-NEXT: "activeParameter": 1, 207*0429472eSRiver Riddle// CHECK-NEXT: "activeSignature": 0, 208*0429472eSRiver Riddle// CHECK-NEXT: "signatures": [ 209*0429472eSRiver Riddle// CHECK-NEXT: { 210*0429472eSRiver Riddle// CHECK-NEXT: "label": "ValueCst(value: Value, value2: Value) -> Tuple<>", 211*0429472eSRiver Riddle// CHECK-NEXT: "parameters": [ 212*0429472eSRiver Riddle// CHECK-NEXT: { 213*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 214*0429472eSRiver Riddle// CHECK-NEXT: 9, 215*0429472eSRiver Riddle// CHECK-NEXT: 21 216*0429472eSRiver Riddle// CHECK-NEXT: ] 217*0429472eSRiver Riddle// CHECK-NEXT: }, 218*0429472eSRiver Riddle// CHECK-NEXT: { 219*0429472eSRiver Riddle// CHECK-NEXT: "label": [ 220*0429472eSRiver Riddle// CHECK-NEXT: 23, 221*0429472eSRiver Riddle// CHECK-NEXT: 36 222*0429472eSRiver Riddle// CHECK-NEXT: ] 223469c5894SRiver Riddle// CHECK-NEXT: } 224469c5894SRiver Riddle// CHECK-NEXT: ] 225469c5894SRiver Riddle// CHECK-NEXT: } 226469c5894SRiver Riddle// CHECK-NEXT: ] 227469c5894SRiver Riddle// CHECK-NEXT: } 228469c5894SRiver Riddle// ----- 229469c5894SRiver Riddle{"jsonrpc":"2.0","id":3,"method":"shutdown"} 230469c5894SRiver Riddle// ----- 231469c5894SRiver Riddle{"jsonrpc":"2.0","method":"exit"} 232