diff options
author | Alex Lorenz <arphaman@gmail.com> | 2017-11-01 01:12:56 +0000 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2017-11-01 01:12:56 +0000 |
commit | 61f2c3f58c56b235dd0f04a72a7c05adeeb837d2 (patch) | |
tree | faca5d8788acc989075b65c31b61ee1e684bfdbe /clang/test/Refactor/Extract/FromMethodToFunction.cpp | |
parent | df00e89cdc39f0275f5b62396dea8f42ed233a13 (diff) | |
download | bcm5719-llvm-61f2c3f58c56b235dd0f04a72a7c05adeeb837d2.tar.gz bcm5719-llvm-61f2c3f58c56b235dd0f04a72a7c05adeeb837d2.zip |
[refactor][extract] code extracted from inline method should be placed
in a function defined before the outer class
llvm-svn: 317062
Diffstat (limited to 'clang/test/Refactor/Extract/FromMethodToFunction.cpp')
-rw-r--r-- | clang/test/Refactor/Extract/FromMethodToFunction.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/clang/test/Refactor/Extract/FromMethodToFunction.cpp b/clang/test/Refactor/Extract/FromMethodToFunction.cpp new file mode 100644 index 00000000000..86bec16edfd --- /dev/null +++ b/clang/test/Refactor/Extract/FromMethodToFunction.cpp @@ -0,0 +1,42 @@ +// RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-INNER %s +// RUN: clang-refactor extract -selection=test:%s %s -- -std=c++11 -DMULTIPLE 2>&1 | grep -v CHECK | FileCheck --check-prefixes=CHECK,CHECK-OUTER %s + +#ifdef MULTIPLE +class OuterClass { +#define PREFIX OuterClass :: +#else +#define PREFIX +#endif + +class AClass { + + int method(int x) { + return /*range inner=->+0:38*/1 + 2 * 2; + } +// CHECK-INNER: 1 'inner' results: +// CHECK-INNER: static int extracted() { +// CHECK-INNER-NEXT: return 1 + 2 * 2;{{$}} +// CHECK-INNER-NEXT: }{{[[:space:]].*}} +// CHECK-INNER-NEXT: class AClass { + +// CHECK-OUTER: 1 'inner' results: +// CHECK-OUTER: static int extracted() { +// CHECK-OUTER-NEXT: return 1 + 2 * 2;{{$}} +// CHECK-OUTER-NEXT: }{{[[:space:]].*}} +// CHECK-OUTER-NEXT: class OuterClass { + + int otherMethod(int x); +}; + +#ifdef MULTIPLE +}; +#endif + +int PREFIX AClass::otherMethod(int x) { + return /*range outofline=->+0:46*/2 * 2 - 1; +} +// CHECK: 1 'outofline' results: +// CHECK: static int extracted() { +// CHECK-NEXT: return 2 * 2 - 1;{{$}} +// CHECK-NEXT: }{{[[:space:]].*}} +// CHECK-NEXT: int PREFIX AClass::otherMethod |