submodules.cpp revision c13a34b690d2dc2a03c2fea75a0a1438636c19ce
1b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek// RUN: rm -rf %t 277349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek// RUN: %clang_cc1 -x objective-c++ -fmodule-cache-path %t -fmodules -I %S/Inputs/submodules %s -verify 377349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek// FIXME: When we have a syntax for modules in C++, use that. 477349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 577349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek@import std.vector; 677349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 777349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekvector<int> vi; 877349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 977349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek// Note: remove_reference is not visible yet. 10b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenekremove_reference<int&>::type *int_ptr = 0; // expected-error{{unknown type name 'remove_reference'}} \ 1141573ebf8fb971f40fa8a3e20648362c359b4916Ted Kremenek// expected-error{{expected unqualified-id}} 12b387a3f23e423d62c053be86294b703da1d1a222Ted Kremenek 1377349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek@import std.typetraits; // expected-error{{no submodule named 'typetraits' in module 'std'; did you mean 'type_traits'?}} 1477349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 1577349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekvector<float> vf; 16d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenekremove_reference<int&>::type *int_ptr2 = 0; 17d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenek 18d065d6080f0620bb80b933f3f5d52d37bb2ea770Ted Kremenek@import std.vector.compare; // expected-error{{no submodule named 'compare' in module 'std.vector'}} 1977349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek 204adc81e540b874bafa15715fd2c5cb662463debdTed Kremenek@import std; // import everything in 'std' 2199c6ad3f22b865d0f4cce52bc36904403c9ed4c4Ted Kremenek 2277349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek// hash_map still isn't available. 23cf118d41f7930a18dce97416ef7834a62642f587Ted Kremenekhash_map<int, float> ints_to_floats; // expected-error{{unknown type name 'hash_map'}} \ 24c0c3f5dbc9e78aa53a86c7d5e3eeda23ddad93d6Ted Kremenek// expected-error{{expected unqualified-id}} 25f494b579b22f9950f5af021f0bf9879a91bb8b41Steve Naroff 2677349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenek@import std.hash_map; 2750a6d0ce344c02782e0207574005c3b2aaa5077cTed Kremenek 2877349cb20bfd7069d081f84c91975bfa8ef60a32Ted Kremenekhash_map<int, float> ints_to_floats2; 2950a6d0ce344c02782e0207574005c3b2aaa5077cTed Kremenek 3050a6d0ce344c02782e0207574005c3b2aaa5077cTed Kremenek