X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=folly%2FExpected.h;h=8f5d9a6496f5fd1a35d4d3574454462e2ba96f97;hb=51647aaa0ac0eaf8364f6dd643e0f615cd256819;hp=ee765cc92a154fcac6f9f8fe77202b6cd203c025;hpb=ed8c80a0e0988e4ce687f51ca832a00e4a6b7930;p=folly.git diff --git a/folly/Expected.h b/folly/Expected.h index ee765cc9..8f5d9a64 100644 --- a/folly/Expected.h +++ b/folly/Expected.h @@ -15,7 +15,7 @@ */ /** - * Like folly::Optional, but can store a value *or* and error. + * Like folly::Optional, but can store a value *or* an error. * * @author Eric Niebler (eniebler@fb.com) */ @@ -32,8 +32,9 @@ #include #include #include -#include // for construct_in_place_t +#include #include +#include #define FOLLY_EXPECTED_ID(X) FB_CONCATENATE(FB_CONCATENATE(Folly, X), __LINE__) @@ -233,6 +234,11 @@ struct ExpectedStorage { Value&& value() && { return std::move(value_); } + // TODO (t17322426): remove when VS2015 support is deprecated + // VS2015 static analyzer incorrectly flags these as unreachable in certain + // circumstances. VS2017 does not have this problem on the same code. + FOLLY_PUSH_WARNING + FOLLY_MSVC_DISABLE_WARNING(4702) // unreachable code Error& error() & { return error_; } @@ -242,6 +248,7 @@ struct ExpectedStorage { Error&& error() && { return std::move(error_); } + FOLLY_POP_WARNING }; template @@ -527,6 +534,11 @@ struct ExpectedStorage { Value&& value() && { return std::move(value_); } + // TODO (t17322426): remove when VS2015 support is deprecated + // VS2015 static analyzer incorrectly flags these as unreachable in certain + // circumstances. VS2017 does not have this problem on the same code. + FOLLY_PUSH_WARNING + FOLLY_MSVC_DISABLE_WARNING(4702) // unreachable code Error& error() & { return error_; } @@ -536,6 +548,7 @@ struct ExpectedStorage { Error&& error() && { return std::move(error_); } + FOLLY_POP_WARNING }; namespace expected_detail_ExpectedHelper {