Alex Crichton f66d83ff70
Store richer adapter types, don't use instructions for TypeScript (#1945)
This commit updates how TypeScript signature are generated from adapters
in wasm-bindgen. A richer set of `AdapterType` types are now stored
which record information about optional types and such. These direct
`AdapterType` values are then used to calculate the TypeScript
signature, rather than following the instructions in an adapter function
(which only works anyway for wasm-bindgen generated adapters).

This should be more robust since it reads the actual true signature of
the adapter to generate the TypeScript signature, rather than attempting
to ad-hoc-ly infer it from the various instructions, which was already
broken.

A number of refactorings were involved here, but the main pieces are:

* The `AdapterType` type is a bit more rich now to describe more
  Rust-like types.
* The `TypescriptArg` structure is now gone and instead return values
  are directly inferred from type signatures of adapters.
* The `typescript_{required,optional}` methods are no longer needed.
* The return of `JsBuilder::process` was enhanced to return more values,
  rather than storing some return values on the structure itself.

Closes #1926
2020-01-07 11:34:02 -06:00
..
2020-01-06 13:17:28 -06:00
2020-01-07 08:16:25 -08:00
2020-01-07 08:16:25 -08:00
2020-01-06 13:17:28 -06:00
2020-01-07 08:16:25 -08:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-07 08:16:25 -08:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00
2020-01-06 13:17:28 -06:00