sapling/eden
Adam Simpkins e07f8bd7b6 refactor the EDEN_BUG() macro
Summary:
This splits `EDEN_BUG()` into three separate version.  All three crash in
debug mode builds, but in release builds they behave differently:

- `EDEN_BUG()` throws an exception
- `EDEN_BUG_FUTURE(Type)` returns a `folly::Future<Type>` that has been
  fulfilled with an exception.
- `EDEN_BUG_EXCEPTION()` returns a `folly::exception_wrapper`.

The main advantage of this is that this allows the compiler to detect that
`EDEN_BUG()` can never return.  Previously `EDEN_BUG()` was used for all 3 of
these different cases, and its behavior depended on whether `toException()`
was ever called.  As a result we could not easily get the compiler to identify
code paths where we know at compile time that it will never return.

Reviewed By: chadaustin

Differential Revision: D18652103

fbshipit-source-id: 070107c7520f51b05696905fa243de5f8df15958
2019-11-22 15:38:33 -08:00
..
benchmarks Remove dead includes in eden 2019-10-11 16:45:01 -07:00
cli more helpful error message when calling status with out of date parent. 2019-11-14 16:46:15 -08:00
docs Document how globs work 2019-03-07 14:20:57 -08:00
fs refactor the EDEN_BUG() macro 2019-11-22 15:38:33 -08:00
integration compare blob contents sha1 in Diff.cpp 2019-11-22 08:09:37 -08:00
locale add a copyright header to glibc_en.po 2019-04-26 14:38:27 -07:00
py Call WSAStartup and fix the type information for the socket APIs 2019-10-18 12:39:09 -07:00
scm minor clean up to HgNativeBackingStore 2019-11-22 13:00:07 -08:00
scripts Tidy up license headers 2019-10-11 05:28:23 -07:00
test_support Update pyre version for eden 2019-10-16 16:56:29 -07:00
test-data enable treemanifest in snapshots 2019-08-28 18:46:03 -07:00
third-party add osxfuse kernel header 2019-03-19 10:26:24 -07:00
win flip EDEN_WIN_NOMONONOKE to EDEN_HAVE_MONONOKE 2019-08-27 17:04:19 -07:00
.gitignore eden: wire up mac contbuild 2019-02-05 21:52:30 -08:00
Eden.project.toml Eden.project.toml file for Nuclide 2018-04-26 11:05:23 -07:00