logo

abstract const class

sys::Slot

sys::Obj
  sys::Slot

Slot represents a member field or method on a Type.

Slots

doc

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.

Source

facet

Obj facet(Str name, Obj def := null)

Get a facet by name, or return the def is the facet is not defined. See the Facets Doc for details.

Source

facets

Str:Obj facets()

Return all the facets defined for this slot or an empty map if no facets are defined. If looking up a facet by name, then use the facet method which will provide better performance. See the Facets Doc for details.

Source

find

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.

Source

findField

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

Convenience for (Field)find(qname, checked)

Source

findFunc

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

Convenience for findMethod(qname, checked).func

Source

findMethod

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

Convenience for (Method)find(qname, checked)

Source

isAbstract

Bool isAbstract()

Return if slot is abstract (no implementation provided).

Source

isConst

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

Source

isCtor

Bool isCtor()

Return if slot is constructor method.

Source

isField

Bool isField()

Return true if this is an instance of Field.

Source

isInternal

Bool isInternal()

Return if slot has internal protection scope.

Source

isMethod

Bool isMethod()

Return true if this is an instance of Method.

Source

isNative

Bool isNative()

Return if slot is native.

Source

isOverride

Bool isOverride()

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

Source

isPrivate

Bool isPrivate()

Return if slot has private protection scope.

Source

isProtected

Bool isProtected()

Return if slot has protected protection scope.

Source

isPublic

Bool isPublic()

Return if slot has public protection scope.

Source

isStatic

Bool isStatic()

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

Source

isSynthetic

Bool isSynthetic()

Return if this slot was generated by the compiler.

Source

isVirtual

Bool isVirtual()

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

Source

name

Str name()

Simple name of the slot such as "size".

Source

parent

Type parent()

Parent type which defines this slot.

Source

qname

Str qname()

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

Source

signature

virtual Str signature()

Return a string representation of the Fan code signature.

Source

toStr

override Str toStr()

Always return qname().

Source