private bool EqualsDefinedCore(NativeDefinedType left, NativeDefinedType right) { if (left.IsAnonymous && right.IsAnonymous) { // don't compare names when both types are anonymous } else if (0 != string.CompareOrdinal(left.Name, right.Name)) { return(false); } // If this is an enum, compare the values if (left.Kind == NativeSymbolKind.EnumType) { NativeEnum leftEnum = (NativeEnum)left; NativeEnum rightEnum = (NativeEnum)right; if (rightEnum.Values.Count != leftEnum.Values.Count) { return(false); } for (int i = 0; i <= leftEnum.Values.Count - 1; i++) { NativeEnumValue e1 = leftEnum.Values[i]; NativeEnumValue e2 = rightEnum.Values[i]; if (0 != string.CompareOrdinal(e1.Name, e2.Name) || 0 != string.CompareOrdinal(e1.Value.Expression, e2.Value.Expression)) { return(false); } } } return(true); }
public NativeGlobalSymbol(NativeEnumValue value) : this(value.NativeName, value) { }
public static bool TryGetEnumByValueName(this INativeSymbolLookup lookup, string enumValueName, out NativeEnum enumeration, out NativeEnumValue value) { if (!lookup.TryGetGlobalSymbol(new NativeName(enumValueName, NativeNameKind.EnumValue), out value)) { enumeration = null; return(false); } return(lookup.TryGetGlobalSymbol( new NativeName(value.EnumName, NativeNameKind.Enum), out enumeration)); }