Module aya.base

Interface Decl

All Superinterfaces:
AyaDocile, org.aya.util.binop.OpDecl, org.aya.util.error.SourceNode, Stmt, TyckUnit
All Known Implementing Classes:
ClassDecl, CommonDecl, TeleDecl, TeleDecl.DataCtor, TeleDecl.DataDecl, TeleDecl.FnDecl, TeleDecl.PrimDecl, TeleDecl.StructDecl, TeleDecl.StructField

public sealed interface Decl extends org.aya.util.binop.OpDecl, org.aya.util.error.SourceNode, TyckUnit, Stmt permits CommonDecl
Generic concrete definitions, corresponding to GenericDef. Concrete definitions can be varied in the following ways: We say these are properties of a concrete definition and should be implemented selectively.

There are some commonalities between concrete definitions: they all have source positions, names, operator info and statement accessibility. These common parts are extracted into CommonDecl for all concrete definitions, TeleDecl for all top-level telescopic concrete definitions and ClassDecl for all top-level class-able concrete definitions.

See Also:
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Interface
    Description
    static enum 
     
    static interface 
    Denotes that the definition has a result type
    static interface 
    Denotes that the definition is telescopic
    static interface 
    Denotes that the definition can be defined at top-level

    Nested classes/interfaces inherited from interface org.aya.util.binop.OpDecl

    org.aya.util.binop.OpDecl.BindPred, org.aya.util.binop.OpDecl.OpInfo

    Nested classes/interfaces inherited from interface org.aya.concrete.stmt.Stmt

    Stmt.Accessibility
  • Field Summary

    Fields inherited from interface org.aya.util.binop.OpDecl

    APPLICATION
  • Method Summary

    Modifier and Type
    Method
    Description
     
    @NotNull BindBlock
     
    @NotNull org.aya.util.error.SourcePos
     
    default boolean
    needTyck(@NotNull kala.collection.immutable.ImmutableSeq<String> currentMod)
     
    @Nullable org.aya.util.binop.OpDecl.OpInfo
     
    @NotNull DefVar<?,?>
    ref()
     

    Methods inherited from interface org.aya.generic.AyaDocile

    debuggerOnlyToDoc

    Methods inherited from interface org.aya.util.error.SourceNode

    sourcePos

    Methods inherited from interface org.aya.concrete.stmt.Stmt

    desugar, toDoc
  • Method Details

    • accessibility

      @NotNull @NotNull Stmt.Accessibility accessibility()
      Specified by:
      accessibility in interface Stmt
    • ref

      @Contract(pure=true) @NotNull @NotNull DefVar<?,?> ref()
    • bindBlock

      @NotNull @NotNull BindBlock bindBlock()
    • opInfo

      @Nullable @Nullable org.aya.util.binop.OpDecl.OpInfo opInfo()
      Specified by:
      opInfo in interface org.aya.util.binop.OpDecl
    • entireSourcePos

      @NotNull @NotNull org.aya.util.error.SourcePos entireSourcePos()
    • needTyck

      default boolean needTyck(@NotNull @NotNull kala.collection.immutable.ImmutableSeq<String> currentMod)
      Specified by:
      needTyck in interface TyckUnit