Skip to content

Commit 59c1531

Browse files
SamChou19815facebook-github-bot
authored andcommitted
v0.261.0
Reviewed By: alexmckenley Differential Revision: D69534638 fbshipit-source-id: ed45a6fd2c3db756164733f7446b686af394f80c
1 parent 3fe01da commit 59c1531

File tree

9 files changed

+53
-9
lines changed

9 files changed

+53
-9
lines changed

Changelog.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,47 @@
1+
### 0.261.0
2+
3+
New Features:
4+
* Bigint values inside of template literals now coerce to strings, e.g. ``` `${1n}` ```. Addition with string (e.g. `1n + 'blah'`) is still banned.
5+
* Add ability to resolve node package entrypoints/exports
6+
* Flow now allows inference of type guards for simple expression arrow functions with one parameter. For example, in `["a", null].filter(s => s != null)` it will automatically infer that the arrow function encodes a `x is string` type guard and will apply it on the input array resulting in a`Array<string>`. ([try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQAOhJWY9oPYAATyHkAXh5AG1WckxbweUdcABdKzwHQmAAUJEFAD4eaqAIRC6UASgA3Jz+RhVQBBah0AA89lMUAQaoNPIA9M6eQB3ODHKUQd08nA8iBbOic3IgBomEhwaBJBoABisACYAKwATisAEYQPSgA))
7+
* `module.system.node.root_relative_dirname` will allow conditional mapping like `module.system.node.root_relative_dirname='<PROJECT_ROOT>/foo' -> 'bar'`. Under such config, `import 'a'` will only be resolved to `<PROJECT_ROOT>/bar/a` if `import 'a'` is in a file in the `<PROJECT_ROOT>/foo` directory. This feature will be helpful if you want to combine two flow roots with different `module.system.node.root_relative_dirname` config.
8+
9+
Likely to cause new Flow errors:
10+
* When an opaque type is refined to be not null/undefined, we now refine the opaque type's upper bound rather than returning the opaque type unmodified.
11+
12+
Notable bug fixes:
13+
* Flow will error more consistently on incompatible uses of refined string, number and boolean literal types (e.g. [try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQAOrAHso4NAAAQLewARgAFBlaDgAMpSZA8gD8AHIMHKAJQ84Dsnk8uAwHkiugSqQ8gCEAF4eUdcCq1VANRqFXKeRgSHzVhBtaL9ZQANw8gD0Pp5EC26ptfp57uwksoPNNwdtaHtjudxldYb1Eak3tDAHc4MczRAszyTJQIFHi6WeXL4zyAH4APkriuD9PZLag7JgnPh1v5EgATEKMNK7bweWhh-HLcG2hIefJow7ZTKx572cGhUKVcaG1abTySDm9rUdfIp9abdUyGPkLGbfPTXKwHLM-6AOq53D5wvlqMkCqQvlamwTVYGLUok2AmAK3nHM8xwRt7QAH0reNbw1NAoi2Vdzw1NtcKVTdsODedEztHlkKrZ9W1yEAGhMP9oCSBoAAYrD7ABWABOKwBRAekgA))
14+
* Fixed some cases of type filtering during type guard refinement (e.g. [try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQAOhJWVANE8qNgAAQwB7KODQPm0gCCEEoACEABTyZB8gDkGCVAB8lWh1UqwEqAJSK+RikjK1V8tXKrUAbk5nO5uF5fMBfIVpu1uptUDgMD5solUrl8j1er5wE5fJdfIwJpVSqtfIA9Am+QB1ODHPlQCAAdz5OD5EC2dHDkejlrjieTJkoUrdfIAfgA+cslo1lnUVpN86u12MN5sdzn03IgBomEgiqBJBoABisACYAKwATisAEYQPSgA))
15+
* Fixed a bug of missing errors when certain functions were checked against interfaces (e.g. [try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SSeGBIJAABABlTnAAA6UE5nPsmWynLQQjguDYAAoAJTIHl8wXC4UsCRCShCr4Adx5CoA3KrOfTBWaoILbPYJVKZZyALw8qyS6VsY1QWWumVKip4riQvn0+WGzkAejDnIA8gBpQVeu1sX0+EwB7B8mDEJVoYjPKDB0MRzkAdWluE5UAg+oAogAlWtR2u5EANEwkODQJINAAMVgATABWACcVgAjCB6UA))
16+
* Fixed negation of refinement of type-guard functions with multiple parameters (e.g. [try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SQABKyNE8qNhWYDWbSAGL2AAKThEADlRMhWQAKJq4GTSoolNi8VkKKQYRrcRWs5WlACUrIAvAA+Xk6nm01nCEQ3ADcAB0oM6YA9lHBoKyYMQZfJpbabqyAD6s+ymKAINW0APXEwhsNSCoII3AZ3O9lwGCywUisWSkR+6MG1MZ9mslgSISUKBOqDs+ll+SsjAkRMRhD21kAem7rIA7nBjjaIP3WThWRAtnR01BG1BciAGiYSJ6F8glwAGKwAJgArABOKwARhA9KAA))
17+
* Relaxed type-guard consistency checks when the function returns with `true` or `false`. (e.g. [try-Flow](https://flow.org/try/#1N4Igxg9gdgZglgcxALlAIwIZoKYBsD6uEEAztvhgE6UYCe+JADpdhgCYowa5kA0I2KAFcAtiRQAXSkOz9sADwxgJ+NPTbYuQ3BMnTZA+Y2yU4IwRO4A6SFBIrGVDGM7c+h46fNRLuKxJIGWh8MeT0ZfhYlCStpHzNsFBAMIQkIEQwJODAQfiEyfBE4eWw2fDgofDBMsAALfAA3KjgsXGxxZC4eAw0G-GhcWn9aY3wWZldu-g1mbGqJUoBaCRHEzrcDEgBrbAk62kXhXFxJ923d-cPRHEpTgyEoMDaqZdW7vKgoOfaSKgOKpqmDA+d4gB5fMA-P6LCCMLLQbiLOoYCqgh6-GDYRYIXYLSgkRZkCR4jpddwPfJLZjpOBkO4AX34kA0SRgD2UcGgAAIWBIhJRKmTyA8NJQqtA2HB4VAABTyZBc4QiG5cgA+XPspigCDVXLQxGeUAAlAr5FzaXqDawoFzgAAdG3mmBcmUrYwQZ1mgC8Pq5AHIlTc-UbbQ6ueGebt+TahQBuLkAegTiogEi5wK5JkoEEo6agtC5Ihz2DDXPpme6TpdbuwHq53p9fs1FQQwdDjvDvOjXLjieTUFTecz1BzeYLRZYpfLeDI7Yjkb5Aq5Uhk8aTKbTGazo+B4+LU4d9NyIAaJhInKgSQaAAYrAAmACsAE4rABGED0oA))
18+
19+
Parser:
20+
* We now provide parsing support for `declare global {...}` (using it will still result in an error). The AST will have the shape of
21+
```
22+
{
23+
"type":"DeclareNamespace",
24+
"loc": ...,
25+
"range": ...,
26+
"global":true,
27+
"id":{
28+
"type":"Identifier",
29+
"loc": ...,
30+
"range":...,
31+
"name":"global",
32+
"typeAnnotation":null,
33+
"optional":false
34+
},
35+
"body":{
36+
"type":"BlockStatement",
37+
...
38+
},
39+
}
40+
```
41+
42+
Library Definitions:
43+
* The global `React$PureComponent` is removed. If you want to refer to it, it needs to be imported from `react`.
44+
145
### 0.260.0
246

347
New Features:

flow_parser.opam

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
opam-version: "2.0"
22
name: "flow_parser"
3-
version: "0.260.0"
3+
version: "0.261.0"
44
maintainer: "[email protected]"
55
authors: ["Flow Team <[email protected]>"]
66
homepage: "https://github.com/facebook/flow/tree/master/src/parser"

flowtype.opam

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
opam-version: "2.0"
22
name: "flowtype"
3-
version: "0.260.0"
3+
version: "0.261.0"
44
maintainer: "[email protected]"
55
authors: "Flow Team <[email protected]>"
66
license: "MIT"
@@ -15,7 +15,7 @@ depends: [
1515
"camlp-streams" {>= "5.0.1"}
1616
"dtoa" {>= "0.3.2"}
1717
"fileutils" {>= "0.6.4"}
18-
"flow_parser" {= "0.260.0"}
18+
"flow_parser" {= "0.261.0"}
1919
"inotify" {os = "linux" & >= "2.4.1"}
2020
"ounit2" {with-test}
2121
"lwt" {>= "5.7.0"}

packages/flow-parser-bin/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flow-parser-bin",
3-
"version": "0.260.0",
3+
"version": "0.261.0",
44
"description": "The Flow JavaScript parser, via bindings to the native OCaml implementation",
55
"main": "index.js",
66
"repository": "https://github.com/facebook/flow.git",

packages/flow-parser/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flow-parser",
3-
"version": "0.260.0",
3+
"version": "0.261.0",
44
"description": "JavaScript parser written in OCaml. Produces ESTree AST",
55
"homepage": "https://flow.org",
66
"license": "MIT",

packages/flow-remove-types/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "flow-remove-types",
3-
"version": "2.260.0",
3+
"version": "2.261.0",
44
"description": "Removes Flow type annotations from JavaScript files with speed and simplicity.",
55
"author": {
66
"name": "Flow Team",

packages/try-flow-website-js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "try-flow-website-js",
3-
"version": "0.260.0",
3+
"version": "0.261.0",
44
"description": "An NPM package to hold compiled `flow.js` and libdefs for every Flow version.",
55
"license": "MIT",
66
"repository": "facebook/flow",

src/common/flow_version.ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@
55
* LICENSE file in the root directory of this source tree.
66
*)
77

8-
let version = "0.260.0"
8+
let version = "0.261.0"

website/docs/install.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ npm install --save-dev flow-bin
126126
"name": "my-flow-project",
127127
"version": "1.0.0",
128128
"devDependencies": {
129-
"flow-bin": "^0.260.0"
129+
"flow-bin": "^0.261.0"
130130
},
131131
"scripts": {
132132
"flow": "flow"

0 commit comments

Comments
 (0)