Fantom

 

abstract const class

sys::Slot

sys::Obj
  sys::Slot

Slot represents a member field or method on a Type.

Slots

docSource

Str? doc()

Return the raw fandoc for this slot or null if not available. If there is additional documentation meta-data available it is included an the start of the string as a series of "@name=value" lines.

facetSource

Facet? facet(Type type, Bool checked := true)

Get a facet by its type. If not found on this slot then return null or throw UnknownFacetErr based on check flag. See Facets Doc for details.

facetsSource

Facet[] facets()

Get the list of facets defined on this slot or return an empty list if no facets are defined. If looking up a facet by type, then use the facet method which will provide better performance. See Facets Doc for details.

findSource

static Slot? find(Str qname, Bool checked := true)

Find a Slot by it's qualified name "pod::Type.slot". If the slot doesn't exist and checked is false then return null, otherwise throw UnknownSlotErr.

findFieldSource

static Field? findField(Str qname, Bool checked := true)

Convenience for (Field)find(qname, checked)

findFuncSource

static Func? findFunc(Str qname, Bool checked := true)

Convenience for findMethod(qname, checked).func

findMethodSource

static Method? findMethod(Str qname, Bool checked := true)

Convenience for (Method)find(qname, checked)

hasFacetSource

Bool hasFacet(Type type)

Return if this type has the specified facet defined.

isAbstractSource

Bool isAbstract()

Return if slot is abstract (no implementation provided).

isConstSource

Bool isConst()

Return if slot is constant and thread safe. A constant field is explicitly marked with the const modifier and guaranteed to always reference the same immutable object for the life of the VM. A const method is guaranteed to not capture any state from its thread, and is safe to execute on other threads. The compiler marks methods as const based on the following analysis:

  • static methods are always automatically const
  • instance methods are never const
  • closures which don't capture any variables from their scope are automatically const
  • partional apply methods which only capture const variables from their scope are automatically const
isCtorSource

Bool isCtor()

Return if slot is constructor method.

isFieldSource

Bool isField()

Return true if this is an instance of Field.

isInternalSource

Bool isInternal()

Return if slot has internal protection scope.

isMethodSource

Bool isMethod()

Return true if this is an instance of Method.

isNativeSource

Bool isNative()

Return if slot is native.

isOverrideSource

Bool isOverride()

Return if slot is an override (of parent's virtual method).

isPrivateSource

Bool isPrivate()

Return if slot has private protection scope.

isProtectedSource

Bool isProtected()

Return if slot has protected protection scope.

isPublicSource

Bool isPublic()

Return if slot has public protection scope.

isStaticSource

Bool isStatic()

Return if slot is static (class based, rather than instance).

isSyntheticSource

Bool isSynthetic()

Return if this slot was generated by the compiler.

isVirtualSource

Bool isVirtual()

Return if slot is virtual (may be overridden in subclasses).

nameSource

Str name()

Simple name of the slot such as "size".

parentSource

Type parent()

Parent type which defines this slot.

qnameSource

Str qname()

Qualified name such as "sys:Str.size".

signatureSource

virtual Str signature()

Return a string representation of the Fantom code signature.

toStrSource

override Str toStr()

Overrides sys::Obj.toStr

Always return qname().