1// bindgen-flags: --opaque-type 'OpaqueTemplate' --with-derive-hash --with-derive-partialeq --impl-partialeq --with-derive-eq --rust-target 1.40
2
3template<typename T>
4class OpaqueTemplate {
5    T mData;
6    bool mCannotDebug[400];
7};
8
9/// This should not end up deriving Debug/Hash because its `mBlah` field cannot derive
10/// Debug/Hash because the instantiation's definition cannot derive Debug/Hash.
11class ContainsOpaqueTemplate {
12    OpaqueTemplate<int> mBlah;
13    int mBaz;
14};
15
16/// This should not end up deriving Debug/Hash either, for similar reasons, although
17/// we're exercising base member edges now.
18class InheritsOpaqueTemplate : public OpaqueTemplate<bool> {
19    char* wow;
20};
21