java.lang.Object
java.lang.Record
org.aya.terck.CallResolver
- 记录组件:
targets- only search calls to those definitions
- 所有已实现的接口:
Def.Visitor<CallGraph<Def,,Term.Param>, kala.tuple.Unit> Term.Visitor<CallGraph<Def,,Term.Param>, kala.tuple.Unit> DefConsumer<CallGraph<Def,,Term.Param>> TermConsumer<CallGraph<Def,Term.Param>>
public record CallResolver(@NotNull FnDef caller, @NotNull kala.collection.mutable.MutableSet<Def> targets, @NotNull kala.value.Ref<Matching> currentMatching)
extends Record
implements DefConsumer<CallGraph<Def,Term.Param>>
Resolve calls and build call graph of recursive functions,
after
StmtTycker.-
构造器概要
构造器构造器说明CallResolver(@NotNull FnDef fn, @NotNull kala.collection.mutable.MutableSet<Def> targets) CallResolver(@NotNull FnDef caller, @NotNull kala.collection.mutable.MutableSet<Def> targets, @NotNull kala.value.Ref<Matching> currentMatching) 创建CallResolver记录的实例。 -
方法概要
修饰符和类型方法说明@NotNull FnDefcaller()返回caller记录组件的值。@NotNull kala.value.Ref<Matching>返回currentMatching记录组件的值。final boolean指示某个其他对象是否“等于”此对象。final inthashCode()返回此对象的哈希代码值。@NotNull kala.collection.mutable.MutableSet<Def>targets()返回targets记录组件的值。final StringtoString()返回此记录的字符串表示形式。kala.tuple.UnitvisitAccess(@NotNull CallTerm.Access term, CallGraph<Def, Term.Param> defCallGraph) kala.tuple.UnitvisitConCall(@NotNull CallTerm.Con conCall, CallGraph<Def, Term.Param> graph) kala.tuple.UnitvisitDataCall(@NotNull CallTerm.Data dataCall, CallGraph<Def, Term.Param> graph) kala.tuple.UnitvisitFnCall(@NotNull CallTerm.Fn fnCall, CallGraph<Def, Term.Param> graph) voidvisitMatching(@NotNull Matching matching, CallGraph<Def, Term.Param> graph) kala.tuple.UnitvisitPrimCall(CallTerm.Prim prim, CallGraph<Def, Term.Param> graph) kala.tuple.UnitvisitStructCall(@NotNull CallTerm.Struct structCall, CallGraph<Def, Term.Param> graph) 从接口继承的方法 org.aya.core.visitor.DefConsumer
visitCtor, visitData, visitField, visitFn, visitPat, visitPrim, visitStruct从接口继承的方法 org.aya.core.term.Term.Visitor
traceEntrance, traceExit从接口继承的方法 org.aya.core.visitor.TermConsumer
visitApp, visitArg, visitArgs, visitCall, visitError, visitFieldRef, visitHole, visitLam, visitMetaPat, visitNew, visitPi, visitProj, visitRef, visitSigma, visitTup, visitUniv
-
构造器详细资料
-
CallResolver
-
CallResolver
public CallResolver(@NotNull @NotNull FnDef caller, @NotNull @NotNull kala.collection.mutable.MutableSet<Def> targets, @NotNull @NotNull kala.value.Ref<Matching> currentMatching) 创建CallResolver记录的实例。- 参数:
caller-caller记录组件的值targets-targets记录组件的值currentMatching-currentMatching记录组件的值
-
-
方法详细资料
-
visitMatching
- 指定者:
visitMatching在接口中DefConsumer<CallGraph<Def,Term.Param>>
-
visitFnCall
- 指定者:
visitFnCall在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitFnCall在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
visitConCall
- 指定者:
visitConCall在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitConCall在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
visitDataCall
public kala.tuple.Unit visitDataCall(@NotNull CallTerm.Data dataCall, CallGraph<Def, Term.Param> graph) - 指定者:
visitDataCall在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitDataCall在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
visitStructCall
public kala.tuple.Unit visitStructCall(@NotNull CallTerm.Struct structCall, CallGraph<Def, Term.Param> graph) - 指定者:
visitStructCall在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitStructCall在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
visitAccess
public kala.tuple.Unit visitAccess(@NotNull CallTerm.Access term, CallGraph<Def, Term.Param> defCallGraph) - 指定者:
visitAccess在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitAccess在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
visitPrimCall
- 指定者:
visitPrimCall在接口中Term.Visitor<CallGraph<Def,Term.Param>, kala.tuple.Unit> - 指定者:
visitPrimCall在接口中TermConsumer<CallGraph<Def,Term.Param>>
-
toString
返回此记录的字符串表示形式。此表示形式包含类型的名称,后跟每个记录组件的名称和值。 -
hashCode
public final int hashCode()返回此对象的哈希代码值。此值派生自每个记录组件的哈希代码。 -
equals
指示某个其他对象是否“等于”此对象。如果两个对象属于同一个类,而且所有记录组件都相等,则这两个对象相等。 此记录中的所有组件都使用Objects::equals(Object,Object)进行比较。 -
caller
返回caller记录组件的值。- 返回:
caller记录组件的值
-
targets
返回targets记录组件的值。- 返回:
targets记录组件的值
-
currentMatching
返回currentMatching记录组件的值。- 返回:
currentMatching记录组件的值
-