Fan

 

abstract class

compiler::CBridge

sys::Obj
  compiler::CompilerSupport
    compiler::CBridge

CBridge is the base class for compiler FFI plugins to expose external type systems to the Fan compiler as CPods, CTypes, and CSlots. Subclasses are registered for with the "compilerBridge" facet and must declare a constructor with a Compiler arg.

Slots

checkOverrideSource

abstract Void checkOverride(TypeDef t, CSlot base, SlotDef def)

Called during Inherit step when a Fan slot overrides a FFI slot. Log and throw compiler error if there is a problem.

checkTypeSource

abstract Void checkType(TypeDef def)

Called during CheckErrors step for a type which extends a FFI class or implements any FFI mixins.

coerceSource

virtual Expr coerce(Expr expr, CType expected, || onErr)

Coerce the target expression to the specified type. If the expression is not type compatible run the onErr function. Default implementation provides standard Fan coercion.

makeSource

new make(Compiler c)

Constructor with associated compiler.

resolveCallSource

abstract Expr resolveCall(CallExpr call)

Resolve a method call. Type check the arguments and insert any conversions needed.

resolveConstructionSource

abstract Expr resolveConstruction(CallExpr call)

Resolve a construction call. Type check the arguments and insert any conversions needed.

resolveConstructorChainSource

abstract Expr resolveConstructorChain(CallExpr call)

Resolve a construction chain call where a Fan constructor calls the super-class constructor. Type check the arguments and insert any conversions needed.

resolvePodSource

abstract CPod resolvePod(Str name, Location? loc)

Resolve the specified foreign namespace to a CPod. Throw a CompilerErr with appropriate message if name cannot be resolved.