rokucommunity / rokucommunity/brighterscript
namespaces incorrectly passed as var in ternary
Open
Nobody has claimed this yet.
BrighterScript
bug
- Dominant language
- TypeScript
- Stars
- 208
- Forks
- 68
- Avg merge
- 8h 39m
- Merged PRs (30d)
- 39
Description
' Makes sure the value supplied is a promise
function ensurePromise(value as object) as object
return promises.isPromise(value) ? value : promises.resolve(value)
end function
Currently the above transpiles to:
' Makes sure the value supplied is a promise
function promises_ensurePromise(value as object) as object
return (function(__bsCondition, promises, value)
if __bsCondition then
return value
else
return promises_resolve(value)
end if
end function)(promises_isPromise(value), promises, value)
end function
This results in unused variable warnings such as:
BRIGHTSCRIPT: WARNING: unused variable 'promises' in anonymous function in promises.brs(133)
It should transpile as:
' Makes sure the value supplied is a promise
function promises_ensurePromise(value as object) as object
return (function(__bsCondition, value)
if __bsCondition then
return value
else
return promises_resolve(value)
end if
end function)(promises_isPromise(value), value)
end function
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the BrightScript snippet's transpilation and trace the ternary lowering that creates the anonymous function and its arguments. The fix is done when the namespace is not passed as an unused argument and the generated output matches the expected example without the warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100