nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge: doc: fixed some typos and other misc. corrections
[nit.git]
/
src
/
frontend
/
parallelization_phase.nit
diff --git
a/src/frontend/parallelization_phase.nit
b/src/frontend/parallelization_phase.nit
index
5307cf4
..
b5cc9fd
100644
(file)
--- a/
src/frontend/parallelization_phase.nit
+++ b/
src/frontend/parallelization_phase.nit
@@
-47,12
+47,11
@@
private class ParallelizationPhase
assert amod isa AModule
# Construct the name of the generated class
assert amod isa AModule
# Construct the name of the generated class
- var modulename = amod.n_moduledecl.n_name.n_id.text
- var classname = "Threaded" + modulename
+ var classname = "Threaded"
# Try to get the name of the class
if nmethdef.parent isa AStdClassdef then
# Try to get the name of the class
if nmethdef.parent isa AStdClassdef then
- classname += nmethdef.parent.as(AStdClassdef).n_id.text
+ classname += nmethdef.parent.as(AStdClassdef).n_qid.n_id.text
end
# Try to get the name of the method
end
# Try to get the name of the method
@@
-64,24
+63,29
@@
private class ParallelizationPhase
var has_rvalue = nmethdef.n_signature.n_type != null
var vtype = ""
if has_rvalue then
var has_rvalue = nmethdef.n_signature.n_type != null
var vtype = ""
if has_rvalue then
- vtype = "redef type E: " + nmethdef.n_signature.n_type.n_id.text
+ vtype = "redef type E: " + nmethdef.n_signature.n_type.n_qid.n_id.text
end
end
+
# create a return type
var n_id = new TClassid
n_id.text = classname
# create a return type
var n_id = new TClassid
n_id.text = classname
+ var n_qid = new AQclassid
+ n_qid.n_id = n_id
var n_type = new AType
var n_type = new AType
- n_type.n_id = n_id
+ n_type.n_qid = n_qid
nmethdef.n_signature.n_type = n_type
var params = new Array[String]
for param in nmethdef.n_signature.n_params do
nmethdef.n_signature.n_type = n_type
var params = new Array[String]
for param in nmethdef.n_signature.n_params do
+ var typ = param.n_type.n_qid.n_id.text
+ if param.n_type.n_kwnullable != null then typ = "nullable {typ}"
params.add """
params.add """
-var {{{param.n_id.text}}} : {{{param.n_type.n_id.text}}}
+var {{{param.n_id.text}}}: {{{typ}}}
"""
end
# String corresponding to the generated class
"""
end
# String corresponding to the generated class
- var s="""
+ var classdef_source = """
class {{{classname}}}
super Thread
class {{{classname}}}
super Thread
@@
-94,10
+98,11
@@
end
"""
# Parse newly obtained classdef
"""
# Parse newly obtained classdef
- var classdef = toolcontext.parse_classdef(s).as(AStdClassdef)
+ var classdef = toolcontext.parse_classdef(classdef_source)
+ assert classdef isa AStdClassdef
# Get the `main` fun of the class
# Get the `main` fun of the class
- var mainfun : nullable AMethPropdef = null
+ var mainfun: nullable AMethPropdef = null
for prop in classdef.n_propdefs do
if prop isa AMethPropdef then mainfun = prop
end
for prop in classdef.n_propdefs do
if prop isa AMethPropdef then mainfun = prop
end
@@
-137,7
+142,10
@@
return thread
var newbody = toolcontext.parse_something(s_newbody)
nmethdef.n_block = newbody.as(ABlockExpr)
var newbody = toolcontext.parse_something(s_newbody)
nmethdef.n_block = newbody.as(ABlockExpr)
+ nmethdef.validate
+
# Add the new class to the module
amod.n_classdefs.add(classdef)
# Add the new class to the module
amod.n_classdefs.add(classdef)
+ classdef.validate
end
end
end
end