Mercurial > projects > ldc
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); |