| // RUN: clang-refactor extract -selection=test:%s %s -- -std=c++14 2>&1 | grep -v CHECK | FileCheck %s |
| |
| |
| void simpleExtractNoCaptures() { |
| int i = /*range=->+0:33*/1 + 2; |
| } |
| |
| // CHECK: 1 '' results: |
| // CHECK: static int extracted() { |
| // CHECK-NEXT: return 1 + 2;{{$}} |
| // CHECK-NEXT: }{{[[:space:]].*}} |
| // CHECK-NEXT: void simpleExtractNoCaptures() { |
| // CHECK-NEXT: int i = /*range=->+0:33*/extracted();{{$}} |
| // CHECK-NEXT: } |
| |
| void simpleExtractStmtNoCaptures() { |
| /*range astatement=->+1:13*/int a = 1; |
| int b = 2; |
| } |
| // CHECK: 1 'astatement' results: |
| // CHECK: static void extracted() { |
| // CHECK-NEXT: int a = 1; |
| // CHECK-NEXT: int b = 2;{{$}} |
| // CHECK-NEXT: }{{[[:space:]].*}} |
| // CHECK-NEXT: void simpleExtractStmtNoCaptures() { |
| // CHECK-NEXT: /*range astatement=->+1:13*/extracted();{{$}} |
| // CHECK-NEXT: } |
| |
| |
| void blankRangeNoExtraction() { |
| int i = /*range blank=*/1 + 2; |
| } |
| |
| // CHECK: 1 'blank' results: |
| // CHECK-NEXT: the provided selection does not overlap with the AST nodes of interest |
| |
| int outOfBodyCodeNoExtraction = /*range out_of_body_expr=->+0:72*/1 + 2; |
| |
| struct OutOfBodyStuff { |
| int FieldInit = /*range out_of_body_expr=->+0:58*/1 + 2; |
| |
| void foo(int x =/*range out_of_body_expr=->+0:58*/1 + 2); |
| }; |
| |
| auto inFunctionOutOfBody() -> decltype(/*range out_of_body_expr=->+0:79*/1 + 2) { |
| struct OutOfBodyStuff { |
| int FieldInit = /*range out_of_body_expr=->+0:60*/1 + 2; |
| |
| void foo(int x =/*range out_of_body_expr=->+0:60*/1 + 2); |
| }; |
| enum E { |
| X = /*range out_of_body_expr=->+0:48*/1 + 2 |
| }; |
| int x = 0; |
| using T = decltype(/*range out_of_body_expr=->+0:61*/x + 3); |
| return x; |
| } |
| |
| // CHECK: 8 'out_of_body_expr' results: |
| // CHECK: the selected code is not a part of a function's / method's body |
| |
| void simpleExpressionNoExtraction() { |
| int i = /*range simple_expr=->+0:41*/1 + /*range simple_expr=->+0:76*/(2); |
| (void) /*range simple_expr=->+0:40*/i; |
| (void)/*range simple_expr=->+0:47*/"literal"; |
| (void)/*range simple_expr=->+0:41*/'c'; |
| } |
| |
| // CHECK: 5 'simple_expr' results: |
| // CHECK-NEXT: the selected expression is too simple to extract |