comparison dmd/declaration.h @ 106:5b5194b25f33 trunk

[svn r110] Fixed typeinfo for classes.
author lindquist
date Mon, 19 Nov 2007 06:01:48 +0100
parents 5071469303d4
children 9c79b61fb638
comparison
equal deleted inserted replaced
105:182b41f56b7f 106:5b5194b25f33
325 Symbol *toSymbol(); 325 Symbol *toSymbol();
326 void toObjFile(); // compile to .obj file 326 void toObjFile(); // compile to .obj file
327 virtual void toDt(dt_t **pdt); 327 virtual void toDt(dt_t **pdt);
328 328
329 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return this; } 329 virtual TypeInfoDeclaration* isTypeInfoDeclaration() { return this; }
330
331 // LLVMDC
332 virtual void llvmDeclare();
333 virtual void llvmDefine();
330 }; 334 };
331 335
332 struct TypeInfoStructDeclaration : TypeInfoDeclaration 336 struct TypeInfoStructDeclaration : TypeInfoDeclaration
333 { 337 {
334 TypeInfoStructDeclaration(Type *tinfo); 338 TypeInfoStructDeclaration(Type *tinfo);
335 339
336 void toDt(dt_t **pdt); 340 void toDt(dt_t **pdt);
341
342 // LLVMDC
343 void llvmDeclare();
344 void llvmDefine();
337 }; 345 };
338 346
339 struct TypeInfoClassDeclaration : TypeInfoDeclaration 347 struct TypeInfoClassDeclaration : TypeInfoDeclaration
340 { 348 {
341 TypeInfoClassDeclaration(Type *tinfo); 349 TypeInfoClassDeclaration(Type *tinfo);
342 350
343 void toDt(dt_t **pdt); 351 void toDt(dt_t **pdt);
352
353 // LLVMDC
354 void llvmDeclare();
355 void llvmDefine();
344 }; 356 };
345 357
346 struct TypeInfoInterfaceDeclaration : TypeInfoDeclaration 358 struct TypeInfoInterfaceDeclaration : TypeInfoDeclaration
347 { 359 {
348 TypeInfoInterfaceDeclaration(Type *tinfo); 360 TypeInfoInterfaceDeclaration(Type *tinfo);
349 361
350 void toDt(dt_t **pdt); 362 void toDt(dt_t **pdt);
363
364 // LLVMDC
365 void llvmDeclare();
366 void llvmDefine();
351 }; 367 };
352 368
353 struct TypeInfoTypedefDeclaration : TypeInfoDeclaration 369 struct TypeInfoTypedefDeclaration : TypeInfoDeclaration
354 { 370 {
355 TypeInfoTypedefDeclaration(Type *tinfo); 371 TypeInfoTypedefDeclaration(Type *tinfo);
356 372
357 void toDt(dt_t **pdt); 373 void toDt(dt_t **pdt);
374
375 // LLVMDC
376 void llvmDeclare();
377 void llvmDefine();
358 }; 378 };
359 379
360 struct TypeInfoPointerDeclaration : TypeInfoDeclaration 380 struct TypeInfoPointerDeclaration : TypeInfoDeclaration
361 { 381 {
362 TypeInfoPointerDeclaration(Type *tinfo); 382 TypeInfoPointerDeclaration(Type *tinfo);
363 383
364 void toDt(dt_t **pdt); 384 void toDt(dt_t **pdt);
385
386 // LLVMDC
387 void llvmDeclare();
388 void llvmDefine();
365 }; 389 };
366 390
367 struct TypeInfoArrayDeclaration : TypeInfoDeclaration 391 struct TypeInfoArrayDeclaration : TypeInfoDeclaration
368 { 392 {
369 TypeInfoArrayDeclaration(Type *tinfo); 393 TypeInfoArrayDeclaration(Type *tinfo);
370 394
371 void toDt(dt_t **pdt); 395 void toDt(dt_t **pdt);
396
397 // LLVMDC
398 void llvmDeclare();
399 void llvmDefine();
372 }; 400 };
373 401
374 struct TypeInfoStaticArrayDeclaration : TypeInfoDeclaration 402 struct TypeInfoStaticArrayDeclaration : TypeInfoDeclaration
375 { 403 {
376 TypeInfoStaticArrayDeclaration(Type *tinfo); 404 TypeInfoStaticArrayDeclaration(Type *tinfo);
377 405
378 void toDt(dt_t **pdt); 406 void toDt(dt_t **pdt);
407
408 // LLVMDC
409 void llvmDeclare();
410 void llvmDefine();
379 }; 411 };
380 412
381 struct TypeInfoAssociativeArrayDeclaration : TypeInfoDeclaration 413 struct TypeInfoAssociativeArrayDeclaration : TypeInfoDeclaration
382 { 414 {
383 TypeInfoAssociativeArrayDeclaration(Type *tinfo); 415 TypeInfoAssociativeArrayDeclaration(Type *tinfo);
384 416
385 void toDt(dt_t **pdt); 417 void toDt(dt_t **pdt);
418
419 // LLVMDC
420 void llvmDeclare();
421 void llvmDefine();
386 }; 422 };
387 423
388 struct TypeInfoEnumDeclaration : TypeInfoDeclaration 424 struct TypeInfoEnumDeclaration : TypeInfoDeclaration
389 { 425 {
390 TypeInfoEnumDeclaration(Type *tinfo); 426 TypeInfoEnumDeclaration(Type *tinfo);
391 427
392 void toDt(dt_t **pdt); 428 void toDt(dt_t **pdt);
429
430 // LLVMDC
431 void llvmDeclare();
432 void llvmDefine();
393 }; 433 };
394 434
395 struct TypeInfoFunctionDeclaration : TypeInfoDeclaration 435 struct TypeInfoFunctionDeclaration : TypeInfoDeclaration
396 { 436 {
397 TypeInfoFunctionDeclaration(Type *tinfo); 437 TypeInfoFunctionDeclaration(Type *tinfo);
398 438
399 void toDt(dt_t **pdt); 439 void toDt(dt_t **pdt);
440
441 // LLVMDC
442 void llvmDeclare();
443 void llvmDefine();
400 }; 444 };
401 445
402 struct TypeInfoDelegateDeclaration : TypeInfoDeclaration 446 struct TypeInfoDelegateDeclaration : TypeInfoDeclaration
403 { 447 {
404 TypeInfoDelegateDeclaration(Type *tinfo); 448 TypeInfoDelegateDeclaration(Type *tinfo);
405 449
406 void toDt(dt_t **pdt); 450 void toDt(dt_t **pdt);
451
452 // LLVMDC
453 void llvmDeclare();
454 void llvmDefine();
407 }; 455 };
408 456
409 struct TypeInfoTupleDeclaration : TypeInfoDeclaration 457 struct TypeInfoTupleDeclaration : TypeInfoDeclaration
410 { 458 {
411 TypeInfoTupleDeclaration(Type *tinfo); 459 TypeInfoTupleDeclaration(Type *tinfo);
412 460
413 void toDt(dt_t **pdt); 461 void toDt(dt_t **pdt);
462
463 // LLVMDC
464 void llvmDeclare();
465 void llvmDefine();
414 }; 466 };
415 467
416 struct ThisDeclaration : VarDeclaration 468 struct ThisDeclaration : VarDeclaration
417 { 469 {
418 ThisDeclaration(Type *t); 470 ThisDeclaration(Type *t);