Both approaches have significant drawbacks: grammar-based autocompletion is restricted in dynamically-typed language environments, whereas NLP-based autocompleters struggle to understand the semantics of the programming language and the developer's code context.
Using this pipeline, the collected Python projects were analyzed and the results of the AST analysis were stored in JSON-formatted files.
Such networks help answer questions such as "How many packages have dependencies to packages with known security issues?"
We study half a year of changes made to six large repositories in Microsoft in which at least 1, 000 pull requests are created each month.
It learns to discriminate between similar and dissimilar types in a high-dimensional space, which results in clusters of types.
The key novelty of Nudge is that it succeeds in reducing pull request resolution time, while ensuring that developers perceive the notifications sent as useful, at the scale of thousands of repositories.
Unfortunately, static type inference for dynamic languages is inherently limited, while probabilistic approaches suffer from imprecision.