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 a FFI name 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.