diff dmd/TypeClass.d @ 130:60bb0fe4563e

dmdfe 2.037 first main iteration
author Eldar Insafutdinov <e.insafutdinov@gmail.com>
date Thu, 09 Sep 2010 22:51:44 +0100
parents e28b18c23469
children af1bebfd96a4
line wrap: on
line diff
--- a/dmd/TypeClass.d	Sun Sep 05 15:32:22 2010 +0400
+++ b/dmd/TypeClass.d	Thu Sep 09 22:51:44 2010 +0100
@@ -200,7 +200,7 @@
 					 * at compile time.
 					 */
 					if (!sym.vclassinfo)
-						sym.vclassinfo = new ClassInfoDeclaration(sym);
+						sym.vclassinfo = new TypeInfoClassDeclaration(sym.type);
 
 					e = new VarExp(e.loc, sym.vclassinfo);
 					e = e.addressOf(sc);
@@ -273,41 +273,7 @@
 			}
 			else
 			{
-				if (ident !is Id.__sizeof	 &&
-					ident !is Id.alignof_ &&
-					ident !is Id.init_ &&
-					ident !is Id.mangleof_ &&
-					ident !is Id.stringof_ &&
-					ident !is Id.offsetof)
-				{
-					/* See if we should forward to the alias this.
-					 */
-					if (sym.aliasthis)
-					{   
-						/* Rewrite e.ident as:
-						 *	e.aliasthis.ident
-						 */
-						e = new DotIdExp(e.loc, e, sym.aliasthis.ident);
-						e = new DotIdExp(e.loc, e, ident);
-						return e.semantic(sc);
-					}
-
-					/* Look for overloaded opDot() to see if we should forward request
-					 * to it.
-					 */
-					Dsymbol fd = search_function(sym, Id.opDot);
-					if (fd)
-					{   
-						/* Rewrite e.ident as:
-						 *	e.opId().ident
-						 */
-						e = build_overload(e.loc, sc, e, null, fd.ident);
-						e = new DotIdExp(e.loc, e, ident);
-						return e.semantic(sc);
-					}
-				}
-
-				return Type.dotExp(sc, e, ident);
+				return noMember(sc, e, ident);
 			}
 		}