Fix out-of-class destructor definition

This commit is contained in:
Jonathan Müller 2017-06-15 21:08:36 +02:00
commit b5a5e42955
2 changed files with 16 additions and 6 deletions

View file

@ -331,6 +331,10 @@ struct d : c
/// virtual ~d() override final;
~d() final;
};
/// virtual d::~d() override;
d::~d() {}
)";
auto file = parse({}, "cpp_destructor.cpp", code);
@ -364,12 +368,15 @@ struct d : c
else if (dtor.name() == "~d")
{
REQUIRE(dtor.virtual_info());
REQUIRE(dtor.virtual_info().value()
== (cpp_virtual_flags::override | cpp_virtual_flags::final));
if (dtor.is_declaration())
REQUIRE(dtor.virtual_info().value()
== (cpp_virtual_flags::override | cpp_virtual_flags::final));
else
REQUIRE(dtor.virtual_info().value() == cpp_virtual_flags::override);
REQUIRE(!dtor.noexcept_condition());
}
else
REQUIRE(false);
});
REQUIRE(count == 4u);
REQUIRE(count == 5u);
}