functional :: RoutineTemplate :: supers
functional :: RoutineTemplate :: supers=
functional $ RoutineTemplate :: SELF
Type of this instance, automatically specialized in every classcore :: Object :: class_factory
Implementation used byget_class
to create the specific class.
core :: Object :: defaultinit
core :: Object :: is_same_instance
Return true ifself
and other
are the same instance (i.e. same identity).
core :: Object :: is_same_serialized
Isself
the same as other
in a serialization context?
core :: Object :: is_same_type
Return true ifself
and other
have the same dynamic type.
core :: Object :: output_class_name
Display class name on stdout (debug only).functional :: RoutineTemplate :: supers
functional :: RoutineTemplate :: supers=
class RoutineTemplate
var classkind: String
var classname: String
var nb_generics: Int
var supers: Array[String]
var has_return: Bool
var is_redef = false
var annotation = "is abstract"
fun callparams: Array[String]
do
var generics = gen_generics(nb_generics)
var params = new Array[String]
for g in generics do
if is_redef then
params.push(g.to_lower)
else
params.push(g.to_lower + ": " + g)
end
end
return params
end
fun classparams: Array[String]
do
var res = gen_generics(nb_generics)
if has_return then res.add("RESULT")
return res
end
redef fun to_s
do
var signature = ""
var callparams = self.callparams
var classparams = self.classparams
if callparams.length > 0 then signature = "({callparams.join(",")})"
if has_return then signature += ": RESULT"
var classdecl = "{classkind} {classname}"
if classparams.length > 0 then classdecl += "[{classparams.join(",")}]"
var superdecls = new Array[String]
for s in supers do superdecls.add("\tsuper {s}")
var classdef = new Array[String]
var redefkw = ""
if is_redef then redefkw = "redef "
classdef.add("{classdecl}")
classdef.add("{superdecls.join("\n")}")
classdef.add("\t{redefkw}fun call{signature} {annotation}")
classdef.add("end")
return classdef.join("\n")
end
end
lib/functional/functional_gen.nit:31,1--83,3