brintos

brintos / llvm-project-archived public Read only

0
0
Text · 8.1 KiB · cd636c4 Raw
195 lines · plain
1# RUN: clangd -lit-test < %s | FileCheck -strict-whitespace %s2{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":123,"rootPath":"clangd","capabilities":{"workspace":{"workspaceEdit":{"documentChanges":true}}},"trace":"off"}}3---4{"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"test:///foo.c","languageId":"c","text":"int main(int i, char **a) { if (i = 2) {}}"}}}5#      CHECK:    "method": "textDocument/publishDiagnostics",6# CHECK-NEXT:  "params": {7# CHECK-NEXT:    "diagnostics": [8# CHECK-NEXT:      {9# CHECK-NEXT:        "code": "-Wparentheses",10# CHECK-NEXT:        "message": "Using the result of an assignment as a condition without parentheses (fixes available)",11# CHECK-NEXT:        "range": {12# CHECK-NEXT:          "end": {13# CHECK-NEXT:            "character": 37,14# CHECK-NEXT:            "line": 015# CHECK-NEXT:          },16# CHECK-NEXT:          "start": {17# CHECK-NEXT:            "character": 32,18# CHECK-NEXT:            "line": 019# CHECK-NEXT:          }20# CHECK-NEXT:        },21# CHECK-NEXT:        "severity": 2,22# CHECK-NEXT:        "source": "clang"23# CHECK-NEXT:      }24# CHECK-NEXT:    ],25# CHECK-NEXT:    "uri": "file://{{.*}}/foo.c",26# CHECK-NEXT:    "version": 027# CHECK-NEXT:  }28---29{"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":0,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"Using the result of an assignment as a condition without parentheses (fixes available)"}]}}}30#      CHECK:  "id": 2,31# CHECK-NEXT:  "jsonrpc": "2.0",32# CHECK-NEXT:  "result": [33# CHECK-NEXT:    {34# CHECK-NEXT:      "arguments": [35# CHECK-NEXT:        {36# CHECK-NEXT:          "documentChanges": [37# CHECK-NEXT:            {38# CHECK-NEXT:              "edits": [39# CHECK-NEXT:                {40# CHECK-NEXT:                  "newText": "(",41# CHECK-NEXT:                  "range": {42# CHECK-NEXT:                    "end": {43# CHECK-NEXT:                      "character": 32,44# CHECK-NEXT:                      "line": 045# CHECK-NEXT:                    },46# CHECK-NEXT:                    "start": {47# CHECK-NEXT:                      "character": 32,48# CHECK-NEXT:                      "line": 049# CHECK-NEXT:                    }50# CHECK-NEXT:                  }51# CHECK-NEXT:                },52# CHECK-NEXT:                {53# CHECK-NEXT:                  "newText": ")",54# CHECK-NEXT:                  "range": {55# CHECK-NEXT:                    "end": {56# CHECK-NEXT:                      "character": 37,57# CHECK-NEXT:                      "line": 058# CHECK-NEXT:                    },59# CHECK-NEXT:                    "start": {60# CHECK-NEXT:                      "character": 37,61# CHECK-NEXT:                      "line": 062# CHECK-NEXT:                    }63# CHECK-NEXT:                  }64# CHECK-NEXT:                }65# CHECK-NEXT:              ],66# CHECK-NEXT:              "textDocument": {67# CHECK-NEXT:                "uri": "file://{{.*}}/foo.c",68# CHECK-NEXT:                "version": 069# CHECK-NEXT:              }70# CHECK-NEXT:            }71# CHECK-NEXT:          ]72# CHECK-NEXT:        }73# CHECK-NEXT:      ],74# CHECK-NEXT:      "command": "clangd.applyFix",75# CHECK-NEXT:      "title": "Apply fix: place parentheses around the assignment to silence this warning"76# CHECK-NEXT:    },77# CHECK-NEXT:    {78# CHECK-NEXT:      "arguments": [79# CHECK-NEXT:        {80# CHECK-NEXT:          "documentChanges": [81# CHECK-NEXT:            {82# CHECK-NEXT:              "edits": [83# CHECK-NEXT:                {84# CHECK-NEXT:                  "newText": "==",85# CHECK-NEXT:                  "range": {86# CHECK-NEXT:                    "end": {87# CHECK-NEXT:                      "character": 35,88# CHECK-NEXT:                      "line": 089# CHECK-NEXT:                    },90# CHECK-NEXT:                    "start": {91# CHECK-NEXT:                      "character": 34,92# CHECK-NEXT:                      "line": 093# CHECK-NEXT:                    }94# CHECK-NEXT:                  }95# CHECK-NEXT:                }96# CHECK-NEXT:              ],97# CHECK-NEXT:              "textDocument": {98# CHECK-NEXT:                "uri": "file://{{.*}}/foo.c",99# CHECK-NEXT:                "version": 0100# CHECK-NEXT:              }101# CHECK-NEXT:            }102# CHECK-NEXT:          ]103# CHECK-NEXT:        }104# CHECK-NEXT:      ],105# CHECK-NEXT:      "command": "clangd.applyFix",106# CHECK-NEXT:      "title": "Apply fix: use '==' to turn this assignment into an equality comparison"107# CHECK-NEXT:    }108# CHECK-NEXT:  ]109---110{"jsonrpc":"2.0","id":3,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"test:///foo.c"},"range":{"start":{"line":0,"character":13},"end":{"line":0,"character":35}},"context":{"diagnostics":[{"range":{"start": {"line": 0, "character": 32}, "end": {"line": 0, "character": 37}},"severity":2,"message":"Using the result of an assignment as a condition without parentheses (fixes available)"}]}}}111# Make sure unused "code" and "source" fields ignored gracefully112#      CHECK:  "id": 3,113# CHECK-NEXT:  "jsonrpc": "2.0",114# CHECK-NEXT:  "result": [115# CHECK-NEXT:    {116# CHECK-NEXT:      "arguments": [117# CHECK-NEXT:        {118# CHECK-NEXT:          "documentChanges": [119# CHECK-NEXT:            {120# CHECK-NEXT:              "edits": [121# CHECK-NEXT:                {122# CHECK-NEXT:                  "newText": "(",123# CHECK-NEXT:                  "range": {124# CHECK-NEXT:                    "end": {125# CHECK-NEXT:                      "character": 32,126# CHECK-NEXT:                      "line": 0127# CHECK-NEXT:                    },128# CHECK-NEXT:                    "start": {129# CHECK-NEXT:                      "character": 32,130# CHECK-NEXT:                      "line": 0131# CHECK-NEXT:                    }132# CHECK-NEXT:                  }133# CHECK-NEXT:                },134# CHECK-NEXT:                {135# CHECK-NEXT:                  "newText": ")",136# CHECK-NEXT:                  "range": {137# CHECK-NEXT:                    "end": {138# CHECK-NEXT:                      "character": 37,139# CHECK-NEXT:                      "line": 0140# CHECK-NEXT:                    },141# CHECK-NEXT:                    "start": {142# CHECK-NEXT:                      "character": 37,143# CHECK-NEXT:                      "line": 0144# CHECK-NEXT:                    }145# CHECK-NEXT:                  }146# CHECK-NEXT:                }147# CHECK-NEXT:              ],148# CHECK-NEXT:              "textDocument": {149# CHECK-NEXT:                "uri": "file://{{.*}}/foo.c",150# CHECK-NEXT:                "version": 0151# CHECK-NEXT:              }152# CHECK-NEXT:            }153# CHECK-NEXT:          ]154# CHECK-NEXT:        }155# CHECK-NEXT:      ],156# CHECK-NEXT:      "command": "clangd.applyFix",157# CHECK-NEXT:      "title": "Apply fix: place parentheses around the assignment to silence this warning"158# CHECK-NEXT:    },159# CHECK-NEXT:    {160# CHECK-NEXT:      "arguments": [161# CHECK-NEXT:        {162# CHECK-NEXT:          "documentChanges": [163# CHECK-NEXT:            {164# CHECK-NEXT:              "edits": [165# CHECK-NEXT:                {166# CHECK-NEXT:                  "newText": "==",167# CHECK-NEXT:                  "range": {168# CHECK-NEXT:                    "end": {169# CHECK-NEXT:                      "character": 35,170# CHECK-NEXT:                      "line": 0171# CHECK-NEXT:                    },172# CHECK-NEXT:                    "start": {173# CHECK-NEXT:                      "character": 34,174# CHECK-NEXT:                      "line": 0175# CHECK-NEXT:                    }176# CHECK-NEXT:                  }177# CHECK-NEXT:                }178# CHECK-NEXT:              ],179# CHECK-NEXT:              "textDocument": {180# CHECK-NEXT:                "uri": "file://{{.*}}/foo.c",181# CHECK-NEXT:                "version": 0182# CHECK-NEXT:              }183# CHECK-NEXT:            }184# CHECK-NEXT:          ]185# CHECK-NEXT:        }186# CHECK-NEXT:      ],187# CHECK-NEXT:      "command": "clangd.applyFix",188# CHECK-NEXT:      "title": "Apply fix: use '==' to turn this assignment into an equality comparison"189# CHECK-NEXT:    }190# CHECK-NEXT:  ]191---192{"jsonrpc":"2.0","id":4,"method":"shutdown"}193---194{"jsonrpc":"2.0","method":"exit"}195