[Reactivity Transform] `$$` breaks the original semantics
Vue version
v3.2.37
Link to minimal reproduction
Steps to reproduce
Open the reproduction link, there's an error on SFC playground. Cannot access 'r' before initialization
The code
const r = $ref(1)
$$(r)
is transformed to
const r = _ref(1)
(r)
We can see that $$
is removed, and only brackets remain. It will break the original semantics.
It's actually only one line code: const r = _ref(1)(r)
.
What is expected?
const r = _ref(1)
r
// ⬇️ formatted to
const r = _ref(1);
r;
What is actually happening?
const r = _ref(1)
(r)
// ⬇️ formatted to
const r = _ref(1)(r);
System Info
N/A
Any additional comments?
IMHO, the brackets should be removed to avoid changing the semantics when using $$
function.
I've closed my PR. If you decide the best solution is to remove the brackets when transforming $$
, I can try to make a PR for that and include the tests from my previous PR.
Unfortunately, Reactivity Transform has been dropped officially now, so I closed this issue/PR. If you want to keep using it, please consider the community version Vue Macros.