fix: Fixed a bug where EnumUtils.GetFlags, and overloads, would also return defined composites

This commit is contained in:
Chris Cameron
2021-06-15 14:13:37 -04:00
parent 7ae9e86e1d
commit 5f2c5e6dcb

View File

@@ -352,10 +352,11 @@ namespace ICD.Common.Utils
/// <returns></returns>
public static IEnumerable<object> GetFlags(Type type, object value)
{
return s_EnumFlagsCacheSection.Execute(() => s_EnumFlagsCache.GetOrAddNew(type, () => new Dictionary<object, object[]>())
.GetOrAddNew(value, () => GetValues(type)
.Where(f => HasFlag(value, f))
.ToArray()));
return s_EnumFlagsCacheSection.Execute(() => s_EnumFlagsCache
.GetOrAddNew(type, () => new Dictionary<object, object[]>())
.GetOrAddNew(value, () => GetValues(type)
.Where(f => !HasMultipleFlags((int)f) && HasFlag(value, f))
.ToArray()));
}
/// <summary>