wasm-bindgen/crates
Alex Crichton c4dcaee1b9
Prepare to have targeted error diagnostics (#604)
This commit starts to add infrastructure for targeted diagnostics in the
`#[wasm_bindgen]` attribute, intended eventually at providing much better errors
as they'll be pointing to exactly the code in question rather than always to a
`#[wasm_bindgen]` attribute.

The general changes are are:

* A new `Diagnostic` error type is added to the backend. A `Diagnostic` is
  created with a textual error or with a span, and it can also be created from a
  list of diagnostics. A `Diagnostic` implements `ToTokens` which emits a bunch
  of invocations of `compile_error!` that will cause rustc to later generate
  errors.

* Fallible implementations of `ToTokens` have switched to using a new trait,
  `TryToTokens`, which returns a `Result` to use `?` with.

* The `MacroParse` trait has changed to returning a `Result` to propagate errors
  upwards.

* A new `ui-tests` crate was added which uses `compiletest_rs` to add UI tests.
  These UI tests will verify that our output improves over time and does not
  regress. This test suite is added to CI as a new builder as well.

* No `Diagnostic` instances are created just yet, everything continues to panic
  and return `Ok`, with the one exception of the top-level invocations of
  `syn::parse` which now create a `Diagnostic` and pass it along.

This commit does not immediately improve diagnostics but the intention is that
it is laying the groundwork for improving diagnostics over time. It should
ideally be much easier to contribute improved diagnostics after this commit!

cc #601
2018-08-01 17:15:27 -05:00
..
backend Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00
cli Upgrade failure and fix deprecation warnings (#605) 2018-08-01 16:15:09 -05:00
cli-support Upgrade failure and fix deprecation warnings (#605) 2018-08-01 16:15:09 -05:00
futures Support asynchronous tests (#600) 2018-08-01 15:52:24 -05:00
js-sys Support asynchronous tests (#600) 2018-08-01 15:52:24 -05:00
macro Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00
macro-support Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00
shared Support asynchronous tests (#600) 2018-08-01 15:52:24 -05:00
test Support asynchronous tests (#600) 2018-08-01 15:52:24 -05:00
test-macro Support asynchronous tests (#600) 2018-08-01 15:52:24 -05:00
test-project-builder Upgrade failure and fix deprecation warnings (#605) 2018-08-01 16:15:09 -05:00
typescript Fix compile on latest nightly (#489) 2018-07-17 09:11:30 -05:00
web-sys Upgrade failure and fix deprecation warnings (#605) 2018-08-01 16:15:09 -05:00
webidl Prepare to have targeted error diagnostics (#604) 2018-08-01 17:15:27 -05:00
webidl-tests Migrate webidl tests to wasm_bindgen_test (#590) 2018-07-30 11:06:29 -07:00