package reflect
- Alphabetic
- By Inheritance
- reflect
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
sealed
trait
Binding
extends AnyRef
A compiler binding.
A compiler binding. Bindings store static type information that the compiler uses to perform type inference. Caustic has a relatively simple static type system. A type is a binding that may be the result of an expression. A simple type may be passed to or returned by a function or be used as a field of a struct. A record type may have fields. A built-in type is a compiler provided record and may represent either a primitive value or a collection of values. Programs may define four kinds of bindings. A variable binds a name to a type. A struct binds a name to a collection of fields. A function binds a name to a list of arguments and a return type all of simple type. A service binds a name to a collection of functions.
- sealed trait BuiltIn extends Record
- case class CFunction (name: String, args: List[Simple], returns: Simple) extends Type with Product with Serializable
- case class CList (value: Primitive) extends Collection with Product with Serializable
- case class CMap (key: Primitive, value: Primitive) extends Collection with Product with Serializable
- case class CPointer (to: Record) extends Simple with Product with Serializable
- case class CService (functions: Map[String, CFunction]) extends Binding with Product with Serializable
- case class CSet (value: Primitive) extends Collection with Product with Serializable
- case class CStruct (fields: Map[String, Simple]) extends Record with Product with Serializable
- case class CVariable (of: Simple) extends Binding with Product with Serializable
- sealed trait Collection extends BuiltIn
- sealed trait Primitive extends BuiltIn
- sealed trait Record extends Simple
-
case class
Result
(of: Type, value: String) extends Product with Serializable
A type-tagged value.
A type-tagged value.
- of
Type.
- value
Code.
- sealed trait Simple extends Type
- sealed trait Type extends Binding
-
class
Universe
extends AnyRef
A collection of bindings.
Value Members
- def isAssignable(x: Type, y: Type): Boolean
- def isBoolean(x: Type): Boolean
- def isNumeric(x: Type): Boolean
- def isPassable(x: Seq[Type], y: Seq[Type]): Boolean
- def isPrimitive(x: Type): Boolean
-
def
lub(x: Type, y: Type): Type
Returns the least upper bound of the specified types.
Returns the least upper bound of the specified types.
- x
A type.
- y
Another type.
- returns
Least upper bound.
-
def
lub(x: Primitive, y: Primitive): Primitive
Returns the least upper bound of the specified primitive types.
Returns the least upper bound of the specified primitive types.
- x
A primitive.
- y
Another primitive.
- returns
Least upper bound.
- object CBoolean extends Primitive with Product with Serializable
- object CDouble extends Primitive with Product with Serializable
- object CInt extends Primitive with Product with Serializable
- object CNull extends Primitive with Product with Serializable
- object CString extends Primitive with Product with Serializable
- object CUnit extends Primitive with Product with Serializable
- object Universe