Module aya.base

Class TeleDecl<RetTy extends Term>

java.lang.Object
org.aya.concrete.stmt.decl.CommonDecl
org.aya.concrete.stmt.decl.TeleDecl<RetTy>
All Implemented Interfaces:
Decl, Stmt, AyaDocile, TyckUnit, org.aya.util.binop.OpDecl, org.aya.util.error.SourceNode
Direct Known Subclasses:
TeleDecl.ClassMember, TeleDecl.DataCtor, TeleDecl.TopLevel

public abstract sealed class TeleDecl<RetTy extends Term> extends CommonDecl permits TeleDecl.TopLevel<RetTy>, TeleDecl.DataCtor, TeleDecl.ClassMember
Concrete telescopic definition, corresponding to Def.
See Also:
  • Field Details

    • result

      @Nullable public @Nullable Expr result
    • telescope

      @NotNull public @NotNull kala.collection.immutable.ImmutableSeq<Expr.Param> telescope
    • signature

      @Nullable public Def.Signature<RetTy extends Term> signature
  • Constructor Details

    • TeleDecl

      protected TeleDecl(@NotNull @NotNull DeclInfo info, @NotNull @NotNull kala.collection.immutable.ImmutableSeq<Expr.Param> telescope, @Nullable @Nullable Expr result)
  • Method Details

    • modifyResult

      public void modifyResult(@NotNull @NotNull UnaryOperator<Expr> f)
    • modifyTelescope

      public void modifyTelescope(@NotNull @NotNull UnaryOperator<kala.collection.immutable.ImmutableSeq<Expr.Param>> f)
    • ref

      @Contract(pure=true) @NotNull public abstract @NotNull DefVar<? extends Def,? extends TeleDecl<RetTy>> ref()