Moved copy_constructing into functions and destructing the results into obj_lower. Removed all defer_stack from c_generator. The last thing should be to move ref handling into obj_lower or maybe a pass after, then the rest of c_generator can be cleaned up and fixing interpreter (except for closures) should be easy.

This commit is contained in:
Nathan Braswell
2016-06-26 04:44:54 -07:00
parent 4cc0d26c4c
commit 15fe2aeba4
7 changed files with 140 additions and 185 deletions

View File

@@ -12,13 +12,11 @@ constructed object 100 : 100
copy constructed object 100 : 200 from 100 : 100
destructed object 100 : 100
copy constructed object 100 : 300 from 100 : 200
destructed object 100 : 200
copy constructed object 100 : 400 from 100 : 300
copy constructed object 100 : 500 from 100 : 400
destructed object 100 : 400
destructed object 100 : 300
copy constructed object 100 : 600 from 100 : 500
destructed object 100 : 500
done assignment to old variable
matched an_obj correctly 100 : 600
int assignment to old var
@@ -31,7 +29,6 @@ constructed object 110 : 110
copy constructed object 110 : 210 from 110 : 110
destructed object 110 : 110
copy constructed object 110 : 310 from 110 : 210
destructed object 110 : 210
copy constructed object 110 : 410 from 110 : 310
copy constructed object 110 : 510 from 110 : 410
destructed object 110 : 410
@@ -41,7 +38,6 @@ constructed object 110 : 110
copy constructed object 110 : 210 from 110 : 110
destructed object 110 : 110
copy constructed object 110 : 310 from 110 : 210
destructed object 110 : 210
copy constructed object 110 : 410 from 110 : 310
copy constructed object 110 : 510 from 110 : 410
destructed object 110 : 410
@@ -49,7 +45,11 @@ destructed object 110 : 310
copy constructed object 110 : 610 from 110 : 510
destructed object 110 : 610
equality an_obj correctly
destructed object 110 : 510
destructed object 110 : 510
done test copy_construct for non ref equality
10
destructed object 110 : 510
destructed object 110 : 210
destructed object 110 : 510
destructed object 110 : 210
destructed object 100 : 500
destructed object 100 : 200

View File

@@ -39,9 +39,9 @@ copy_construct outFunc : 1!
destroyed outFunc : 0!
destroyed inFunc : 1!
copy_construct outFunc : 2!
destroyed outFunc : 1!
time for the end
destroyed outFunc : 2!
destroyed outFunc : 1!
destroyed inFunc : 0!
destroyed a2 : 0!
destroyed a : 0!

View File

@@ -24,10 +24,10 @@ destruct with 101
destruct with 1
copy construct from 3 to 4
copy construct from 103 to 104
destruct with 3
destruct with 103
done
destruct with 4
destruct with 104
destruct with 3
destruct with 103
destruct with 100
destruct with 0

View File

@@ -65,15 +65,15 @@ Destroyed: 101
Copied: 103 to 104
Copied: 203 to 204
Copied: 303 to 304
Destroyed: 103
Destroyed: 203
Destroyed: 303
Destroyed: 204
Copied: 304 to 305
Destroyed: 304
done
Destroyed: 104
Destroyed: 305
Destroyed: 103
Destroyed: 203
Destroyed: 303
Destroyed: 300
Destroyed: 200
Destroyed: 100