Previously in a member expression like `foo.x` or `foo[3]`, `foo` had to be an identifier. You could not do something like `f().x` (and if you tried, you got a cryptic error). Rather than make the error better, we should just accept any expression to be the LHS of a member expression (aka its 'object'). This does knock our "parse lots of function calls" from 58 to 55 calls before it stack overflows. But I think it's fine, we'll address this in https://github.com/KittyCAD/modeling-app/pull/6226 when I get back to it. Closes https://github.com/KittyCAD/modeling-app/issues/7273
9.8 KiB
9.8 KiB
flowchart LR
subgraph path2 [Path]
2["Path<br>[475, 513, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
3["Segment<br>[519, 550, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
4["Segment<br>[556, 588, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
5["Segment<br>[594, 644, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
6["Segment<br>[650, 696, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
7["Segment<br>[702, 724, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 6 }]
8["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
9["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
10["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
11["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
12["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
13["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
14["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
15["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
16["Segment<br>[730, 748, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 7 }]
17["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
18["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
19["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
20["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
21["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
22["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
23["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
24["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
25["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
26["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
27["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
28["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
29["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
30["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
31["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
32["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
33["Segment<br>[754, 772, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 8 }]
end
1["Plane<br>[451, 469, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
34["Sweep Extrusion<br>[778, 806, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 9 }]
35[Wall]
%% face_code_ref=Missing NodePath
36[Wall]
%% face_code_ref=Missing NodePath
37[Wall]
%% face_code_ref=Missing NodePath
38[Wall]
%% face_code_ref=Missing NodePath
39[Wall]
%% face_code_ref=Missing NodePath
40[Wall]
%% face_code_ref=Missing NodePath
41[Wall]
%% face_code_ref=Missing NodePath
42[Wall]
%% face_code_ref=Missing NodePath
43[Wall]
%% face_code_ref=Missing NodePath
44[Wall]
%% face_code_ref=Missing NodePath
45[Wall]
%% face_code_ref=Missing NodePath
46[Wall]
%% face_code_ref=Missing NodePath
47[Wall]
%% face_code_ref=Missing NodePath
48[Wall]
%% face_code_ref=Missing NodePath
49[Wall]
%% face_code_ref=Missing NodePath
50[Wall]
%% face_code_ref=Missing NodePath
51[Wall]
%% face_code_ref=Missing NodePath
52["Cap Start"]
%% face_code_ref=Missing NodePath
53["Cap End"]
%% face_code_ref=Missing NodePath
54["SweepEdge Opposite"]
55["SweepEdge Opposite"]
56["SweepEdge Opposite"]
57["SweepEdge Opposite"]
58["SweepEdge Opposite"]
59["SweepEdge Opposite"]
60["SweepEdge Opposite"]
61["SweepEdge Opposite"]
62["SweepEdge Opposite"]
63["SweepEdge Opposite"]
64["SweepEdge Opposite"]
65["SweepEdge Opposite"]
66["SweepEdge Opposite"]
67["SweepEdge Opposite"]
68["SweepEdge Opposite"]
69["SweepEdge Opposite"]
70["SweepEdge Opposite"]
71["SweepEdge Adjacent"]
72["SweepEdge Adjacent"]
73["SweepEdge Adjacent"]
74["SweepEdge Adjacent"]
75["SweepEdge Adjacent"]
76["SweepEdge Adjacent"]
77["SweepEdge Adjacent"]
78["SweepEdge Adjacent"]
79["SweepEdge Adjacent"]
80["SweepEdge Adjacent"]
81["SweepEdge Adjacent"]
82["SweepEdge Adjacent"]
83["SweepEdge Adjacent"]
84["SweepEdge Adjacent"]
85["SweepEdge Adjacent"]
86["SweepEdge Adjacent"]
87["SweepEdge Adjacent"]
1 --- 2
2 --- 3
2 --- 4
2 --- 5
2 --- 6
2 --- 7
2 --- 8
2 --- 9
2 --- 10
2 --- 11
2 --- 12
2 --- 13
2 --- 14
2 --- 15
2 --- 16
2 --- 17
2 --- 18
2 --- 19
2 --- 20
2 --- 21
2 --- 22
2 --- 23
2 --- 24
2 --- 25
2 --- 26
2 --- 27
2 --- 28
2 --- 29
2 --- 30
2 --- 31
2 --- 32
2 --- 33
2 ---- 34
17 --- 35
17 x--> 52
17 --- 66
17 --- 83
18 --- 36
18 x--> 52
18 --- 54
18 --- 71
19 --- 37
19 x--> 52
19 --- 61
19 --- 78
20 --- 38
20 x--> 52
20 --- 67
20 --- 84
21 --- 39
21 x--> 52
21 --- 57
21 --- 74
22 --- 40
22 x--> 52
22 --- 64
22 --- 81
23 --- 41
23 x--> 52
23 --- 62
23 --- 79
24 --- 42
24 x--> 52
24 --- 68
24 --- 85
25 --- 43
25 x--> 52
25 --- 70
25 --- 87
26 --- 44
26 x--> 52
26 --- 56
26 --- 73
27 --- 45
27 x--> 52
27 --- 69
27 --- 86
28 --- 46
28 x--> 52
28 --- 65
28 --- 82
29 --- 47
29 x--> 52
29 --- 55
29 --- 72
30 --- 48
30 x--> 52
30 --- 58
30 --- 75
31 --- 49
31 x--> 52
31 --- 60
31 --- 77
32 --- 50
32 x--> 52
32 --- 63
32 --- 80
33 --- 51
33 x--> 52
33 --- 59
33 --- 76
34 --- 35
34 --- 36
34 --- 37
34 --- 38
34 --- 39
34 --- 40
34 --- 41
34 --- 42
34 --- 43
34 --- 44
34 --- 45
34 --- 46
34 --- 47
34 --- 48
34 --- 49
34 --- 50
34 --- 51
34 --- 52
34 --- 53
34 --- 54
34 --- 55
34 --- 56
34 --- 57
34 --- 58
34 --- 59
34 --- 60
34 --- 61
34 --- 62
34 --- 63
34 --- 64
34 --- 65
34 --- 66
34 --- 67
34 --- 68
34 --- 69
34 --- 70
34 --- 71
34 --- 72
34 --- 73
34 --- 74
34 --- 75
34 --- 76
34 --- 77
34 --- 78
34 --- 79
34 --- 80
34 --- 81
34 --- 82
34 --- 83
34 --- 84
34 --- 85
34 --- 86
34 --- 87
35 --- 66
82 <--x 35
35 --- 83
36 --- 54
36 --- 71
87 <--x 36
37 --- 61
77 <--x 37
37 --- 78
38 --- 67
83 <--x 38
38 --- 84
39 --- 57
73 <--x 39
39 --- 74
40 --- 64
80 <--x 40
40 --- 81
41 --- 62
78 <--x 41
41 --- 79
42 --- 68
84 <--x 42
42 --- 85
43 --- 70
86 <--x 43
43 --- 87
44 --- 56
72 <--x 44
44 --- 73
45 --- 69
85 <--x 45
45 --- 86
46 --- 65
81 <--x 46
46 --- 82
47 --- 55
71 <--x 47
47 --- 72
48 --- 58
74 <--x 48
48 --- 75
49 --- 60
76 <--x 49
49 --- 77
50 --- 63
79 <--x 50
50 --- 80
51 --- 59
75 <--x 51
51 --- 76
54 <--x 53
55 <--x 53
56 <--x 53
57 <--x 53
58 <--x 53
59 <--x 53
60 <--x 53
61 <--x 53
62 <--x 53
63 <--x 53
64 <--x 53
65 <--x 53
66 <--x 53
67 <--x 53
68 <--x 53
69 <--x 53
70 <--x 53