microsoft / microsoft/TypeScript
Private `[Symbol.asyncIterator]` and `[Symbol.iterator]` methods incorrectly reported as unused
Open
Nobody has claimed this yet.
Bug
Domain: LS: Suggestion Diagnostics
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
TypeScript Version: 4.2.0-dev.20201219
Search Terms:
Symbol.iterator Symbol.asyncIterator
Code
export class Polling {
private async *[Symbol.asyncIterator]() {}
private *[Symbol.iterator]() {}
async loop() {
for await (const updates of this) {
void updates
}
}
syncLoop() {
for (const updates of this) {
void updates
}
}
}
Expected behavior:
No errors.
Actual behavior:
'[Symbol.asyncIterator]' is declared but its value is never read.
'[Symbol.iterator]' is declared but its value is never read.
Contributor guide
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 with the provided TypeScript 4.2.0-dev reproduction in the Playground, using noUnusedLocals and the async and sync iterator loops. Trace the unused-member diagnostics for the private [Symbol.asyncIterator] and [Symbol.iterator] methods. Done means the reproduction reports no errors while preserving unused-local diagnostics elsewhere.
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
- 58/100