1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 22:47:44 +00:00

AK+Everywhere: Disallow returning a reference from a fallible expression

This will silently make a copy. Rather than masking this behavior, let's
explicitly disallow it.
This commit is contained in:
Timothy Flynn 2023-01-13 15:48:09 -05:00 committed by Tim Flynn
parent 3de75f6436
commit afc0e461e1
11 changed files with 86 additions and 54 deletions

View file

@ -25,6 +25,8 @@ namespace JS {
VERIFY(_temporary_result.error().code() == ENOMEM); \
return vm.throw_completion<JS::InternalError>(JS::ErrorType::OutOfMemory); \
} \
static_assert(!IsLvalueReference<decltype(_temporary_result.release_value())>, \
"Do not return a reference from a fallible expression"); \
_temporary_result.release_value(); \
})