154 Commits

Author SHA1 Message Date
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
Daniel Tschinder
e614032504 Change location of ObjectTypeIndexer to match flow (#228) 2017-01-27 23:08:20 +01:00
Toru Kobayashi
c424156751 Rename flow AST Type ExistentialTypeParam to ExistsTypeAnnotation (#322) 2017-01-27 19:42:15 +01:00
Daniel Tschinder
0a00aff2fe Do not allow overwritting of primitive types (#314)
* Do not allow overwritting of primitive types

* Better name for method
2017-01-20 22:22:25 +01:00
Daniel Tschinder
55df6631fa Address comments on flow type imports (#312) 2017-01-20 22:20:13 +01:00
Daniel Tschinder
d5cd2c3231 Allow imports in declare module (#315)
* Allow imports in declare module {}

* Rename bodyElement to bodyNode
2017-01-20 22:19:50 +01:00
Daniel Tschinder
999b655ca6 Disallow import type { type a } from … (#305) 2017-01-17 20:34:20 +01:00
Dan Harper
28c467e8fe Fix ObjectTypeCallProperty static (#298)
* add failing test for ObjectTypeCallProperty static (#297)

* fix ObjectTypeCallProperty static
2017-01-16 10:42:13 +01:00
Daniel Tschinder
5977479f57 Call inner function instead of 1:1 copy to plugin (#294) 2017-01-16 10:21:44 +01:00
Daniel Tschinder
b918554d73 Correct indent eslint rule config (#276)
* Change indent rule to correctly lint

* Remove rule again
2017-01-14 15:11:50 +01:00