W3cubDocs

/D

dmd.tocsym

Compiler implementation of the D programming language.

Authors:
Walter Bright
License:
Boost License 1.0
Source
tocsym.d
Documentation
https://dlang.org/phobos/dmd_tocsym.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/tocsym.d
Symbol* toSymbolX(Dsymbol ds, const(char)* prefix, int sclass, type* t, const(char)* suffix);

Helper

Symbol* toSymbol(Dsymbol s);
Symbol* toImport(Symbol* sym);
Symbol* toImport(Dsymbol ds);

Generate import symbol from symbol.

Symbol* toThunkSymbol(FuncDeclaration fd, int offset);

Thunks adjust the incoming 'this' pointer by 'offset'.

Classsym* fake_classsym(Identifier id);

Fake a struct symbol.

Symbol* toVtblSymbol(ClassDeclaration cd);

This is accessible via the ClassData, but since it is frequently needed directly (like for rtti comparisons), make it directly accessible.

Symbol* toInitializer(AggregateDeclaration ad);

Create the static initializer for the struct/class.

Symbol* aaGetSymbol(TypeAArray taa, const(char)* func, int flags);

Determine the right symbol to look up an associative array element.

Input
flags 0 don't add value signature 1 add value signature
Symbol* toSymbol(StructLiteralExp sle);
Symbol* toSymbolCpp(ClassDeclaration cd);

For C++ class cd, generate an instance of _cpp_type_info_ptr and populate it with a pointer to the C++ type info.

Parameters:
ClassDeclaration cd C++ class
Returns:
symbol of instance of _cpp_type_info_ptr
Symbol* toSymbolCppTypeInfo(ClassDeclaration cd);

Generate Symbol of C++ type info for C++ class cd.

Parameters:
ClassDeclaration cd C++ class
Returns:
Symbol of cd's rtti type info

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_tocsym.html