diff dmd/TraitsExp.d @ 135:af1bebfd96a4 dmd2037

dmd 2.038
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Mon, 13 Sep 2010 22:19:42 +0100
parents e28b18c23469
children 80f4806ffa13
line wrap: on
line diff
--- a/dmd/TraitsExp.d	Sat Sep 11 13:03:39 2010 +0100
+++ b/dmd/TraitsExp.d	Mon Sep 13 22:19:42 2010 +0100
@@ -31,6 +31,7 @@
 import dmd.TemplateDeclaration;
 import dmd.TemplateInstance;
 import dmd.TypeClass;
+import dmd.Declaration;
 import dmd.Util;
 import dmd.expression.Util;
 
@@ -92,6 +93,7 @@
 			TemplateInstance.semanticTiargs(loc, sc, args, 1);
 		size_t dim = args ? args.dim : 0;
 		Object o;
+        Declaration d;
 		FuncDeclaration f;
 
 		string ISTYPE(string cond)
@@ -172,6 +174,20 @@
 		{
 			mixin(ISDSYMBOL(q{(f = s.isFuncDeclaration()) !is null && f.isFinal()}));
 		}
+//version(DMDV2) {
+        else if (ident == Id.isRef)
+        {
+	        mixin(ISDSYMBOL(q{(d = s.isDeclaration()) !is null && d.isRef()}));
+        }
+        else if (ident == Id.isOut)
+        {
+            mixin(ISDSYMBOL(q{(d = s.isDeclaration()) !is null && d.isOut()}));
+        }
+        else if (ident == Id.isLazy)
+        {
+	        mixin(ISDSYMBOL(q{(d = s.isDeclaration()) !is null && d.storage_class & STClazy}));
+        }
+//}
 		else if (ident == Id.hasMember ||
 				ident == Id.getMember ||
 				ident == Id.getVirtualFunctions)