-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathtermination.txt
More file actions
229 lines (165 loc) · 6.63 KB
/
termination.txt
File metadata and controls
229 lines (165 loc) · 6.63 KB
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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
Scanning TestCyberTruck.cmt Source:TestCyberTruck.res
Function Table
1 justReturn: _
Termination Analysis for justReturn
Function Table
1 alwaysLoop: alwaysLoop
Termination Analysis for alwaysLoop
Function Table
1 alwaysProgress: +progress; alwaysProgress
Termination Analysis for alwaysProgress
Function Table
1 alwaysProgressWrongOrder: alwaysProgressWrongOrder; +progress
Termination Analysis for alwaysProgressWrongOrder
Function Table
1 doNotAlias: _
Termination Analysis for doNotAlias
Function Table
1 progressOnBothBranches: [+progress || +progress2]; progressOnBothBranches
Termination Analysis for progressOnBothBranches
Function Table
1 progressOnOneBranch: [+progress || _]; progressOnOneBranch
Termination Analysis for progressOnOneBranch
Function Table
1 callParseFunction<parseFunction>: parseFunction
2 testParametricFunction: [+progress || _]; testParametricFunction2
3 testParametricFunction2: callParseFunction<parseFunction:testParametricFunction>
Termination Analysis for testParametricFunction
Function Table
1 doNothing: _
2 testCacheHit: [doNothing; doNothing; +Progress.Nested.f || _]; testCacheHit
Termination Analysis for testCacheHit
Function Table
1 evalOrderIsNotLeftToRight: {+progress, evalOrderIsNotLeftToRight}; _
Termination Analysis for evalOrderIsNotLeftToRight
Function Table
1 evalOrderIsNotRightToLeft: {evalOrderIsNotRightToLeft, +progress}; _
Termination Analysis for evalOrderIsNotRightToLeft
Function Table
1 butFirstArgumentIsAlwaysEvaluated: +progress; butFirstArgumentIsAlwaysEvaluated
Termination Analysis for butFirstArgumentIsAlwaysEvaluated
Function Table
1 butSecondArgumentIsAlwaysEvaluated: +progress; butSecondArgumentIsAlwaysEvaluated
Termination Analysis for butSecondArgumentIsAlwaysEvaluated
Function Table
1 parseExpression: [_ || _]; [+Parser.next; parseExpression; parseExpression; _ || parseInt]
2 parseInt: [_ || _]; +Parser.next; _
3 parseList<f>: parseList$loop<f:f>
4 parseList$loop<f>: [_ || f; parseList$loop<f:f>; _]
5 parseListExpression: parseList<f:parseExpression>
6 parseListExpression2: parseExpression; parseList<f:parseExpression>
7 parseListInt: parseList<f:parseInt>
8 parseListIntTailRecursive: parseListIntTailRecursive$loop
9 parseListIntTailRecursive$loop: [_ || parseInt; parseListIntTailRecursive$loop]
10 parseListListInt: parseList<f:parseListInt>
Termination Analysis for parseListInt
Termination Analysis for parseListListInt
Termination Analysis for parseExpression
Termination Analysis for parseListExpression
Termination Analysis for parseListExpression2
Termination Analysis for parseListIntTailRecursive
Function Table
1 loopAfterProgress: loopAfterProgress
2 testLoopAfterProgress: +progress; loopAfterProgress
Termination Analysis for testLoopAfterProgress
Function Table
1 counterCompiled: +initState; [_ || counterCompiled; _]; _
2 onClick1: [_ || counterCompiled]
Termination Analysis for counterCompiled
Function Table
1 countRendersCompiled: [_ || countRendersCompiled; _]; _
Termination Analysis for countRendersCompiled
Function Table
1 alwaysReturnNone: [+Parser.next; alwaysReturnNone || None]
2 parseIntO: [+Parser.next; Some || None]
3 parseIntOWrapper: parseIntO
4 parseListIntO: parseListO<f:parseIntO>
5 parseListO<f>: parseListO$loop<f:f>
6 parseListO$loop<f>: [+Parser.next; _ || switch f {some: parseListO$loop<f:f>, none: _}]
7 testAlwaysReturnNone: alwaysReturnNone
8 thisMakesNoProgress: None; [_ || +Parser.next; Some]
Termination Analysis for parseListIntO
Termination Analysis for testAlwaysReturnNone
Termination Analysis for parseIntOWrapper
Termination Analysis for thisMakesNoProgress
Function Table
1 f: [g; _ || _ || +Parser.next; f]
2 g: +Parser.next; gParam<g:g>
3 gParam<g>: [g; _ || f]
Termination Analysis for f
Function Table
1 concat<f, g>: switch f {some: switch g {some: Some, none: None}, none: None}
2 kleene<f>: switch f {some: kleene<f:f>, none: _}
3 one: [+Parser.next; Some || None]
4 oneTwo: concat<f:one,g:two>
5 oneTwoStar: kleene<f:oneTwo>
6 two: [+Parser.next; Some || None]
Termination Analysis for oneTwoStar
Function Table
1 testTry: [+progress; testTry || +progress; testTry]
Termination Analysis for testTry
Termination Analysis Stats
Files:1
Recursive Blocks:21
Functions:49
Infinite Loops:10
Hygiene Errors:1
Cache Hits:8/31
Error Termination
TestCyberTruck.res:29:28-39
Possible infinite loop when calling alwaysLoop
CallStack:
1 alwaysLoop (TestCyberTruck.res 29)
Error Termination
TestCyberTruck.res:40:3-28
Possible infinite loop when calling alwaysProgressWrongOrder
CallStack:
1 alwaysProgressWrongOrder (TestCyberTruck.res 39)
Error Hygiene
TestCyberTruck.res:47:15-24
doNotAlias can only be called directly, or passed as labeled argument
Error Termination
TestCyberTruck.res:68:3-24
Possible infinite loop when calling progressOnOneBranch
CallStack:
1 progressOnOneBranch (TestCyberTruck.res 64)
Error Termination
TestCyberTruck.res:80:48-63
Possible infinite loop when calling parseFunction which is testParametricFunction
CallStack:
3 callParseFunction<parseFunction:testParametricFunction> (TestCyberTruck.res 79)
2 testParametricFunction2 (TestCyberTruck.res 77)
1 testParametricFunction (TestCyberTruck.res 73)
Error Termination
TestCyberTruck.res:89:3-17
Possible infinite loop when calling testCacheHit
CallStack:
1 testCacheHit (TestCyberTruck.res 83)
Error Termination
TestCyberTruck.res:97:31-58
Possible infinite loop when calling evalOrderIsNotLeftToRight
CallStack:
1 evalOrderIsNotLeftToRight (TestCyberTruck.res 95)
Error Termination
TestCyberTruck.res:104:19-46
Possible infinite loop when calling evalOrderIsNotRightToLeft
CallStack:
1 evalOrderIsNotRightToLeft (TestCyberTruck.res 102)
Error Termination
TestCyberTruck.res:180:15-21
Possible infinite loop when calling parseList$loop<f:f> which is parseList$loop<f:parseListInt>
CallStack:
3 parseList$loop<f:parseListInt> (TestCyberTruck.res 183)
2 parseList<f:parseListInt> (TestCyberTruck.res 201)
1 parseListListInt (TestCyberTruck.res 201)
Error Termination
TestCyberTruck.res:238:31-49
Possible infinite loop when calling loopAfterProgress
CallStack:
1 loopAfterProgress (TestCyberTruck.res 236)
Error Termination
TestCyberTruck.res:286:32-61
Possible infinite loop when calling countRendersCompiled
CallStack:
1 countRendersCompiled (TestCyberTruck.res 283)
Analysis reported 11 issues (Error Hygiene:1, Error Termination:10)