brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.3 KiB · e465da9 Raw
208 lines · cpp
1// RUN: rm -rf %t2// RUN: split-file %s %t3// RUN: sed -e "s@INPUT_DIR@%{/t:regex_replacement}@g" \4// RUN: %t/reference.output.json.in >> %t/reference.output.json5// RUN: %clang_cc1 -extract-api --pretty-sgf -triple arm64-apple-macosx \6// RUN:   -x c++-header %t/input.h -o %t/output.json -verify7 8// Generator version is not consistent across test runs, normalize it.9// RUN: sed -e "s@\"generator\": \".*\"@\"generator\": \"?\"@g" \10// RUN: %t/output.json >> %t/output-normalized.json11// RUN: diff %t/reference.output.json %t/output-normalized.json12 13//--- input.h14template<typename T> T Foo = T(3.14);15 16template<> int Foo<int>;17/// expected-no-diagnostics18 19//--- reference.output.json.in20{21  "metadata": {22    "formatVersion": {23      "major": 0,24      "minor": 5,25      "patch": 326    },27    "generator": "?"28  },29  "module": {30    "name": "",31    "platform": {32      "architecture": "arm64",33      "operatingSystem": {34        "minimumVersion": {35          "major": 11,36          "minor": 0,37          "patch": 038        },39        "name": "macosx"40      },41      "vendor": "apple"42    }43  },44  "relationships": [],45  "symbols": [46    {47      "accessLevel": "public",48      "declarationFragments": [49        {50          "kind": "keyword",51          "spelling": "template"52        },53        {54          "kind": "text",55          "spelling": " <"56        },57        {58          "kind": "keyword",59          "spelling": "typename"60        },61        {62          "kind": "text",63          "spelling": " "64        },65        {66          "kind": "genericParameter",67          "spelling": "T"68        },69        {70          "kind": "text",71          "spelling": "> "72        },73        {74          "kind": "typeIdentifier",75          "preciseIdentifier": "c:t0.0",76          "spelling": "T"77        },78        {79          "kind": "text",80          "spelling": " "81        },82        {83          "kind": "identifier",84          "spelling": "Foo"85        },86        {87          "kind": "text",88          "spelling": ";"89        }90      ],91      "identifier": {92        "interfaceLanguage": "c++",93        "precise": "c:@Foo"94      },95      "kind": {96        "displayName": "Global Variable Template",97        "identifier": "c++.var"98      },99      "location": {100        "position": {101          "character": 23,102          "line": 0103        },104        "uri": "file://INPUT_DIR/input.h"105      },106      "names": {107        "navigator": [108          {109            "kind": "identifier",110            "spelling": "Foo"111          }112        ],113        "subHeading": [114          {115            "kind": "identifier",116            "spelling": "Foo"117          }118        ],119        "title": "Foo"120      },121      "pathComponents": [122        "Foo"123      ],124      "swiftGenerics": {125        "parameters": [126          {127            "depth": 0,128            "index": 0,129            "name": "T"130          }131        ]132      }133    },134    {135      "accessLevel": "public",136      "declarationFragments": [137        {138          "kind": "keyword",139          "spelling": "template"140        },141        {142          "kind": "text",143          "spelling": " <> "144        },145        {146          "kind": "typeIdentifier",147          "preciseIdentifier": "c:I",148          "spelling": "int"149        },150        {151          "kind": "text",152          "spelling": " "153        },154        {155          "kind": "identifier",156          "spelling": "Foo"157        },158        {159          "kind": "text",160          "spelling": "<"161        },162        {163          "kind": "typeIdentifier",164          "preciseIdentifier": "c:I",165          "spelling": "int"166        },167        {168          "kind": "text",169          "spelling": ">;"170        }171      ],172      "identifier": {173        "interfaceLanguage": "c++",174        "precise": "c:@Foo>#I"175      },176      "kind": {177        "displayName": "Global Variable Template Specialization",178        "identifier": "c++.var"179      },180      "location": {181        "position": {182          "character": 15,183          "line": 2184        },185        "uri": "file://INPUT_DIR/input.h"186      },187      "names": {188        "navigator": [189          {190            "kind": "identifier",191            "spelling": "Foo"192          }193        ],194        "subHeading": [195          {196            "kind": "identifier",197            "spelling": "Foo"198          }199        ],200        "title": "Foo"201      },202      "pathComponents": [203        "Foo"204      ]205    }206  ]207}208