163 Commits

Author SHA1 Message Date
Brian Ng
5180ecdca4 Use prettier (#600) 2017-06-28 12:41:42 -04:00
Andy
97c23461f9 TypeScript parser plugin (#523) 2017-06-28 10:57:50 -04:00
Nicolò Ribaudo
03b3b39b17 Allow jsx to be the body of a typed arrow function (#595)
Fixes #593
2017-06-28 10:17:51 -04:00
Henry Zhu
88298536c5 Revert "Distinguish between ternary's : and arrow fn's return type (#573)"
This reverts commit a9a55fbd3fcb0dcd83758549dfd2c4fa3d0dcaa2.
2017-06-27 15:58:57 -04:00
Nicolò Ribaudo
a9a55fbd3f Distinguish between ternary's : and arrow fn's return type (#573)
* Distinguish between ternary's : and arrow fn's return type

* Correctly parse nested arrow functions inside conditional expressions

Defer the conversion of arrow function parameters to assignable nodes so that
it is possible to use the (invalid) ast to get the exact position of the (wrong)
arrow functions.

* Check params of arrow fns w/ type params or w/o return type

* Fix also async functions

* Add test from prettier

https://github.com/prettier/prettier/issues/2194

* Don't check arrow params if they are valid at the first attemp

* Use state instead of relying on the "noArrowParamsConversion" parameter

* Remove noArrowParamsConversion
2017-06-27 15:44:56 -04:00
Daniel Tschinder
e1e2c32bf3 Correctly put typeParameters on FunctionExpression (#585) 2017-06-17 15:43:31 -04:00
Daniel Tschinder
e11794c735 Add back shorthand field to Property (#580)
Also add some better types for estree
2017-06-17 01:05:32 +02:00
Nicolò Ribaudo
6b4fba4deb The { after a function generic type annotation is a statement (#578)
This would have previously been interpreted as an expression,
because usually after ">" there can't be a statement.

Fixes #36
2017-06-15 09:39:39 -05:00
Daniel Tschinder
69cba43f82 Fix parsing of private fields (#566)
The computed key is not part of the spec.
key for ClassProperties is an Expression
Do not parse computed and literal keys for PrivateClassProperties
2017-06-06 11:42:07 -04:00
Daniel Tschinder
775dcfa6d6 Improve performance by removing all spread/rest usages (#561) 2017-06-05 19:21:41 +02:00
Michal Srb
bbc3cd45cf Fix location info on FunctionTypeParam nodes (#565) 2017-06-05 12:41:46 -04:00
Daniel Tschinder
0656717552 Fix stmt value being the raw value (#557) 2017-06-03 16:16:45 +02:00
Andy
50694f99b1 Extract 'parseClassMember' method (#533) 2017-05-26 23:44:56 -04:00
Brian Ng
aad95c63ec Fix some flow unused warnings (#543) 2017-05-26 23:44:36 -04:00
Kevin Gibbons
6c4acecf00 Fix #437: only prohibit 'export type from "module" ' when flow is enabled (#438)
* Only prohibit 'export type' when flow is enabled

* Fix lint
2017-05-19 10:05:44 +02:00
Max Schaefer
b08fdf87e8 Fix handling of anonymous parameters in flowParseObjectTypeMethodish. (#526)
By analogy with `flowParseFunctionTypeParams` (cf. commit 407c97c9c2fe453fc2ae940c3d3b11c90d9dbc8e).
2017-05-16 22:53:13 +02:00
Andy
aa78011666 Fix type check errors (#521) 2017-05-14 19:59:56 +02:00
Brian Ng
9d1f819320 Allow flow class field to be named constructor (#510) 2017-05-10 16:18:08 +02:00
Andy
e81b5f8af2 Type-check flow plugin (#495)
* Type-check flow plugin

* Fix typo
2017-04-27 12:04:06 -04:00
Andy
cccee00606 Type-check JSX plugin (#496)
* Type-check JSX plugin

* Improve test coverage
2017-04-27 10:58:33 -04:00
Andy
cd5bfb786a Type-check estree plugin (#494) 2017-04-27 10:40:51 -04:00
Brian Ng
68967bf515 Remove jsx context when parsing arrow functions (#475) 2017-04-24 00:45:19 +02:00
Andy
2c1193b7da Move plugin helpers out of Parser.prototype and into the plugin itself (#482) 2017-04-24 00:34:35 +02:00
Daniel Tschinder
d1a5220b89 Add support for declare export + fixes (#224)
* Add support for declare export

* Do not allow declare module inside declare module

* Reallow module exports outside module

* Add handling of `declare export default`

Add check for multiple module.export declarations

* Disallow export let/const/type

Refactor parsing object properties to share more code and add support
for getters and setters

* Rename tests

* Update test fixtures

* Optimize for performance

* disallow declare export interface outside of module

* Refactor code to be more readable and less lookahead

* Add comments

* Add test for export star as

* Test for number literal getter/setter

* Add more tests

* Fix tests

* Allow union types and correctly eat semi after type

* Use non computed keys

* Fix tests
2017-04-21 14:41:59 +02:00
Andy
ad284d5c36 Convert each plugin to a function from a class to an overriding class (#459)
* Convert each plugin to a function from a class to an overriding class

* Handle undefined options

* Fix indentation

* Fix double space
2017-04-21 13:53:51 +02:00
Brian Ng
2ef436641e Ensure locations in ObjectTypeAnnotations do not include semi or comma (#472) 2017-04-19 14:08:51 +02:00
Brian Ng
637119a017 Fix typo in flow spread operator error [skip ci] 2017-04-10 10:48:51 -05:00
Brian Ng
bdfa92464b Fix predicate attachment to match flow parser (#428) 2017-04-04 15:48:50 +02:00
Alex Rattray
cbf4203237 Add extra.raw back to JSXText and JSXAttribute (#344) 2017-04-04 15:47:59 +02:00
Conrad Buck
213fdab063 Add support for flow type spread (#418)
* Add support for flow type spread

* Broaden spreadable types from primary to all, more tests

* Eliminate variance sigil for type spreads, better errors, fix tests
2017-04-03 22:05:05 +02:00
Brian Ng
a495d7f65d Allow statics in flow interfaces (#427) 2017-03-23 22:10:07 +01:00
Daniel Tschinder
32eabf620b Fix push-pop logic in flow (#405) 2017-03-22 10:25:10 +01:00
Daniel Tschinder
68e8550e84
Merge branch 'master' into 7.0
* master:
  Upgrade flow to 0.41
  Throw error if new.target is used outside of a function (#402)
  Fix watch command (#403)
  Update yarn lock
  Fix parsing of class properties (#351)

# Conflicts:
#	src/parser/statement.js
#	test/fixtures/experimental/class-constructor-call/illegal-key/options.json
2017-03-10 13:47:45 +01:00
Kevin Gibbons
81056eeee7 Fix parsing of class properties (#351) 2017-03-10 12:43:45 +01:00
Henry Zhu
f1e2cca767 Add back ranges property (#363)
* Add back ranges property

* Correctly adjust range in flow plugin

* Make it an option
2017-03-01 10:57:06 -05:00
Henry Zhu
5e0cce4974 Merge branch 'master' into 7.0 2017-02-28 14:37:13 -05:00
Brian Ng
cd133ff8e1 Ensure consistent start args for parseParenItem (#386) 2017-02-28 12:56:56 +01:00
Daniel Tschinder
7bf553a575 Merge branch 'master' into 7.0 2017-02-20 23:49:27 +01:00
Daniel Tschinder
b023470c7e estree: correctly change literals in all cases (#368) 2017-02-20 23:47:57 +01:00
Daniel Tschinder
50ffa49201
Merge branch 'master' into 7.0
# Conflicts:
#	src/plugins/flow.js
2017-02-20 22:47:17 +01:00
Daniel Tschinder
2ef00a6631 Fix negative number literal typeannotations (#366)
* Fix negative number literal typeannotations

Also use parseLiteral() to parser string and number literal typeannotations
so that future changes (estree) to literals are also reflected to flow.

* Instead of invalid fallthrough throw immediately

* Increase coverage and better error mesage
2017-02-20 22:43:59 +01:00
Daniel Tschinder
d88befdd30
Merge branch 'master' into 7.0
# Conflicts:
#	src/parser/index.js
2017-02-12 13:32:06 +01:00
Daniel Tschinder
1cca7000d1 Reintroduce Variance node (#333)
* Reintroduce Variance node

* Optimize code and coverage

tt.plusMin can only be + or - so no need to have an elseif
2017-02-12 13:28:14 +01:00
Charles Pick
cd3f14921e Rename NumericLiteralTypeAnnotation to NumberLiteralTypeAnnotation (#332) 2017-02-12 13:14:35 +01:00
Daniel Tschinder
fac13290d7 Estree compatibility as plugin (#277)
* Initial estree support for ClassMethod

* Handle literals for estree

* Fix regex

* correct output of regexp and regenerate test

* Add tests for validation stuff with estree plugin

* Parse Properties correctly

This also refactors how babylon parses obj properties in general
so that this logic can be more easily extended.

* Run all throws-tests a second time with estree plugin

* Fix all throw tests

* Remove rebase conflict

* Correctly set kind

This ensures state.inMethod gets propagated correctly

* Add computed: false to methods with ident async

* Implement directive field on Directives

* Test invalid directives

* more tests
2017-02-12 12:48:41 +01:00
Daniel Tschinder
407c97c9c2 Fix #321 by allowing question marks in type params (#338)
* Fix #321 by allowing question marks in type params

* Require commas between params
2017-02-10 15:03:15 +01:00
Daniel Tschinder
bc771bd0f9 Fix #336 by correctly setting arrow-param (#337) 2017-02-10 15:01:39 +01:00
Daniel Tschinder
4bd682e90b keywords are not allowed as local specifier (#307)
Also fix some error messages to be more specific
2017-02-10 14:58:44 +01:00
Panagiotis Vekris
e049ec3456 [Flow] Function predicate declaration (#103)
* [Flow] Function predicate declaration

The accepted syntax for function declarations is extended to allow
the following predicate declaration:

  FunctionReturnType :=
    Type
    Predicate
    Type Predicate

  Predicate :=
    %checks
    %checks ( ConditionalExpression )

* [Flow] Minor tweaks and more examples to function predicates

* [Flow] Clean-up and better message for function predicates

* [Flow] Adding abstract function predicate example

* [Flow] Rearranging the `predicate` field to ease babel generator.
2017-02-10 14:55:13 +01:00
Daniel Tschinder
0309a5ba8a
Merge branch 'master' into 7.0
# Conflicts:
#	src/parser/statement.js
#	src/plugins/jsx/index.js
2017-01-27 23:12:20 +01:00