Feature List - hook up the ThrowsError() extension to IsImplemented
This commit is contained in:
parent
e1a90430ea
commit
9422f02fa2
|
@ -1,6 +1,7 @@
|
||||||
using System;
|
using System;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
|
using BizHawk.Common.ReflectionExtensions;
|
||||||
|
|
||||||
namespace BizHawk.Emulation.Common.IEmulatorExtensions
|
namespace BizHawk.Emulation.Common.IEmulatorExtensions
|
||||||
{
|
{
|
||||||
|
@ -24,7 +25,14 @@ namespace BizHawk.Emulation.Common.IEmulatorExtensions
|
||||||
// TODO: a better place for these
|
// TODO: a better place for these
|
||||||
public static bool IsImplemented(this MethodInfo info)
|
public static bool IsImplemented(this MethodInfo info)
|
||||||
{
|
{
|
||||||
return !info.GetCustomAttributes(false).OfType<FeatureNotImplemented>().Any();
|
// If a method is marked as Not implemented, it is not implemented no matter what the body is
|
||||||
|
if (info.GetCustomAttributes(false).OfType<FeatureNotImplemented>().Any())
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If a method is not marked but all it does is throw an exception, consider it not implemented
|
||||||
|
return !info.ThrowsError();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool IsImplemented(this PropertyInfo info)
|
public static bool IsImplemented(this PropertyInfo info)
|
||||||
|
|
Loading…
Reference in New Issue