infernu
infernu copied to clipboard
Type inference and checking for a safer JavaScript.
ESLint
There is a Flow plugin for ESLint, I was thinking that a similar plugin might help bring more attention to infernu.
Try checking the following ``` js function test() { return Promise.resolve(1).catch(function(e) { return 2; }); } ``` Result ``` infernu: user error ("test.js" (line 2, column 34): unexpected reserved word...
When I infernu my JavaScript code, I often see warnings about variable names that infernu thinks are undefined, but are actually defined by the JavaScript engines I use. For example:...
Hey there, just trying out your module and loving it because it is type inference out of the box and type annotations on the roadmap, rather than the other way...
Shake has a bunch of somewhat-functional Javascript, written by a functional programmer. It might serve as a good medium-size test case. In particular, https://github.com/ndmitchell/shake/tree/db06af5736cc031308f05aed87c21b0a5e06a295/html contains: - shake-util.js - a bunch...
In the future will _infernu_ analyse code written using Ramda.js (https://github.com/ramda/ramda) as functional library? Their functions are all documented with type signatures, e.g. `@sig a -> (* -> a)` for...
Currently, some statements that include possible `var` declarations are treated as locally / block scoped. This is nice but wrong - JS doesn't have block scopes. We can to find...
Functions such as: ``` function f(x) { return x; } ``` Don't require 'this' and so are generalized over it, to get type `forall a. a(b -> b)` Sometimes such...
There are a few cases that are unsolvable without type annotations. For example, polymorphic row fields - always generalizing EPropAssign (row field assignment) means inferring overly polymorphic types that may...