summary refs log tree commit diff stats
path: root/compiler/semobjconstr.nim
diff options
context:
space:
mode:
authorAlexander Ivanov <alehander42@gmail.com>2020-12-29 11:31:11 +0200
committerGitHub <noreply@github.com>2020-12-29 10:31:11 +0100
commit672dc5cd87790dc7f44ad62ae66f07e96e665409 (patch)
tree31d101c8cd3dc6d71481812ab4ca74b98e0dcacf /compiler/semobjconstr.nim
parente70ac0f34c9f195f6e423b3ac7e54b912e62c71d (diff)
downloadNim-672dc5cd87790dc7f44ad62ae66f07e96e665409.tar.gz
Nil type check implementation (#15287)
* Nil checking
* Enable current older not nil checking again, run new checking only under flag, skip our test
* Enable tests, work on try/except and bugs, fix notnil tests

* Enable strictNotNil tests (currently with lowercase category) and add some expected output
* Work on try/except/finally: still some things unclear and a lot of code can raise out of try
* Fix the notnil build by going back to the old version of a test which I shouldn't have changed

* Fix test : use action compile
* Work on mutation and aliasing: not finished
* Render var parititions graph, try to understand it, fix a nilcheck if bug
* Rebase, progress on working with partitions
* Improve time logic
* Fix some bugs, use graph indices instead of symbol in nil map
* Fix bugs, test simpler ident aliasing for now, support two mutation levels
* Support ContentMutation and ReAssignment: for now just detect possible re assignment for var parameters of calls
* Enable several simple passing tests
* Cleanup a bit, fix condition/branch infix-related bug
* Remove some files, address some comments by Araq
* Use internalError and no quit for now
* Separate tests with expected warnings and with expected ok, fix a bug with if with a single branch related to copyMap
* Fix new data structures, bugs: make tests pass, disable some for now
* Work on fixing errors with non-sym nodes, aliasing: tests fail
* Work on alias support: simple set-based logic, todo more tests and ref sets?
* Use ref sets: TODO can we think of handle seq-s similar to varpartitions' Araq ones
* Handle defers in one place, stop raising in reverse to make an async test compile with strictNotNil, add a commented out test
* Dot expressions: call/reassignment. Other refactorings and distinct, SeqOfDistinct support. Checkout an older varpartitions
* Work on field tracking
* Backup : trying to fix bugs when running some stdlib stuff for running an async test
* Start a section about strict not nil checking in experimental manual
* Fix experimental strict not nil manual section and move it to another file based on Araq feedback
* Fix unstructured flow and double warning problems, fix manual, cleanup
* Fix if/elif/else : take in account structure according to Araq feedback
* Refactor a bit
* Work on bracket expr support, re-enable tests, clarify in manual/tests/implementation static index support for now
* Work on compiling stdlib and compiler with strictNotNil
* Small fixes to the manual for strictNotNil
* Fix idgen for strict check nil rebase
* Enable some simple tests, remove old stuff, comment out code/print
* Copy the original varpartitions source instead of my changes
* Remove some files
Diffstat (limited to 'compiler/semobjconstr.nim')
-rw-r--r--compiler/semobjconstr.nim1
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/semobjconstr.nim b/compiler/semobjconstr.nim
index 42529e1e5..792488c9f 100644
--- a/compiler/semobjconstr.nim
+++ b/compiler/semobjconstr.nim
@@ -153,6 +153,7 @@ proc collectMissingFields(c: PContext, fieldsRecList: PNode,
       if assignment == nil:
         constrCtx.missingFields.add r.sym
 
+
 proc semConstructFields(c: PContext, n: PNode,
                         constrCtx: var ObjConstrContext,
                         flags: TExprFlags): InitStatus =
e='Blame the previous revision' href='/ahoang/Nim/blame/tests/caasdriver.nim?h=devel&id=fe18117fb28df5ffee28e2e4d720452ddfc89fff'>^
28041461b ^
a8e12afc7 ^
41c51a11d ^
28041461b ^
41c51a11d ^

d2def332f ^

1d813167c ^
4864447ba ^
dfeb573ed ^
cd2c6128d ^
a8e12afc7 ^
cd2c6128d ^
41c51a11d ^

d2def332f ^
41c51a11d ^
c6034277f ^
cd2c6128d ^
41c51a11d ^
8f76092b8 ^

41c51a11d ^

b4ea608b6 ^





b22af9776 ^

b4ea608b6 ^
8f76092b8 ^
cd2c6128d ^
8f76092b8 ^

cd2c6128d ^
8f76092b8 ^
41c51a11d ^
a8e12afc7 ^
2793170fe ^
a8e12afc7 ^
2793170fe ^
a8e12afc7 ^
78a99587a ^
a8e12afc7 ^


4864447ba ^


a8e12afc7 ^
cd2c6128d ^
d2ef99071 ^



8f76092b8 ^
cd2c6128d ^
8f76092b8 ^
78a99587a ^
8f76092b8 ^







cd2c6128d ^
8f76092b8 ^
1658a29ec ^



8f76092b8 ^


28041461b ^





8f76092b8 ^


d2ef99071 ^
8f76092b8 ^

a8e12afc7 ^
d2ef99071 ^
a8e12afc7 ^


78a99587a ^
2793170fe ^
a8e12afc7 ^

c6034277f ^
78a99587a ^
a8e12afc7 ^




1d813167c ^









a8e12afc7 ^

1d813167c ^
69e15ac32 ^
1d813167c ^

8f76092b8 ^
69e15ac32 ^
a8e12afc7 ^

41c51a11d ^
a8e12afc7 ^
41c51a11d ^
a8e12afc7 ^

f11a3b232 ^

a8e12afc7 ^

69e15ac32 ^
a8e12afc7 ^
69e15ac32 ^
a8e12afc7 ^

ebff5f1f2 ^


a8e12afc7 ^

1d813167c ^
8f76092b8 ^
ebff5f1f2 ^
8f76092b8 ^
a8e12afc7 ^

2793170fe ^


18725aab2 ^

d2ef99071 ^
31bb67a30 ^
18725aab2 ^





2793170fe ^
ebff5f1f2 ^
18725aab2 ^
ebff5f1f2 ^



2793170fe ^



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195