mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 10:27:35 +00:00
AK: Add test for the will_be_destroyed and one_ref_left magic functions
Fixes a regression introduced by 5c1b3ce
. The commit description there
asserts that the changes allow calling will_be_destroyed and
one_ref_left, which are not required to be const qualified. The
implementation in fact does require the methods to be const qualified,
because we forgot to add the const_cast inside the decltypes :^)
This commit is contained in:
parent
765d2977bc
commit
6919639190
2 changed files with 32 additions and 2 deletions
|
@ -36,7 +36,7 @@
|
|||
namespace AK {
|
||||
|
||||
template<class T>
|
||||
constexpr auto call_will_be_destroyed_if_present(const T* object) -> decltype(object->will_be_destroyed(), TrueType {})
|
||||
constexpr auto call_will_be_destroyed_if_present(const T* object) -> decltype(const_cast<T*>(object)->will_be_destroyed(), TrueType {})
|
||||
{
|
||||
const_cast<T*>(object)->will_be_destroyed();
|
||||
return {};
|
||||
|
@ -48,7 +48,7 @@ constexpr auto call_will_be_destroyed_if_present(...) -> FalseType
|
|||
}
|
||||
|
||||
template<class T>
|
||||
constexpr auto call_one_ref_left_if_present(const T* object) -> decltype(object->one_ref_left(), TrueType {})
|
||||
constexpr auto call_one_ref_left_if_present(const T* object) -> decltype(const_cast<T*>(object)->one_ref_left(), TrueType {})
|
||||
{
|
||||
const_cast<T*>(object)->one_ref_left();
|
||||
return {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue