r363965 - Print additional information on dependent scopes when dumping the AST to JSON.

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 20 11:55:53 PDT 2019


Author: aaronballman
Date: Thu Jun 20 11:55:53 2019
New Revision: 363965

URL: http://llvm.org/viewvc/llvm-project?rev=363965&view=rev
Log:
Print additional information on dependent scopes when dumping the AST to JSON.

Modified:
    cfe/trunk/include/clang/AST/JSONNodeDumper.h
    cfe/trunk/lib/AST/JSONNodeDumper.cpp
    cfe/trunk/test/AST/ast-dump-stmt-json.cpp

Modified: cfe/trunk/include/clang/AST/JSONNodeDumper.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/JSONNodeDumper.h?rev=363965&r1=363964&r2=363965&view=diff
==============================================================================
--- cfe/trunk/include/clang/AST/JSONNodeDumper.h (original)
+++ cfe/trunk/include/clang/AST/JSONNodeDumper.h Thu Jun 20 11:55:53 2019
@@ -258,6 +258,7 @@ public:
   void VisitExprWithCleanups(const ExprWithCleanups *EWC);
   void VisitCXXBindTemporaryExpr(const CXXBindTemporaryExpr *BTE);
   void VisitMaterializeTemporaryExpr(const MaterializeTemporaryExpr *MTE);
+  void VisitCXXDependentScopeMemberExpr(const CXXDependentScopeMemberExpr *ME);
 
   void VisitIntegerLiteral(const IntegerLiteral *IL);
   void VisitCharacterLiteral(const CharacterLiteral *CL);

Modified: cfe/trunk/lib/AST/JSONNodeDumper.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/AST/JSONNodeDumper.cpp?rev=363965&r1=363964&r2=363965&view=diff
==============================================================================
--- cfe/trunk/lib/AST/JSONNodeDumper.cpp (original)
+++ cfe/trunk/lib/AST/JSONNodeDumper.cpp Thu Jun 20 11:55:53 2019
@@ -1071,6 +1071,23 @@ void JSONNodeDumper::VisitMaterializeTem
   attributeOnlyIfTrue("boundToLValueRef", MTE->isBoundToLvalueReference());
 }
 
+void JSONNodeDumper::VisitCXXDependentScopeMemberExpr(
+    const CXXDependentScopeMemberExpr *DSME) {
+  JOS.attribute("isArrow", DSME->isArrow());
+  JOS.attribute("member", DSME->getMember().getAsString());
+  attributeOnlyIfTrue("hasTemplateKeyword", DSME->hasTemplateKeyword());
+  attributeOnlyIfTrue("hasExplicitTemplateArgs",
+                      DSME->hasExplicitTemplateArgs());
+
+  if (DSME->getNumTemplateArgs()) {
+    JOS.attributeArray("explicitTemplateArgs", [DSME, this] {
+      for (const TemplateArgumentLoc &TAL : DSME->template_arguments())
+        JOS.object(
+            [&TAL, this] { Visit(TAL.getArgument(), TAL.getSourceRange()); });
+    });
+  }
+}
+
 void JSONNodeDumper::VisitIntegerLiteral(const IntegerLiteral *IL) {
   JOS.attribute("value",
                 IL->getValue().toString(

Modified: cfe/trunk/test/AST/ast-dump-stmt-json.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/AST/ast-dump-stmt-json.cpp?rev=363965&r1=363964&r2=363965&view=diff
==============================================================================
--- cfe/trunk/test/AST/ast-dump-stmt-json.cpp (original)
+++ cfe/trunk/test/AST/ast-dump-stmt-json.cpp Thu Jun 20 11:55:53 2019
@@ -55,6 +55,18 @@ void TestDependentScopeMemberExpr() {
   (&obj)->member = T();
 }
 
+template <typename T>
+class OtherDependentScopeMemberExprWrapper {
+  template <typename U>
+  static U member;
+};
+
+template <typename T>
+void TestDependentScopeTemplateMemberExpr() {
+  OtherDependentScopeMemberExprWrapper<T> obj;
+  obj.template member<int> = int();
+}
+
 union U {
   int i;
   long l;
@@ -2102,6 +2114,8 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "qualType": "<dependent type>"
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "isArrow": false,
+// CHECK-NEXT:          "member": "member",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2195,6 +2209,8 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "qualType": "<dependent type>"
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "isArrow": false,
+// CHECK-NEXT:          "member": "member",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2311,6 +2327,8 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "qualType": "<dependent type>"
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "isArrow": true,
+// CHECK-NEXT:          "member": "member",
 // CHECK-NEXT:          "inner": [
 // CHECK-NEXT:           {
 // CHECK-NEXT:            "id": "0x{{.*}}",
@@ -2419,22 +2437,278 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT: }
 
 
+// CHECK:  "kind": "FunctionTemplateDecl",
+// CHECK-NEXT:  "loc": {
+// CHECK-NEXT:   "col": 6,
+// CHECK-NEXT:   "file": "{{.*}}",
+// CHECK-NEXT:   "line": 65
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "range": {
+// CHECK-NEXT:   "begin": {
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
+// CHECK-NEXT:    "line": 64
+// CHECK-NEXT:   },
+// CHECK-NEXT:   "end": {
+// CHECK-NEXT:    "col": 1,
+// CHECK-NEXT:    "file": "{{.*}}",
+// CHECK-NEXT:    "line": 68
+// CHECK-NEXT:   }
+// CHECK-NEXT:  },
+// CHECK-NEXT:  "name": "TestDependentScopeTemplateMemberExpr",
+// CHECK-NEXT:  "inner": [
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "TemplateTypeParmDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "col": 20,
+// CHECK-NEXT:     "file": "{{.*}}",
+// CHECK-NEXT:     "line": 64
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "col": 11,
+// CHECK-NEXT:      "file": "{{.*}}",
+// CHECK-NEXT:      "line": 64
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "col": 20,
+// CHECK-NEXT:      "file": "{{.*}}",
+// CHECK-NEXT:      "line": 64
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "isReferenced": true,
+// CHECK-NEXT:    "name": "T",
+// CHECK-NEXT:    "tagUsed": "typename",
+// CHECK-NEXT:    "depth": 0,
+// CHECK-NEXT:    "index": 0
+// CHECK-NEXT:   },
+// CHECK-NEXT:   {
+// CHECK-NEXT:    "id": "0x{{.*}}",
+// CHECK-NEXT:    "kind": "FunctionDecl",
+// CHECK-NEXT:    "loc": {
+// CHECK-NEXT:     "col": 6,
+// CHECK-NEXT:     "file": "{{.*}}",
+// CHECK-NEXT:     "line": 65
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "range": {
+// CHECK-NEXT:     "begin": {
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
+// CHECK-NEXT:      "line": 65
+// CHECK-NEXT:     },
+// CHECK-NEXT:     "end": {
+// CHECK-NEXT:      "col": 1,
+// CHECK-NEXT:      "file": "{{.*}}",
+// CHECK-NEXT:      "line": 68
+// CHECK-NEXT:     }
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "name": "TestDependentScopeTemplateMemberExpr",
+// CHECK-NEXT:    "type": {
+// CHECK-NEXT:     "qualType": "void ()"
+// CHECK-NEXT:    },
+// CHECK-NEXT:    "inner": [
+// CHECK-NEXT:     {
+// CHECK-NEXT:      "id": "0x{{.*}}",
+// CHECK-NEXT:      "kind": "CompoundStmt",
+// CHECK-NEXT:      "range": {
+// CHECK-NEXT:       "begin": {
+// CHECK-NEXT:        "col": 45,
+// CHECK-NEXT:        "file": "{{.*}}",
+// CHECK-NEXT:        "line": 65
+// CHECK-NEXT:       },
+// CHECK-NEXT:       "end": {
+// CHECK-NEXT:        "col": 1,
+// CHECK-NEXT:        "file": "{{.*}}",
+// CHECK-NEXT:        "line": 68
+// CHECK-NEXT:       }
+// CHECK-NEXT:      },
+// CHECK-NEXT:      "inner": [
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "DeclStmt",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "file": "{{.*}}",
+// CHECK-NEXT:          "line": 66
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "col": 46,
+// CHECK-NEXT:          "file": "{{.*}}",
+// CHECK-NEXT:          "line": 66
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "VarDecl",
+// CHECK-NEXT:          "loc": {
+// CHECK-NEXT:           "col": 43,
+// CHECK-NEXT:           "file": "{{.*}}",
+// CHECK-NEXT:           "line": 66
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 66
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "col": 43,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 66
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "isReferenced": true,
+// CHECK-NEXT:          "name": "obj",
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "OtherDependentScopeMemberExprWrapper<T>"
+// CHECK-NEXT:          }
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       },
+// CHECK-NEXT:       {
+// CHECK-NEXT:        "id": "0x{{.*}}",
+// CHECK-NEXT:        "kind": "BinaryOperator",
+// CHECK-NEXT:        "range": {
+// CHECK-NEXT:         "begin": {
+// CHECK-NEXT:          "col": 3,
+// CHECK-NEXT:          "file": "{{.*}}",
+// CHECK-NEXT:          "line": 67
+// CHECK-NEXT:         },
+// CHECK-NEXT:         "end": {
+// CHECK-NEXT:          "col": 34,
+// CHECK-NEXT:          "file": "{{.*}}",
+// CHECK-NEXT:          "line": 67
+// CHECK-NEXT:         }
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "type": {
+// CHECK-NEXT:         "qualType": "<dependent type>"
+// CHECK-NEXT:        },
+// CHECK-NEXT:        "valueCategory": "rvalue",
+// CHECK-NEXT:        "opcode": "=",
+// CHECK-NEXT:        "inner": [
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "CXXDependentScopeMemberExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "col": 3,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 67
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "col": 26,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 67
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "<dependent type>"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "lvalue",
+// CHECK-NEXT:          "isArrow": false,
+// CHECK-NEXT:          "member": "member",
+// CHECK-NEXT:          "hasTemplateKeyword": true,
+// CHECK-NEXT:          "hasExplicitTemplateArgs": true,
+// CHECK-NEXT:          "explicitTemplateArgs": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "kind": "TemplateArgument",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "col": 23,
+// CHECK-NEXT:              "file": "{{.*}}",
+// CHECK-NEXT:              "line": 67
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "col": 23,
+// CHECK-NEXT:              "file": "{{.*}}",
+// CHECK-NEXT:              "line": 67
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "int"
+// CHECK-NEXT:            }
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ],
+// CHECK-NEXT:          "inner": [
+// CHECK-NEXT:           {
+// CHECK-NEXT:            "id": "0x{{.*}}",
+// CHECK-NEXT:            "kind": "DeclRefExpr",
+// CHECK-NEXT:            "range": {
+// CHECK-NEXT:             "begin": {
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "file": "{{.*}}",
+// CHECK-NEXT:              "line": 67
+// CHECK-NEXT:             },
+// CHECK-NEXT:             "end": {
+// CHECK-NEXT:              "col": 3,
+// CHECK-NEXT:              "file": "{{.*}}",
+// CHECK-NEXT:              "line": 67
+// CHECK-NEXT:             }
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "type": {
+// CHECK-NEXT:             "qualType": "OtherDependentScopeMemberExprWrapper<T>"
+// CHECK-NEXT:            },
+// CHECK-NEXT:            "valueCategory": "lvalue",
+// CHECK-NEXT:            "referencedDecl": {
+// CHECK-NEXT:             "id": "0x{{.*}}",
+// CHECK-NEXT:             "kind": "VarDecl",
+// CHECK-NEXT:             "name": "obj",
+// CHECK-NEXT:             "type": {
+// CHECK-NEXT:              "qualType": "OtherDependentScopeMemberExprWrapper<T>"
+// CHECK-NEXT:             }
+// CHECK-NEXT:            }
+// CHECK-NEXT:           }
+// CHECK-NEXT:          ]
+// CHECK-NEXT:         },
+// CHECK-NEXT:         {
+// CHECK-NEXT:          "id": "0x{{.*}}",
+// CHECK-NEXT:          "kind": "CXXScalarValueInitExpr",
+// CHECK-NEXT:          "range": {
+// CHECK-NEXT:           "begin": {
+// CHECK-NEXT:            "col": 30,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 67
+// CHECK-NEXT:           },
+// CHECK-NEXT:           "end": {
+// CHECK-NEXT:            "col": 34,
+// CHECK-NEXT:            "file": "{{.*}}",
+// CHECK-NEXT:            "line": 67
+// CHECK-NEXT:           }
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "type": {
+// CHECK-NEXT:           "qualType": "int"
+// CHECK-NEXT:          },
+// CHECK-NEXT:          "valueCategory": "rvalue"
+// CHECK-NEXT:         }
+// CHECK-NEXT:        ]
+// CHECK-NEXT:       }
+// CHECK-NEXT:      ]
+// CHECK-NEXT:     }
+// CHECK-NEXT:    ]
+// CHECK-NEXT:   }
+// CHECK-NEXT:  ]
+// CHECK-NEXT: }
+
+
 // CHECK:  "kind": "FunctionDecl",
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 63
+// CHECK-NEXT:   "line": 75
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 63
+// CHECK-NEXT:    "line": 75
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 66
+// CHECK-NEXT:    "line": 78
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestUnionInitList",
@@ -2449,12 +2723,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 64
+// CHECK-NEXT:      "line": 76
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 66
+// CHECK-NEXT:      "line": 78
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
@@ -2465,12 +2739,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 65
+// CHECK-NEXT:        "line": 77
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 16,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 65
+// CHECK-NEXT:        "line": 77
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -2480,18 +2754,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:        "loc": {
 // CHECK-NEXT:         "col": 5,
 // CHECK-NEXT:         "file": "{{.*}}",
-// CHECK-NEXT:         "line": 65
+// CHECK-NEXT:         "line": 77
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 65
+// CHECK-NEXT:          "line": 77
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 65
+// CHECK-NEXT:          "line": 77
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "name": "us",
@@ -2507,12 +2781,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 65
+// CHECK-NEXT:            "line": 77
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 65
+// CHECK-NEXT:            "line": 77
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -2527,12 +2801,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 65
+// CHECK-NEXT:              "line": 77
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 15,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 65
+// CHECK-NEXT:              "line": 77
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -2555,12 +2829,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 65
+// CHECK-NEXT:              "line": 77
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 65
+// CHECK-NEXT:              "line": 77
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -2583,12 +2857,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 65
+// CHECK-NEXT:                "line": 77
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 65
+// CHECK-NEXT:                "line": 77
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -2615,18 +2889,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 68
+// CHECK-NEXT:   "line": 80
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 68
+// CHECK-NEXT:    "line": 80
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 71
+// CHECK-NEXT:    "line": 83
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestSwitch",
@@ -2640,18 +2914,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:    "loc": {
 // CHECK-NEXT:     "col": 21,
 // CHECK-NEXT:     "file": "{{.*}}",
-// CHECK-NEXT:     "line": 68
+// CHECK-NEXT:     "line": 80
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 17,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 68
+// CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 68
+// CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "isUsed": true,
@@ -2667,12 +2941,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 24,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 68
+// CHECK-NEXT:      "line": 80
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 71
+// CHECK-NEXT:      "line": 83
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
@@ -2683,12 +2957,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 69
+// CHECK-NEXT:        "line": 81
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 70
+// CHECK-NEXT:        "line": 82
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "hasInit": true,
@@ -2700,12 +2974,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 11,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 69
+// CHECK-NEXT:          "line": 81
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 69
+// CHECK-NEXT:          "line": 81
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -2715,18 +2989,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 15,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 69
+// CHECK-NEXT:           "line": 81
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 11,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 69
+// CHECK-NEXT:            "line": 81
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 69
+// CHECK-NEXT:            "line": 81
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "name": "a",
@@ -2743,12 +3017,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 69
+// CHECK-NEXT:          "line": 81
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 18,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 69
+// CHECK-NEXT:          "line": 81
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -2764,12 +3038,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 69
+// CHECK-NEXT:            "line": 81
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 18,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 69
+// CHECK-NEXT:            "line": 81
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -2794,12 +3068,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 70
+// CHECK-NEXT:          "line": 82
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 70
+// CHECK-NEXT:          "line": 82
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -2815,18 +3089,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 73
+// CHECK-NEXT:   "line": 85
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 73
+// CHECK-NEXT:    "line": 85
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 84
+// CHECK-NEXT:    "line": 96
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestIf",
@@ -2840,18 +3114,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:    "loc": {
 // CHECK-NEXT:     "col": 18,
 // CHECK-NEXT:     "file": "{{.*}}",
-// CHECK-NEXT:     "line": 73
+// CHECK-NEXT:     "line": 85
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 13,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 73
+// CHECK-NEXT:      "line": 85
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 18,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 73
+// CHECK-NEXT:      "line": 85
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "isReferenced": true,
@@ -2867,12 +3141,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 21,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 73
+// CHECK-NEXT:      "line": 85
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 84
+// CHECK-NEXT:      "line": 96
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
@@ -2883,12 +3157,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 74
+// CHECK-NEXT:        "line": 86
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 75
+// CHECK-NEXT:        "line": 87
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "hasInit": true,
@@ -2900,12 +3174,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 7,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 74
+// CHECK-NEXT:          "line": 86
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 74
+// CHECK-NEXT:          "line": 86
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -2915,18 +3189,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 17,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 74
+// CHECK-NEXT:           "line": 86
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 7,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 74
+// CHECK-NEXT:            "line": 86
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 74
+// CHECK-NEXT:            "line": 86
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isReferenced": true,
@@ -2943,12 +3217,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 74
+// CHECK-NEXT:              "line": 86
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 74
+// CHECK-NEXT:              "line": 86
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -2968,12 +3242,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 74
+// CHECK-NEXT:          "line": 86
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 25,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 74
+// CHECK-NEXT:          "line": 86
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -2989,12 +3263,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 74
+// CHECK-NEXT:            "line": 86
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 25,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 74
+// CHECK-NEXT:            "line": 86
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -3010,12 +3284,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 74
+// CHECK-NEXT:              "line": 86
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 74
+// CHECK-NEXT:              "line": 86
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3043,12 +3317,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 75
+// CHECK-NEXT:          "line": 87
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 75
+// CHECK-NEXT:          "line": 87
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -3061,12 +3335,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 77
+// CHECK-NEXT:        "line": 89
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 78
+// CHECK-NEXT:        "line": 90
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "isConstexpr": true,
@@ -3078,12 +3352,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 77
+// CHECK-NEXT:          "line": 89
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 77
+// CHECK-NEXT:          "line": 89
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -3099,12 +3373,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 77
+// CHECK-NEXT:            "line": 89
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 30,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 77
+// CHECK-NEXT:            "line": 89
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -3120,12 +3394,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 77
+// CHECK-NEXT:              "line": 89
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 77
+// CHECK-NEXT:              "line": 89
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3141,12 +3415,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 77
+// CHECK-NEXT:                "line": 89
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 25,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 77
+// CHECK-NEXT:                "line": 89
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -3161,12 +3435,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 77
+// CHECK-NEXT:                  "line": 89
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 77
+// CHECK-NEXT:                  "line": 89
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -3194,12 +3468,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 77
+// CHECK-NEXT:              "line": 89
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 77
+// CHECK-NEXT:              "line": 89
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3215,12 +3489,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 77
+// CHECK-NEXT:                "line": 89
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 77
+// CHECK-NEXT:                "line": 89
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -3242,12 +3516,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 78
+// CHECK-NEXT:          "line": 90
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 78
+// CHECK-NEXT:          "line": 90
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -3260,12 +3534,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 80
+// CHECK-NEXT:        "line": 92
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 83
+// CHECK-NEXT:        "line": 95
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "hasElse": true,
@@ -3278,12 +3552,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 80
+// CHECK-NEXT:          "line": 92
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 80
+// CHECK-NEXT:          "line": 92
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -3299,12 +3573,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 17,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 80
+// CHECK-NEXT:            "line": 92
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 30,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 80
+// CHECK-NEXT:            "line": 92
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -3320,12 +3594,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 17,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 80
+// CHECK-NEXT:              "line": 92
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 80
+// CHECK-NEXT:              "line": 92
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3341,12 +3615,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 80
+// CHECK-NEXT:                "line": 92
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 25,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 80
+// CHECK-NEXT:                "line": 92
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -3361,12 +3635,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 80
+// CHECK-NEXT:                  "line": 92
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 24,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 80
+// CHECK-NEXT:                  "line": 92
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -3394,12 +3668,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 80
+// CHECK-NEXT:              "line": 92
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 30,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 80
+// CHECK-NEXT:              "line": 92
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3415,12 +3689,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 80
+// CHECK-NEXT:                "line": 92
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 30,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 80
+// CHECK-NEXT:                "line": 92
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -3442,12 +3716,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 81
+// CHECK-NEXT:          "line": 93
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 81
+// CHECK-NEXT:          "line": 93
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       },
@@ -3458,12 +3732,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 83
+// CHECK-NEXT:          "line": 95
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 83
+// CHECK-NEXT:          "line": 95
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -3479,18 +3753,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 91
+// CHECK-NEXT:   "line": 103
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 91
+// CHECK-NEXT:    "line": 103
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 105
+// CHECK-NEXT:    "line": 117
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestIteration",
@@ -3505,12 +3779,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 22,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 91
+// CHECK-NEXT:      "line": 103
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 105
+// CHECK-NEXT:      "line": 117
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "inner": [
@@ -3521,12 +3795,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 92
+// CHECK-NEXT:        "line": 104
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 93
+// CHECK-NEXT:        "line": 105
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -3537,12 +3811,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -3552,18 +3826,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 92
+// CHECK-NEXT:           "line": 104
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isUsed": true,
@@ -3580,12 +3854,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3605,12 +3879,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 19,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -3620,18 +3894,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 23,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 92
+// CHECK-NEXT:           "line": 104
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 19,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 27,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isUsed": true,
@@ -3648,12 +3922,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 27,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3669,12 +3943,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 27,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 92
+// CHECK-NEXT:                "line": 104
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 27,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 92
+// CHECK-NEXT:                "line": 104
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -3703,12 +3977,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -3724,12 +3998,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -3745,12 +4019,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 92
+// CHECK-NEXT:              "line": 104
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3777,12 +4051,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 30,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 32,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 92
+// CHECK-NEXT:          "line": 104
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -3799,12 +4073,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 32,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 32,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 92
+// CHECK-NEXT:            "line": 104
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -3829,12 +4103,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 93
+// CHECK-NEXT:          "line": 105
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 93
+// CHECK-NEXT:          "line": 105
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -3847,12 +4121,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 95
+// CHECK-NEXT:        "line": 107
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 15,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 95
+// CHECK-NEXT:        "line": 107
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -3862,18 +4136,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:        "loc": {
 // CHECK-NEXT:         "col": 7,
 // CHECK-NEXT:         "file": "{{.*}}",
-// CHECK-NEXT:         "line": 95
+// CHECK-NEXT:         "line": 107
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 95
+// CHECK-NEXT:          "line": 107
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 95
+// CHECK-NEXT:          "line": 107
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "isUsed": true,
@@ -3891,12 +4165,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 96
+// CHECK-NEXT:        "line": 108
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 97
+// CHECK-NEXT:        "line": 109
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -3908,12 +4182,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -3923,18 +4197,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 16,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 96
+// CHECK-NEXT:           "line": 108
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -3952,12 +4226,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -3984,12 +4258,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -3999,18 +4273,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 96
+// CHECK-NEXT:           "line": 108
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -4029,12 +4303,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4050,12 +4324,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4084,12 +4358,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -4099,18 +4373,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 96
+// CHECK-NEXT:           "line": 108
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -4129,12 +4403,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4150,12 +4424,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4171,12 +4445,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 96
+// CHECK-NEXT:                  "line": 108
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 96
+// CHECK-NEXT:                  "line": 108
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -4201,12 +4475,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 16,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4228,12 +4502,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -4249,12 +4523,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -4271,12 +4545,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4303,12 +4577,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -4325,12 +4599,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4359,12 +4633,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -4382,12 +4656,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -4414,12 +4688,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 20,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 96
+// CHECK-NEXT:          "line": 108
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -4429,18 +4703,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 96
+// CHECK-NEXT:           "line": 108
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 96
+// CHECK-NEXT:            "line": 108
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "name": "v",
@@ -4456,12 +4730,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 96
+// CHECK-NEXT:              "line": 108
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4477,12 +4751,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 96
+// CHECK-NEXT:                "line": 108
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4500,12 +4774,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 96
+// CHECK-NEXT:                  "line": 108
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 96
+// CHECK-NEXT:                  "line": 108
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -4522,12 +4796,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                   "begin": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 96
+// CHECK-NEXT:                    "line": 108
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 96
+// CHECK-NEXT:                    "line": 108
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
@@ -4562,12 +4836,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 97
+// CHECK-NEXT:          "line": 109
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 97
+// CHECK-NEXT:          "line": 109
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -4580,12 +4854,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 99
+// CHECK-NEXT:        "line": 111
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 14,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 99
+// CHECK-NEXT:        "line": 111
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -4595,18 +4869,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:        "loc": {
 // CHECK-NEXT:         "col": 13,
 // CHECK-NEXT:         "file": "{{.*}}",
-// CHECK-NEXT:         "line": 99
+// CHECK-NEXT:         "line": 111
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "range": {
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 99
+// CHECK-NEXT:          "line": 111
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 99
+// CHECK-NEXT:          "line": 111
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "isUsed": true,
@@ -4623,12 +4897,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 99
+// CHECK-NEXT:            "line": 111
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 13,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 99
+// CHECK-NEXT:            "line": 111
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -4652,12 +4926,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 100
+// CHECK-NEXT:        "line": 112
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 101
+// CHECK-NEXT:        "line": 113
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -4669,12 +4943,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 16,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -4684,18 +4958,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 16,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 100
+// CHECK-NEXT:           "line": 112
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 16,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -4713,12 +4987,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 16,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4745,12 +5019,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -4760,18 +5034,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 100
+// CHECK-NEXT:           "line": 112
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -4790,12 +5064,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4810,12 +5084,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4833,12 +5107,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -4854,12 +5128,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                   "begin": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
@@ -4892,12 +5166,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -4907,18 +5181,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 14,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 100
+// CHECK-NEXT:           "line": 112
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -4937,12 +5211,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -4957,12 +5231,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -4980,12 +5254,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -5001,12 +5275,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                   "begin": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
@@ -5039,12 +5313,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -5060,12 +5334,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5082,12 +5356,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5114,12 +5388,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5136,12 +5410,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5170,12 +5444,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 14,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -5193,12 +5467,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5225,12 +5499,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 17,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 100
+// CHECK-NEXT:          "line": 112
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5240,18 +5514,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 100
+// CHECK-NEXT:           "line": 112
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 14,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 100
+// CHECK-NEXT:            "line": 112
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "name": "v",
@@ -5267,12 +5541,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 14,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 100
+// CHECK-NEXT:              "line": 112
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5288,12 +5562,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 14,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 100
+// CHECK-NEXT:                "line": 112
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -5311,12 +5585,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 14,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 100
+// CHECK-NEXT:                  "line": 112
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -5333,12 +5607,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                   "begin": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
 // CHECK-NEXT:                    "col": 14,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 100
+// CHECK-NEXT:                    "line": 112
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
@@ -5373,12 +5647,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 101
+// CHECK-NEXT:          "line": 113
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 101
+// CHECK-NEXT:          "line": 113
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -5391,12 +5665,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 3,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 103
+// CHECK-NEXT:        "line": 115
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 5,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 104
+// CHECK-NEXT:        "line": 116
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -5407,12 +5681,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 8,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 13,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5422,18 +5696,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 12,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 103
+// CHECK-NEXT:           "line": 115
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 8,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "name": "a",
@@ -5450,12 +5724,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 23,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5465,18 +5739,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 23,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 103
+// CHECK-NEXT:           "line": 115
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -5494,12 +5768,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5526,12 +5800,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5541,18 +5815,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 21,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 103
+// CHECK-NEXT:           "line": 115
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -5571,12 +5845,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5592,12 +5866,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -5626,12 +5900,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5641,18 +5915,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 21,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 103
+// CHECK-NEXT:           "line": 115
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 23,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "isImplicit": true,
@@ -5671,12 +5945,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 23,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5692,12 +5966,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -5713,12 +5987,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 103
+// CHECK-NEXT:                  "line": 115
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 103
+// CHECK-NEXT:                  "line": 115
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -5743,12 +6017,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 23,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -5770,12 +6044,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -5791,12 +6065,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5813,12 +6087,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5845,12 +6119,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5867,12 +6141,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -5901,12 +6175,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 21,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -5924,12 +6198,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -5956,12 +6230,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 15,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 27,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 103
+// CHECK-NEXT:          "line": 115
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "inner": [
@@ -5971,18 +6245,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:          "loc": {
 // CHECK-NEXT:           "col": 19,
 // CHECK-NEXT:           "file": "{{.*}}",
-// CHECK-NEXT:           "line": 103
+// CHECK-NEXT:           "line": 115
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "range": {
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 15,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 21,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 103
+// CHECK-NEXT:            "line": 115
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "name": "v",
@@ -5998,12 +6272,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 103
+// CHECK-NEXT:              "line": 115
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -6019,12 +6293,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:               "begin": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               },
 // CHECK-NEXT:               "end": {
 // CHECK-NEXT:                "col": 21,
 // CHECK-NEXT:                "file": "{{.*}}",
-// CHECK-NEXT:                "line": 103
+// CHECK-NEXT:                "line": 115
 // CHECK-NEXT:               }
 // CHECK-NEXT:              },
 // CHECK-NEXT:              "type": {
@@ -6042,12 +6316,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                 "begin": {
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 103
+// CHECK-NEXT:                  "line": 115
 // CHECK-NEXT:                 },
 // CHECK-NEXT:                 "end": {
 // CHECK-NEXT:                  "col": 21,
 // CHECK-NEXT:                  "file": "{{.*}}",
-// CHECK-NEXT:                  "line": 103
+// CHECK-NEXT:                  "line": 115
 // CHECK-NEXT:                 }
 // CHECK-NEXT:                },
 // CHECK-NEXT:                "type": {
@@ -6064,12 +6338,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:                   "begin": {
 // CHECK-NEXT:                    "col": 21,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 103
+// CHECK-NEXT:                    "line": 115
 // CHECK-NEXT:                   },
 // CHECK-NEXT:                   "end": {
 // CHECK-NEXT:                    "col": 21,
 // CHECK-NEXT:                    "file": "{{.*}}",
-// CHECK-NEXT:                    "line": 103
+// CHECK-NEXT:                    "line": 115
 // CHECK-NEXT:                   }
 // CHECK-NEXT:                  },
 // CHECK-NEXT:                  "type": {
@@ -6104,12 +6378,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 104
+// CHECK-NEXT:          "line": 116
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 5,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 104
+// CHECK-NEXT:          "line": 116
 // CHECK-NEXT:         }
 // CHECK-NEXT:        }
 // CHECK-NEXT:       }
@@ -6125,18 +6399,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:  "loc": {
 // CHECK-NEXT:   "col": 6,
 // CHECK-NEXT:   "file": "{{.*}}",
-// CHECK-NEXT:   "line": 108
+// CHECK-NEXT:   "line": 120
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "range": {
 // CHECK-NEXT:   "begin": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 107
+// CHECK-NEXT:    "line": 119
 // CHECK-NEXT:   },
 // CHECK-NEXT:   "end": {
 // CHECK-NEXT:    "col": 1,
 // CHECK-NEXT:    "file": "{{.*}}",
-// CHECK-NEXT:    "line": 111
+// CHECK-NEXT:    "line": 123
 // CHECK-NEXT:   }
 // CHECK-NEXT:  },
 // CHECK-NEXT:  "name": "TestDependentGenericSelectionExpr",
@@ -6147,18 +6421,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:    "loc": {
 // CHECK-NEXT:     "col": 20,
 // CHECK-NEXT:     "file": "{{.*}}",
-// CHECK-NEXT:     "line": 107
+// CHECK-NEXT:     "line": 119
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 11,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 107
+// CHECK-NEXT:      "line": 119
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 20,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 107
+// CHECK-NEXT:      "line": 119
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "isReferenced": true,
@@ -6173,18 +6447,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:    "loc": {
 // CHECK-NEXT:     "col": 6,
 // CHECK-NEXT:     "file": "{{.*}}",
-// CHECK-NEXT:     "line": 108
+// CHECK-NEXT:     "line": 120
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "range": {
 // CHECK-NEXT:     "begin": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 108
+// CHECK-NEXT:      "line": 120
 // CHECK-NEXT:     },
 // CHECK-NEXT:     "end": {
 // CHECK-NEXT:      "col": 1,
 // CHECK-NEXT:      "file": "{{.*}}",
-// CHECK-NEXT:      "line": 111
+// CHECK-NEXT:      "line": 123
 // CHECK-NEXT:     }
 // CHECK-NEXT:    },
 // CHECK-NEXT:    "name": "TestDependentGenericSelectionExpr",
@@ -6198,18 +6472,18 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:      "loc": {
 // CHECK-NEXT:       "col": 43,
 // CHECK-NEXT:       "file": "{{.*}}",
-// CHECK-NEXT:       "line": 108
+// CHECK-NEXT:       "line": 120
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "range": {
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 40,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 108
+// CHECK-NEXT:        "line": 120
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 43,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 108
+// CHECK-NEXT:        "line": 120
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "isReferenced": true,
@@ -6225,12 +6499,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:       "begin": {
 // CHECK-NEXT:        "col": 46,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 108
+// CHECK-NEXT:        "line": 120
 // CHECK-NEXT:       },
 // CHECK-NEXT:       "end": {
 // CHECK-NEXT:        "col": 1,
 // CHECK-NEXT:        "file": "{{.*}}",
-// CHECK-NEXT:        "line": 111
+// CHECK-NEXT:        "line": 123
 // CHECK-NEXT:       }
 // CHECK-NEXT:      },
 // CHECK-NEXT:      "inner": [
@@ -6241,12 +6515,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 109
+// CHECK-NEXT:          "line": 121
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 35,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 109
+// CHECK-NEXT:          "line": 121
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -6262,12 +6536,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 109
+// CHECK-NEXT:            "line": 121
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 109
+// CHECK-NEXT:            "line": 121
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -6310,12 +6584,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 109
+// CHECK-NEXT:              "line": 121
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 21,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 109
+// CHECK-NEXT:              "line": 121
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -6336,12 +6610,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 34,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 109
+// CHECK-NEXT:              "line": 121
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 34,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 109
+// CHECK-NEXT:              "line": 121
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {
@@ -6361,12 +6635,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:         "begin": {
 // CHECK-NEXT:          "col": 3,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 110
+// CHECK-NEXT:          "line": 122
 // CHECK-NEXT:         },
 // CHECK-NEXT:         "end": {
 // CHECK-NEXT:          "col": 26,
 // CHECK-NEXT:          "file": "{{.*}}",
-// CHECK-NEXT:          "line": 110
+// CHECK-NEXT:          "line": 122
 // CHECK-NEXT:         }
 // CHECK-NEXT:        },
 // CHECK-NEXT:        "type": {
@@ -6382,12 +6656,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:           "begin": {
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 110
+// CHECK-NEXT:            "line": 122
 // CHECK-NEXT:           },
 // CHECK-NEXT:           "end": {
 // CHECK-NEXT:            "col": 12,
 // CHECK-NEXT:            "file": "{{.*}}",
-// CHECK-NEXT:            "line": 110
+// CHECK-NEXT:            "line": 122
 // CHECK-NEXT:           }
 // CHECK-NEXT:          },
 // CHECK-NEXT:          "type": {
@@ -6423,12 +6697,12 @@ void TestDependentGenericSelectionExpr(T
 // CHECK-NEXT:             "begin": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 110
+// CHECK-NEXT:              "line": 122
 // CHECK-NEXT:             },
 // CHECK-NEXT:             "end": {
 // CHECK-NEXT:              "col": 25,
 // CHECK-NEXT:              "file": "{{.*}}",
-// CHECK-NEXT:              "line": 110
+// CHECK-NEXT:              "line": 122
 // CHECK-NEXT:             }
 // CHECK-NEXT:            },
 // CHECK-NEXT:            "type": {




More information about the cfe-commits mailing list