nitlanguage
/
nit.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
src: remove some `call on nullable` warning with a non-null local variable
[nit.git]
/
src
/
frontend
/
parallelization_phase.nit
diff --git
a/src/frontend/parallelization_phase.nit
b/src/frontend/parallelization_phase.nit
index
b9cd4ce
..
237eba2
100644
(file)
--- a/
src/frontend/parallelization_phase.nit
+++ b/
src/frontend/parallelization_phase.nit
@@
-22,6
+22,7
@@
private import parser_util
import modelize
import astbuilder
private import annotation
import modelize
import astbuilder
private import annotation
+private import astvalidation
redef class ToolContext
# Transforms a function annotated with "threaded"
redef class ToolContext
# Transforms a function annotated with "threaded"
@@
-47,8
+48,7
@@
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
@@
-66,6
+66,7
@@
private class ParallelizationPhase
if has_rvalue then
vtype = "redef type E: " + nmethdef.n_signature.n_type.n_id.text
end
if has_rvalue then
vtype = "redef type E: " + nmethdef.n_signature.n_type.n_id.text
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
@@
-83,7
+84,7
@@
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
@@
-96,10
+97,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
@@
-139,7
+141,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