comparison sema/ScopeBuilder.d @ 168:7982eb63c0eb

Some changes to get function overloading to work. Also class inherit works now - to some extend. needs vtables and all the complex stuff of it.
author Anders Johnsen <skabet@gmail.com>
date Thu, 24 Jul 2008 12:06:48 +0200
parents 362265427838
children 01c2c49775ef
comparison
equal deleted inserted replaced
166:9cfa33517526 168:7982eb63c0eb
62 visitExp(d.init); 62 visitExp(d.init);
63 63
64 DType t = typeOf(d.varType, d.env); 64 DType t = typeOf(d.varType, d.env);
65 d.sym = current.symbol.createAlias( 65 d.sym = current.symbol.createAlias(
66 d.identifier.get, 66 d.identifier.get,
67 d.env.find(d.varType.get).sym, 67 d.env.find(d.varType.get)[0].sym,
68 d); 68 d);
69 d.sym.type = t; 69 d.sym.type = t;
70 } 70 }
71 71
72 override void visitStructDecl(StructDecl s) 72 override void visitStructDecl(StructDecl s)
129 { 129 {
130 auto st = s.env.findType(s.identifier.get).asStruct; 130 auto st = s.env.findType(s.identifier.get).asStruct;
131 s.sym = current.symbol.createMember( 131 s.sym = current.symbol.createMember(
132 s.identifier.get, 132 s.identifier.get,
133 st, 133 st,
134 s.env.find(s.identifier.get)); 134 s.env.find(s.identifier.get)[0]);
135 135
136 foreach (decl; s.decls) 136 foreach (decl; s.decls)
137 { 137 {
138 DType type; 138 DType type;
139 char[] name; 139 char[] name;
156 { 156 {
157 auto st = s.env.findType(s.identifier.get).asClass; 157 auto st = s.env.findType(s.identifier.get).asClass;
158 s.sym = current.symbol.createMember( 158 s.sym = current.symbol.createMember(
159 s.identifier.get, 159 s.identifier.get,
160 st, 160 st,
161 s.env.find(s.identifier.get)); 161 s.env.find(s.identifier.get)[0]);
162 162
163 foreach (decl; s.decls) 163 foreach (decl; s.decls)
164 { 164 {
165 DType type; 165 DType type;
166 char[] name; 166 char[] name;
183 { 183 {
184 auto st = s.env.findType(s.identifier.get).asInterface; 184 auto st = s.env.findType(s.identifier.get).asInterface;
185 s.sym = current.symbol.createMember( 185 s.sym = current.symbol.createMember(
186 s.identifier.get, 186 s.identifier.get,
187 st, 187 st,
188 s.env.find(s.identifier.get)); 188 s.env.find(s.identifier.get)[0]);
189 189
190 foreach (decl; s.decls) 190 foreach (decl; s.decls)
191 { 191 {
192 DType type; 192 DType type;
193 char[] name; 193 char[] name;