Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #4906 (comment).
Investigation
$$<identifierName>
. For example,let else = "hello"
is valid ReScript, but not valid JS because else is a keyword. Therefore, you couldn't exportelse
from a JS file, even if it's valid ReScript. So, the compiler prepends$$
to any identifier it thinks might be invalid. And via that, it also exports the identifier as$$<identifierName>
. The alternative would be to not export those identifiers at all, which doesn't really make sense.default
is a special case that might just be possible to support, because we're always adding a dedicated default export whenever we seedefault
. So, even if$$default
isn't exported anymore,we should be able to tweak the compiler to just refer to(done).default
where it now refers to$$default