You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
explanation:"Every RSScript source file must declare `mode: managed` or `mode: uses-local` so reviewers can see whether local ownership features are allowed.",
159
+
},
160
+
DiagnosticExplanation{
161
+
code:"RS0002",
162
+
title:"missing return type",
163
+
explanation:"Function signatures must spell out their return type. The checker applies this review rule broadly so API contracts do not rely on inference.",
164
+
},
165
+
DiagnosticExplanation{
166
+
code:"RS0003",
167
+
title:"missing parameter type",
168
+
explanation:"Parameters must have explicit types so call effects, freshness, and resource rules can be checked against a stable signature.",
169
+
},
170
+
DiagnosticExplanation{
171
+
code:"RS0004",
172
+
title:"unknown effect",
173
+
explanation:"The effect list contains an effect name outside the currently recognized MVP surface.",
174
+
},
175
+
DiagnosticExplanation{
176
+
code:"RS0101",
177
+
title:"file mode violation",
178
+
explanation:"`mode: managed` files cannot use local-only features such as `local`, `manage`, `take`, or `ResourcePool<T>`.",
179
+
},
180
+
DiagnosticExplanation{
181
+
code:"RS0201",
182
+
title:"unnamed argument",
183
+
explanation:"RSScript requires named call arguments so signature and review diffs remain readable.",
184
+
},
185
+
DiagnosticExplanation{
186
+
code:"RS0202",
187
+
title:"missing call-site data effect",
188
+
explanation:"Arguments for non-Copy parameters must use an explicit `read`, `mut`, or `take` effect matching the callee signature.",
189
+
},
190
+
DiagnosticExplanation{
191
+
code:"RS0301",
192
+
title:"managed-to-local conversion",
193
+
explanation:"Managed values cannot be rebound as local values. Create the value locally at its origin if local ownership is required.",
194
+
},
195
+
DiagnosticExplanation{
196
+
code:"RS0401",
197
+
title:"use after manage",
198
+
explanation:"`manage value` moves a local value into the managed runtime. The original local binding cannot be used afterwards on any reachable path.",
199
+
},
200
+
DiagnosticExplanation{
201
+
code:"RS0501",
202
+
title:"local value retained",
203
+
explanation:"APIs marked `effects(retains(param))` may store the argument beyond the call. Passing a clean local value directly would let local ownership escape.",
204
+
},
205
+
DiagnosticExplanation{
206
+
code:"RS0601",
207
+
title:"fresh return is not clean",
208
+
explanation:"A `fresh` function may only return a newly created value, a known fresh call, or a clean local value that has not escaped through manage, take, retain, or capture.",
209
+
},
210
+
DiagnosticExplanation{
211
+
code:"RS0602",
212
+
title:"freshness unknown",
213
+
explanation:"The MVP checker could not prove the returned value is fresh. Current proof support trusts clean locals, struct constructors, and known fresh calls.",
214
+
},
215
+
DiagnosticExplanation{
216
+
code:"RS0701",
217
+
title:"resource field",
218
+
explanation:"Resource values cannot be stored directly in ordinary class or struct fields. Use `with` or an approved resource container such as `ResourcePool<T>`.",
219
+
},
220
+
DiagnosticExplanation{
221
+
code:"RS0702",
222
+
title:"resource escape",
223
+
explanation:"A resource introduced by `with` must not escape the block through return, manage, retention, or managed closure capture.",
224
+
},
225
+
DiagnosticExplanation{
226
+
code:"RS0801",
227
+
title:"local captured by managed closure",
228
+
explanation:"A closure bound with `let` is managed and may outlive clean local values. Use a local/noescape callback shape instead.",
229
+
},
230
+
DiagnosticExplanation{
231
+
code:"RS0901",
232
+
title:"take of handle field",
233
+
explanation:"Handle fields are managed references. They cannot be consumed with `take` as if they were inline local fields.",
234
+
},
235
+
DiagnosticExplanation{
236
+
code:"RS1001",
237
+
title:"operator overload attempt",
238
+
explanation:"The MVP language surface rejects likely user-defined operator overloads to keep review semantics explicit.",
0 commit comments