diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2018-06-15 20:13:28 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2018-06-15 20:13:28 +0000 |
| commit | 5f11e128b0aabb3188e3c09e089c284b9e401f87 (patch) | |
| tree | 30eeefcfe265dae82f083074a4b49664732be34d /clang/test/Modules | |
| parent | 0ea9a90b3d6b2920e96dd8bbc971c236fe048139 (diff) | |
| download | bcm5719-llvm-5f11e128b0aabb3188e3c09e089c284b9e401f87.tar.gz bcm5719-llvm-5f11e128b0aabb3188e3c09e089c284b9e401f87.zip | |
[Modules] Improve .Private fix-its to handle 'explicit' and 'framework'
When in the context of suggestion the fix-it from .Private to _Private
for private modules, trim off the 'explicit' and add 'framework' when
appropriate.
rdar://problem/41030554
llvm-svn: 334859
Diffstat (limited to 'clang/test/Modules')
3 files changed, 22 insertions, 1 deletions
diff --git a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap index 95eabf90a96..73d5ab7a4bb 100644 --- a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap +++ b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.modulemap @@ -2,3 +2,9 @@ framework module A { header "a.h" export * } + +framework module B { +} + +framework module C { +} diff --git a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap index 40182969f4c..9acb4899702 100644 --- a/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap +++ b/clang/test/Modules/Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap @@ -2,3 +2,9 @@ framework module A.Private { header "aprivate.h" export * } + +explicit module B.Private { +} + +explicit framework module C.Private { +} diff --git a/clang/test/Modules/implicit-private-with-submodule.m b/clang/test/Modules/implicit-private-with-submodule.m index a1c5b92d860..d5f23456bf8 100644 --- a/clang/test/Modules/implicit-private-with-submodule.m +++ b/clang/test/Modules/implicit-private-with-submodule.m @@ -13,7 +13,16 @@ // expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:1{{private submodule 'A.Private' in private module map, expected top-level module}} // expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:1{{rename 'A.Private' to ensure it can be found by name}} -// CHECK: fix-it:"{{.*}}module.private.modulemap":{1:18-1:27}:"A_Private" + +// expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:6{{private submodule 'B.Private' in private module map, expected top-level module}} +// expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:6{{rename 'B.Private' to ensure it can be found by name}} + +// expected-warning@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:9{{private submodule 'C.Private' in private module map, expected top-level module}} +// expected-note@Inputs/implicit-private-with-submodule/A.framework/Modules/module.private.modulemap:9{{rename 'C.Private' to ensure it can be found by name}} + +// CHECK: fix-it:"{{.*}}module.private.modulemap":{1:1-1:27}:"framework module A_Private" +// CHECK: fix-it:"{{.*}}module.private.modulemap":{6:1-6:26}:"framework module B_Private" +// CHECK: fix-it:"{{.*}}module.private.modulemap":{9:1-9:36}:"framework module C_Private" #ifndef HEADER #define HEADER |

