microsoft / microsoft/TypeScript
Infer-from-usage should find references of related tokens
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 111k
- Forks
- 14.3k
- Avg merge
- 2d 4h
- Merged PRs (30d)
- 132
Description
Based on code in acorn:
var TokenType = function TokenType(label, conf) {
this.label = label
this.binop = conf.binop || null
}
/**
* @param {string} name
* @param {number} prec
*/
function x(name, prec) {
return new TokenType(name, { binop: prec })
}
Expected behavior:
TokenType's inferred type should be (label: string, conf: { binop: string }) based on usage in x.
Actual behavior:
TokenType's inferred type is (label: any, conf: { binop: null }), based only on usage inside TokenType itself.
I don't think infer-from-usage supports any JS assignment patterns; this is just the first one I ran into.
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 acorn example in the issue and trace the infer-from-usage handling for the TokenType constructor and the x function. Verify how assignment patterns and references of related tokens are collected; done means the inferred type includes label: string and conf: { binop: string } rather than any and null.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, typescript
- Domain
- compilers
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100