changeset 486:73ac7d1627e0

new(...) Walter <walter@digitalmars.com> 2005-04-24 mail:008801c548aa$8e2f4570$0200a8c0@colossus
author thomask
date Tue, 26 Apr 2005 12:24:05 +0000
parents 1197cba57329
children 15d9857b07bd
files nocompile/new_04.d run/bug_e2ir_141_D.d run/new_04.d
diffstat 3 files changed, 35 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/nocompile/new_04.d	Tue Apr 26 12:09:29 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-// $HeadURL$
-// $Date$
-// $Author$
-
-// __DSTRESS_ELINE__ 10
-
-module dstress.nocompile.new_04;
-
-class MyClass{
-	new(size_t size, byte blah){
-		void* v;
-		return v;
-	}
-}
--- a/run/bug_e2ir_141_D.d	Tue Apr 26 12:09:29 2005 +0000
+++ b/run/bug_e2ir_141_D.d	Tue Apr 26 12:24:05 2005 +0000
@@ -15,6 +15,8 @@
 }
 
 class MyClass{
+	static MyUnion dummy;
+
 	static MyUnion prop(){
 		return dummy;
 	}
@@ -24,8 +26,6 @@
 	}
 }
 
-MyUnion dummy;
-
 int main(){
 	MyClass c = new MyClass();
 	c.prop = true ? MyClass.prop : MyClass.prop;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/run/new_04.d	Tue Apr 26 12:24:05 2005 +0000
@@ -0,0 +1,33 @@
+// $HeadURL$
+// $Date$
+// $Author$
+
+module dstress.run.new_04;
+
+extern(C) void* malloc(size_t);
+
+byte a;
+
+class MyClass{
+	byte b;
+
+	this(byte c){
+		b=c;
+	}
+
+	new(size_t size, byte blah){
+		void* v=malloc(size);
+		if(v===null){
+			throw new Exception(null);
+		}
+		a=blah;
+		return v;
+	}
+}
+
+int main(){
+	MyClass m = new(21) MyClass(12);
+	assert(m.b==12);
+	assert(a==21);
+	return 0;
+}