nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge: Astbuilder improvement
[nit.git]
/
src
/
nitrestful.nit
diff --git
a/src/nitrestful.nit
b/src/nitrestful.nit
index
8f0c3ae
..
6a93f30
100644
(file)
--- a/
src/nitrestful.nit
+++ b/
src/nitrestful.nit
@@
-23,7
+23,7
@@
private class RestfulPhase
super Phase
# Classes with methods marked with the `restful` annotation
super Phase
# Classes with methods marked with the `restful` annotation
- var restful_classes = new HashSet[MClass]
+ var restful_classes = new HashSet[MClassDef]
redef fun process_annotated_node(node, nat)
do
redef fun process_annotated_node(node, nat)
do
@@
-77,16
+77,15
@@
private class RestfulPhase
end
# Register the property
end
# Register the property
- var mclass = mclassdef.mclass
- mclass.restful_methods.add mproperty
- restful_classes.add mclass
+ mclassdef.restful_methods.add mproperty
+ restful_classes.add mclassdef
if http_resources.not_empty then mproperty.restful_resources = http_resources
mproperty.restful_verbs = http_methods
end
end
if http_resources.not_empty then mproperty.restful_resources = http_resources
mproperty.restful_verbs = http_methods
end
end
-redef class MClass
+redef class MClassDef
# Methods with the `restful` annotation in this class
private var restful_methods = new Array[MMethod]
# Methods with the `restful` annotation in this class
private var restful_methods = new Array[MMethod]
@@
-132,7
+131,7
@@
redef class MType
else
# Deserialize everything else
template.add """
else
# Deserialize everything else
template.add """
- var out_{{{arg_name}}} = deserialize_arg(in_{{{arg_name}}})
+ var out_{{{arg_name}}} = deserialize_arg(in_{{{arg_name}}}, "{{{self.name}}}")
"""
end
end
"""
end
end
@@
-194,6
+193,7
@@
else
end
var nit_module = new NitModule(module_name)
end
var nit_module = new NitModule(module_name)
+nit_module.annotations.add """generated"""
nit_module.annotations.add """no_warning("parentheses")"""
nit_module.header = """
# This file is generated by nitrestful
nit_module.annotations.add """no_warning("parentheses")"""
nit_module.header = """
# This file is generated by nitrestful
@@
-207,7
+207,8
@@
end
var phase = toolcontext.restful_phase
assert phase isa RestfulPhase
var phase = toolcontext.restful_phase
assert phase isa RestfulPhase
-for mclass in phase.restful_classes do
+for mclassdef in phase.restful_classes do
+ var mclass = mclassdef.mclass
var t = new Template
nit_module.content.add t
var t = new Template
nit_module.content.add t
@@
-229,7
+230,7
@@
redef class {{{mclass}}}
var resource = resources.first
"""
var resource = resources.first
"""
- var methods = mclass.restful_methods
+ var methods = mclassdef.restful_methods
for i in methods.length.times, method in methods do
var msig = method.intro.msignature
if msig == null then continue
for i in methods.length.times, method in methods do
var msig = method.intro.msignature
if msig == null then continue
@@
-263,7
+264,11
@@
redef class {{{mclass}}}
"""
var mtype = param.mtype
"""
var mtype = param.mtype
- mtype.gen_arg_convert(t, param.name)
+ var bound_mtype = mclassdef.bound_mtype
+ var resolved_mtype = mtype.resolve_for(bound_mtype, bound_mtype, mclassdef.mmodule, true)
+ var resolved_type_name = resolved_mtype.name
+
+ resolved_mtype.gen_arg_convert(t, param.name)
var arg = "out_{param.name}"
args.add arg
var arg = "out_{param.name}"
args.add arg