Skip to content

Commit 0453a64

Browse files
committed
Add some tests explicitly about template parameter usage
1 parent 6eb860d commit 0453a64

16 files changed

+157
-0
lines changed
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class UsesTemplateParameter {
5+
T t;
6+
};
+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class DoesNotUseTemplateParameter {
5+
int x;
6+
};
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T, typename U, typename NeverUsed>
4+
class DoublyIndirectUsage {
5+
using Aliased = T;
6+
typedef U Typedefed;
7+
8+
class IndirectUsage {
9+
Aliased member;
10+
Typedefed another;
11+
};
12+
13+
IndirectUsage doubly_indirect;
14+
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class DoesNotUseT {
5+
static T but_static_member_does;
6+
};
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class BaseUsesT {
5+
T* t;
6+
};
7+
8+
template <typename U>
9+
class CrtpUsesU : public BaseUsesT<CrtpUsesU<U>> {
10+
U usage;
11+
};
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class BaseIgnoresT {
5+
int x;
6+
};
7+
8+
template <typename U>
9+
class CrtpUsesU : public BaseIgnoresT<CrtpUsesU<U>> {
10+
U usage;
11+
};
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class BaseIgnoresT {
5+
int x;
6+
};
7+
8+
template <typename U>
9+
class CrtpIgnoresU : public BaseIgnoresT<CrtpIgnoresU<U>> {
10+
int y;
11+
};
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class BaseUsesT {
5+
T* usage;
6+
};
7+
8+
template <typename U>
9+
class CrtpIgnoresU : public BaseUsesT<CrtpIgnoresU<U>> {
10+
int y;
11+
};
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class UsesTemplateParameter {
5+
T t;
6+
7+
class AlsoUsesTemplateParameter {
8+
T also;
9+
};
10+
};
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class UsesTemplateParameter {
5+
T t;
6+
7+
template <typename U>
8+
class AlsoUsesTemplateParameterAndMore {
9+
T also;
10+
U more;
11+
};
12+
};
+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class UsesTemplateParameter {
5+
T t;
6+
7+
template <typename U>
8+
class DoesNotUseTemplateParameters {
9+
int x;
10+
};
11+
};
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class IndirectlyUsesTemplateParameter {
5+
using Aliased = T;
6+
7+
Aliased aliased;
8+
};
+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T>
4+
class DoesNotUseTemplateParameter {
5+
using ButAliasDoesUseIt = T;
6+
7+
int x;
8+
};
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T, typename U, typename V>
4+
class DoesNotUseU {
5+
T t;
6+
V v;
7+
};
8+
9+
// The bool should go away becuase U is not used.
10+
using Alias = DoesNotUseU<int, bool, char>;
+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T, typename U>
4+
class IndirectUsage {
5+
typedef T Typedefed;
6+
using Aliased = U;
7+
8+
Typedefed member1;
9+
Aliased member2;
10+
};
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// bindgen-flags: -- -std=c++14
2+
3+
template <typename T, typename U>
4+
class DoesNotUse {
5+
using Aliased = T;
6+
typedef U Typedefed;
7+
8+
class IndirectUsage {
9+
Aliased member;
10+
Typedefed another;
11+
};
12+
};

0 commit comments

Comments
 (0)