diff --git a/d2compiler/compile.go b/d2compiler/compile.go index 6b40777e4..20d7baada 100644 --- a/d2compiler/compile.go +++ b/d2compiler/compile.go @@ -1072,12 +1072,10 @@ func (c *compiler) validateNear(g *d2graph.Graph) { func (c *compiler) validateEdges(g *d2graph.Graph) { for _, edge := range g.Edges { - if gd := edge.Src.Parent.ClosestGridDiagram(); gd != nil { - c.errorf(edge.GetAstEdge(), "edges in grid diagrams are not supported yet") - continue - } - if gd := edge.Dst.Parent.ClosestGridDiagram(); gd != nil { - c.errorf(edge.GetAstEdge(), "edges in grid diagrams are not supported yet") + srcGrid := edge.Src.Parent.ClosestGridDiagram() + dstGrid := edge.Dst.Parent.ClosestGridDiagram() + if (srcGrid != nil || dstGrid != nil) && srcGrid != dstGrid { + c.errorf(edge.GetAstEdge(), "edges into grid diagrams are not supported yet") continue } } diff --git a/d2compiler/compile_test.go b/d2compiler/compile_test.go index 15c966eab..c7aad82fd 100644 --- a/d2compiler/compile_test.go +++ b/d2compiler/compile_test.go @@ -2483,9 +2483,8 @@ d2/testdata/d2compiler/TestCompile/grid_gap_negative.d2:3:16: vertical-gap must hey -> c: ok `, - expErr: `d2/testdata/d2compiler/TestCompile/grid_edge.d2:3:2: edges in grid diagrams are not supported yet -d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges in grid diagrams are not supported yet -d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges in grid diagrams are not supported yet`, + expErr: `d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges into grid diagrams are not supported yet +d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges into grid diagrams are not supported yet`, }, { name: "grid_nested", diff --git a/testdata/d2compiler/TestCompile/grid_edge.exp.json b/testdata/d2compiler/TestCompile/grid_edge.exp.json index e1a46d1d8..d501f033e 100644 --- a/testdata/d2compiler/TestCompile/grid_edge.exp.json +++ b/testdata/d2compiler/TestCompile/grid_edge.exp.json @@ -2,17 +2,13 @@ "graph": null, "err": { "errs": [ - { - "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,2:1:22-2:7:28", - "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:3:2: edges in grid diagrams are not supported yet" - }, { "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,4:1:32-4:11:42", - "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges in grid diagrams are not supported yet" + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:5:2: edges into grid diagrams are not supported yet" }, { "range": "d2/testdata/d2compiler/TestCompile/grid_edge.d2,5:1:44-5:11:54", - "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges in grid diagrams are not supported yet" + "errmsg": "d2/testdata/d2compiler/TestCompile/grid_edge.d2:6:2: edges into grid diagrams are not supported yet" } ] }