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