mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
e07f8bd7b6
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 |
||
---|---|---|
.. | ||
test | ||
CachedParsedFileMonitor.h | ||
CheckoutConfig.cpp | ||
CheckoutConfig.h | ||
CMakeLists.txt | ||
ConfigSetting.h | ||
eden_config.thrift | ||
EdenConfig.cpp | ||
EdenConfig.h | ||
FieldConverter.cpp | ||
FieldConverter.h | ||
FileChangeMonitor.cpp | ||
FileChangeMonitor.h | ||
ReloadableConfig.cpp | ||
ReloadableConfig.h |