changeset 1256:27780213cb6d

[Issue 664] New: is(func T == return) ignores variadic arguments Thomas K?hne <thomas-dloop@kuehne.cn> 2006-12-09 news:bug-664-3@http.d.puremagic.com/issues/
author thomask
date Sun, 10 Dec 2006 16:49:47 +0000
parents cfe776588fc0
children 0208c958eeac
files compile/i/is_16_A.d compile/i/is_16_B.d compile/i/is_16_C.d
diffstat 3 files changed, 69 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/i/is_16_A.d	Sun Dec 10 16:49:47 2006 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@ Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2006-12-09
+// @uri@	news:bug-664-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 664] New: is(func T == return) ignores variadic arguments
+
+module dstress.compile.i.is_16_A;
+
+void foo(int);
+void bar(int, ...);
+
+static if(is(typeof(foo) X == function)){
+	static if(is(typeof(bar) Y == function)){
+		static assert(X.length != Y.length);
+	}else{
+		static assert(0);
+	}
+}else{
+	static assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/i/is_16_B.d	Sun Dec 10 16:49:47 2006 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@ Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2006-12-09
+// @uri@	news:bug-664-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 664] New: is(func T == return) ignores variadic arguments
+
+module dstress.compile.i.is_16_B;
+
+void foo(int);
+void bar(int ...);
+
+static if(is(typeof(foo) X == function)){
+	static if(is(typeof(bar) Y == function)){
+		static assert((X.length != Y.length) || (!is(X[0] == Y[0])));
+	}else{
+		static assert(0);
+	}
+}else{
+	static assert(0);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/compile/i/is_16_C.d	Sun Dec 10 16:49:47 2006 +0000
@@ -0,0 +1,23 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+// @author@ Thomas Kühne <thomas-dloop@kuehne.cn>
+// @date@	2006-12-09
+// @uri@	news:bug-664-3@http.d.puremagic.com/issues/
+// @desc@	[Issue 664] New: is(func T == return) ignores variadic arguments
+
+module dstress.compile.i.is_16_C;
+
+void foo(int, ...);
+void bar(int ...);
+
+static if(is(typeof(foo) X == function)){
+	static if(is(typeof(bar) Y == function)){
+		static assert((X.length != Y.length) || (!is(X[$-1] == Y[$-1])));
+	}else{
+		static assert(0);
+	}
+}else{
+	static assert(0);
+}