Variable propagation in same query block

When you put the reg variable declaration in a separate query block, it works.

Data:
<_:reg1> <name> "Reg1" .
<_:reg2> <name> "Reg2" .

<_:node1> <name> "Node1" .
<_:node2> <name> "Node2" .
<_:node3> <name> "Node3" .

<_:node1> <child> <_:node2> .
<_:node1> <child> <_:node3> .
<_:node1> <reg> <_:reg1>.
<_:node2> <reg> <_:reg1>.
<_:node3> <reg> <_:reg2>.

Query:
{
  var(func: has(name)) @filter(eq(name, "Node1")) {
    name
    R as reg # works
  }
  q(func: has(name)) @filter(eq(name, "Node1")) @cascade {
    name
    #R as reg # doesn't work
    child {
      name
      reg @filter(uid(R))
    }
  }
}

I think both versions should work tho.