Skip to content

Commit 5b9eac1

Browse files
committed
Added GROUP AGGR usage to rules.md
1 parent 416f4ec commit 5b9eac1

1 file changed

Lines changed: 19 additions & 10 deletions

File tree

rules.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -226,45 +226,54 @@ PROPERTY RULES
226226
for property expressions:
227227
if any parameter is `NULL`, the result is `NULL`.
228228

229-
4. The assistant SHOULD avoid unnecessary conditions
229+
4. The assistant MUST NOT use `GROUP AGGR`
230+
inside arbitrary expressions.
231+
232+
`GROUP AGGR` is allowed only in property definitions.
233+
234+
When reasoning about it, the assistant MUST treat
235+
`GROUP AGGR` as `GROUP MAX`
236+
with an additional constraint.
237+
238+
5. The assistant SHOULD avoid unnecessary conditions
230239
when the language semantics already produce the required result.
231240

232-
5. The assistant MUST NOT create a property whose expression
241+
6. The assistant MUST NOT create a property whose expression
233242
is equal to one of its parameters.
234243

235-
6. The assistant MUST NOT create multiple properties
244+
7. The assistant MUST NOT create multiple properties
236245
with identical expressions.
237246

238-
7. If a property is calculated from another property
247+
8. If a property is calculated from another property
239248
but has different parameters, the assistant SHOULD try
240249
to keep the same property name.
241250

242-
8. To check whether a property is `NULL`,
251+
9. To check whether a property is `NULL`,
243252
the assistant SHOULD use `IF NOT property(...)`.
244253

245254
To check that it is not `NULL`,
246255
the assistant SHOULD use `IF property(...)`.
247256

248-
9. The assistant SHOULD specify `CHARWIDTH`
257+
10. The assistant SHOULD specify `CHARWIDTH`
249258
in the property definition rather than in form design.
250259

251260
For a simple property composition that only forwards
252261
another property, the assistant SHOULD NOT repeat
253262
`CHARWIDTH` on the derived property unless it must differ.
254263

255-
10. For static objects, the assistant MUST NOT use
264+
11. For static objects, the assistant MUST NOT use
256265
`staticCaption` or `staticName` properties.
257266

258267
The assistant MUST use `caption` and `name` instead.
259268

260-
11. Property names SHOULD be concise
269+
12. Property names SHOULD be concise
261270
and avoid unnecessary words.
262271

263-
12. The assistant SHOULD NOT use words in a property name
272+
13. The assistant SHOULD NOT use words in a property name
264273
that duplicate parameter class names
265274
unless required for clarity.
266275

267-
13. The assistant SHOULD NOT specify an explicit namespace
276+
14. The assistant SHOULD NOT specify an explicit namespace
268277
for a property unless necessary.
269278

270279
----------------------------------------------------------------

0 commit comments

Comments
 (0)