It's called in a few places: vector<float, 4> // that "4" is a constexpr float[10] // that "10" is a constexpr enum asdf : int { XYZ = -3 // that "-3" is a constexpr } switch (foo) { case MyEnum.XYZ: // that "MyEnum.XYZ" is a constexpr } Because of all that, parseConstexpr can return something like operator-((x + y).z) We should do a bunch of filtering to make sure the right kind of constexprs are allowed in the various places where they are allowed.
Migrated to https://github.com/gpuweb/WHLSL/issues/79