Bug 1296760 - Add TestBasePointerCoersion for Maybe. - r=waldo
MozReview-Commit-ID: 38zvz12ZAhZ
--- a/mfbt/tests/TestMaybe.cpp
+++ b/mfbt/tests/TestMaybe.cpp
@@ -762,18 +762,16 @@ TestVirtualFunction() {
}
static Maybe<int*>
ReturnSomeNullptr()
{
return Some(nullptr);
}
-
-
static bool
TestSomeNullptrConversion()
{
Maybe<int*> m1 = Some(nullptr);
MOZ_RELEASE_ASSERT(m1.isSome());
MOZ_RELEASE_ASSERT(m1);
MOZ_RELEASE_ASSERT(!*m1);
@@ -785,23 +783,35 @@ TestSomeNullptrConversion()
Maybe<decltype(nullptr)> m3 = Some(nullptr);
MOZ_RELEASE_ASSERT(m3.isSome());
MOZ_RELEASE_ASSERT(m3);
MOZ_RELEASE_ASSERT(*m3 == nullptr);
return true;
}
+static bool
+TestBasePointerCoersion()
+{
+ MyDerivedClass foo;
+ const auto fnFoo = [&]() -> Maybe<MySuperClass*> {
+ return Some(&foo);
+ }
+ const auto bar = fnFoo();
+ return true;
+}
+
int
main()
{
RUN_TEST(TestBasicFeatures);
RUN_TEST(TestCopyAndMove);
RUN_TEST(TestFunctionalAccessors);
RUN_TEST(TestApply);
RUN_TEST(TestMap);
RUN_TEST(TestToMaybe);
RUN_TEST(TestComparisonOperators);
RUN_TEST(TestVirtualFunction);
RUN_TEST(TestSomeNullptrConversion);
+ RUN_TEST(TestBasePointerCoersion);
return 0;
}