Files
modeling-app/rust/kcl-lib/tests/multi_transform/program_memory.snap
Adam Chalmers aea82e004a KCL: Convert x/y lines to use keyword arguments (#5615)
Previously, `xLine`, `xLineTo`, `yLine` and `yLineTo` used positional arguments. Now:

- `xLineTo` and `yLineTo` have been removed
- `xLine` and `yLine` both use keyword arguments:
  - `length`, optional (i.e. a relative distance along the X or Y axis)
  - `endAbsolute` optional (i.e. an absolute point along the X or Y axis)
  - `tag` optional
- Exactly one of `length` or `endAbsolute` must be given. Not both, not neither.

For example:

```
// Old way
|> xLine(6.04, %)
|> yLineTo(20, %, $base)

// New way
|> xLine(length = 6.04)
|> yLine(endAbsolute = 20, tag = $base)
```

This also improves some of the general-purpose keyword arguments code in modeling app's TS codebase.
2025-03-07 22:07:16 -06:00

241 lines
8.2 KiB
Plaintext

---
source: kcl/src/simulation_tests.rs
description: Program memory after executing multi_transform.kcl
---
{
"environments": [
{
"bindings": {
"HALF_TURN": {
"type": "Number",
"value": 180.0,
"__meta": []
},
"QUARTER_TURN": {
"type": "Number",
"value": 90.0,
"__meta": []
},
"THREE_QUARTER_TURN": {
"type": "Number",
"value": 270.0,
"__meta": []
},
"ZERO": {
"type": "Number",
"value": 0.0,
"__meta": []
},
"transform": {
"type": "Function",
"expression": {
"body": {
"body": [
{
"argument": {
"elements": [
{
"end": 68,
"properties": [
{
"end": 66,
"key": {
"end": 50,
"name": "translate",
"start": 41,
"type": "Identifier"
},
"start": 41,
"type": "ObjectProperty",
"value": {
"elements": [
{
"end": 59,
"left": {
"end": 55,
"raw": "30",
"start": 53,
"type": "Literal",
"type": "Literal",
"value": 30
},
"operator": "*",
"right": {
"end": 59,
"name": "i",
"start": 58,
"type": "Identifier",
"type": "Identifier"
},
"start": 53,
"type": "BinaryExpression",
"type": "BinaryExpression"
},
{
"end": 62,
"raw": "0",
"start": 61,
"type": "Literal",
"type": "Literal",
"value": 0
},
{
"end": 65,
"raw": "0",
"start": 64,
"type": "Literal",
"type": "Literal",
"value": 0
}
],
"end": 66,
"start": 52,
"type": "ArrayExpression",
"type": "ArrayExpression"
}
}
],
"start": 39,
"type": "ObjectExpression",
"type": "ObjectExpression"
},
{
"end": 105,
"properties": [
{
"end": 103,
"key": {
"end": 84,
"name": "rotation",
"start": 76,
"type": "Identifier"
},
"start": 76,
"type": "ObjectProperty",
"value": {
"end": 103,
"properties": [
{
"end": 101,
"key": {
"end": 93,
"name": "angle",
"start": 88,
"type": "Identifier"
},
"start": 88,
"type": "ObjectProperty",
"value": {
"end": 101,
"left": {
"end": 97,
"raw": "45",
"start": 95,
"type": "Literal",
"type": "Literal",
"value": 45
},
"operator": "*",
"right": {
"end": 101,
"name": "i",
"start": 100,
"type": "Identifier",
"type": "Identifier"
},
"start": 95,
"type": "BinaryExpression",
"type": "BinaryExpression"
}
}
],
"start": 86,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
}
],
"start": 74,
"type": "ObjectExpression",
"type": "ObjectExpression"
}
],
"end": 109,
"start": 33,
"type": "ArrayExpression",
"type": "ArrayExpression"
},
"end": 109,
"start": 26,
"type": "ReturnStatement",
"type": "ReturnStatement"
}
],
"end": 111,
"start": 22
},
"end": 111,
"params": [
{
"type": "Parameter",
"identifier": {
"end": 17,
"name": "i",
"start": 16,
"type": "Identifier"
},
"optional": false
}
],
"start": 15,
"type": "FunctionExpression"
},
"memory": {
"environments": [
{
"bindings": {
"HALF_TURN": {
"type": "Number",
"value": 180.0,
"__meta": []
},
"QUARTER_TURN": {
"type": "Number",
"value": 90.0,
"__meta": []
},
"THREE_QUARTER_TURN": {
"type": "Number",
"value": 270.0,
"__meta": []
},
"ZERO": {
"type": "Number",
"value": 0.0,
"__meta": []
}
},
"parent": null
}
],
"currentEnv": 0,
"return": null
},
"__meta": [
{
"sourceRange": [
15,
111,
0
]
}
]
}
},
"parent": null
}
],
"currentEnv": 0,
"return": null
}