cppgc: Check for correct base class inheritance
The only valid way to define a GCed type T is by inheriting from GarbageCollected<T>. Since this is prone to typos (see tests), add a simple check that covers most interesting use cases. The static assert covers A -> B -> GarbageCollected<C> The static assert does not cover A -> B -> C -> GarbageCollected<B> (In order to do so, we would need __direct_bases() support which is not yet available for C++.) Bug: pdfium:1670, chromium:1056170 Change-Id: I494de48992f8ba9a1f0f9daad60584d828717403 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2810415Reviewed-by: Omer Katz <omerkatz@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#73854}
Showing
Please
register
or
sign in
to comment