1// bindgen-flags: --enable-cxx-namespaces --module-raw-line root::whatever 'pub type whatever_other_thing_t = whatever_int_t;' 2 3void top_level(); 4 5namespace whatever { 6 typedef int whatever_int_t; 7 8 void in_whatever(); 9} 10 11namespace { 12 namespace empty {} 13 14 struct A { 15 whatever::whatever_int_t b; 16 }; 17} 18 19template<typename T> 20class C: public A { 21 T m_c; 22 T* m_c_ptr; 23 T m_c_arr[10]; 24}; 25 26template<> 27class C<int>; 28 29namespace w { 30 typedef unsigned int whatever_int_t; 31 32 template<typename T> 33 class D { 34 C<T> m_c; 35 }; 36 37 whatever_int_t heh(); // this should return w::whatever_int_t, and not whatever::whatever_int_t 38 39 C<int> foo(); 40 41 C<float> barr(); // <- This is the problematic one 42} 43 44#define NAMESPACE foobar 45namespace NAMESPACE { 46 void foo(); 47} 48 49#include "namespace/nsbegin.h" 50void bar(); 51#include "namespace/nsend.h" 52