1// RUN: rm -rf %t 2// RUN: %clang_cc1 -fmodules -x objective-c++ -Eonly -fmodule-cache-path %t -I %S/Inputs/submodules %s -verify 3// FIXME: When we have a syntax for modules in C++, use that. 4 5@__experimental_modules_import std.vector; 6 7#ifndef HAVE_VECTOR 8# error HAVE_VECTOR macro is not available (but should be) 9#endif 10 11#ifdef HAVE_TYPE_TRAITS 12# error HAVE_TYPE_TRAITS_MAP macro is available (but shouldn't be) 13#endif 14 15#ifdef HAVE_HASH_MAP 16# error HAVE_HASH_MAP macro is available (but shouldn't be) 17#endif 18 19@__experimental_modules_import std.typetraits; // expected-error{{no submodule named 'typetraits' in module 'std'; did you mean 'type_traits'?}} 20 21#ifndef HAVE_VECTOR 22# error HAVE_VECTOR macro is not available (but should be) 23#endif 24 25#ifndef HAVE_TYPE_TRAITS 26# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) 27#endif 28 29#ifdef HAVE_HASH_MAP 30# error HAVE_HASH_MAP macro is available (but shouldn't be) 31#endif 32 33@__experimental_modules_import std.vector.compare; // expected-error{{no submodule named 'compare' in module 'std.vector'}} 34 35@__experimental_modules_import std; // import everything in 'std' 36 37#ifndef HAVE_VECTOR 38# error HAVE_VECTOR macro is not available (but should be) 39#endif 40 41#ifndef HAVE_TYPE_TRAITS 42# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) 43#endif 44 45#ifdef HAVE_HASH_MAP 46# error HAVE_HASH_MAP macro is available (but shouldn't be) 47#endif 48 49@__experimental_modules_import std.hash_map; 50 51#ifndef HAVE_VECTOR 52# error HAVE_VECTOR macro is not available (but should be) 53#endif 54 55#ifndef HAVE_TYPE_TRAITS 56# error HAVE_TYPE_TRAITS_MAP macro is not available (but should be) 57#endif 58 59#ifndef HAVE_HASH_MAP 60# error HAVE_HASH_MAP macro is not available (but should be) 61#endif 62