New Issue: Split initialization not working right for multi-variable declarations?

16371, “bradcray”, “Split initialization not working right for multi-variable declarations?”, “2020-09-11T00:58:35Z”

On a branch that I’m working on, I’m disabling the ability to directly read and write sync variables, requiring .readFE() and .writeEF() to be explicitly invoked instead. The one place that direct writes are supported are in initialization, such that:

var x: sync int = 42;

is supported. And due to split initialization, this also means that:

var x: sync int;
x = 42;

is supported, which makes sense. However, I’m finding something odd. While I can do:

var x: sync int, y: sync int;
x = 42;
y = 33;

and:

var x: sync int;
var y: sync int;

x = 45;
y = 33;

I can’t do:

var x, y: sync int;

x = 45;
y = 33;

This makes me think that something is broken w.r.t. split initialization and variables sharing a common type expression.

(running into this makes me think we’ve seen this in some other context, but with a quick search, I couldn’t find a related issue. For some reason, I think @dlongnecke-cray was involved?)