[metadata] Implement MONO_CLASS_IS_INTERFACE(c) in terms of public API
commit735337d5e68ea0ddf7a450316ea2f10149d79048
authorAleksey Kliger <alklig@microsoft.com>
Thu, 8 Feb 2018 19:35:35 +0000 (8 14:35 -0500)
committerAleksey Kliger <alklig@microsoft.com>
Wed, 21 Feb 2018 20:05:18 +0000 (21 15:05 -0500)
treea95edfc2ad54107ae4a77d65c439cfa3cb344d95
parentbae5cd2d6e041cabaa133e6def4599b105e0c48e
[metadata] Implement MONO_CLASS_IS_INTERFACE(c) in terms of public API

Althought it was previously defined in a public API header, the macro was not
usable for the last several years since it was implemented in terms of
the MonoClass definition which was not visible in the public API.

There is a subtle semantic change here: mono_type_is_generic_parameter will
return FALSE if it's given a byref type parameter, the previous definition of
the macro would return TRUE.  (E.g. if you had "class F<T>" then
IS_INTERFACE("T&") used to return TRUE but will now return FALSE. )
mono/metadata/metadata.h