d.ir.expression

Undocumented in source.

Members

Aliases

ArrayLiteral
alias ArrayLiteral = d.ast.expression.ArrayLiteral!Expression
Undocumented in source.
CompileTimeTupleExpression
alias CompileTimeTupleExpression = TupleExpressionImpl!true
Undocumented in source.
StaticTypeidExpression
alias StaticTypeidExpression = d.ast.expression.StaticTypeidExpression!(Type, Expression)
Undocumented in source.
TernaryExpression
alias TernaryExpression = d.ast.expression.TernaryExpression!Expression
Undocumented in source.
TupleExpression
alias TupleExpression = TupleExpressionImpl!false
Undocumented in source.
UnaryOp
alias UnaryOp = d.ast.expression.UnaryOp
Undocumented in source.

Classes

BinaryExpression
class BinaryExpression
Undocumented in source.
BooleanLiteral
class BooleanLiteral

Boolean literal

CallExpression
class CallExpression
Undocumented in source.
CastExpression
class CastExpression
Undocumented in source.
CharacterLiteral
class CharacterLiteral

Character literal

CompileTimeExpression
class CompileTimeExpression

Any expression that have a value known at compile time.

ContextExpression
class ContextExpression

Context

DelegateExpression
class DelegateExpression

Delegate from a function + contextes.

DynamicTypeidExpression
class DynamicTypeidExpression

For classes, typeid is computed at runtime.

Expression
class Expression
Undocumented in source.
FPCmpExpression
class FPCmpExpression
Undocumented in source.
FieldExpression
class FieldExpression

Field access.

FloatLiteral
class FloatLiteral

Float literal

FunctionExpression
class FunctionExpression

IdentifierExpression that as been resolved as a Function. XXX: Deserve to be merged with VariableExpression somehow.

ICmpExpression
class ICmpExpression

Integral comparisons (integers, pointers, ...)

IndexExpression
class IndexExpression

Index expression : indexedarguments

IntegerLiteral
class IntegerLiteral

Integer literal

IntrinsicExpression
class IntrinsicExpression

This is where the compiler does its magic.

LifetimeExpression
class LifetimeExpression
Undocumented in source.
NewExpression
class NewExpression

new

NullLiteral
class NullLiteral

Null literal

PolysemousExpression
class PolysemousExpression

Expression that can in fact be several expressions. A good example is IdentifierExpression that resolve as overloaded functions.

SliceExpression
class SliceExpression

Slice expression : [first .. second]

StringLiteral
class StringLiteral

String literal

SuperExpression
class SuperExpression

Super

UnaryExpression
class UnaryExpression
Undocumented in source.
VariableExpression
class VariableExpression

IdentifierExpression that as been resolved as a Variable.

VoidInitializer
class VoidInitializer

Used for type identifier = void;

VtblExpression
class VtblExpression

Virtual table XXX: This is highly dubious. Explore the alternatives and get rid of that.

Enums

BinaryOp
enum BinaryOp
Undocumented in source.
CastKind
enum CastKind

Cast expressions

FPCmpOp
enum FPCmpOp
Undocumented in source.
ICmpOp
enum ICmpOp
Undocumented in source.
Intrinsic
enum Intrinsic
Undocumented in source.
LifetimeOp
enum LifetimeOp
Undocumented in source.

Functions

build
Expression build(T args)
Undocumented in source. Be warned that the author may not have intended to support it.

Templates

TupleExpressionImpl
template TupleExpressionImpl(bool isCompileTime = false)

tuples. Also used for struct initialization.

Meta