public CefTypeKind GetTypeKind(ITypeSymbol symbol) { if (!symbol.Name.StartsWith("cef_")) { return(CefTypeKind.Unknown); } INamedTypeSymbol value; if (RefCounted.TryGetValue(symbol.Name, out value) && Equals(value, symbol)) { return(CefTypeKind.RefCounted); } if (Scoped.TryGetValue(symbol.Name, out value) && Equals(value, symbol)) { return(CefTypeKind.Scoped); } if (Enums.TryGetValue(symbol.Name, out value) && Equals(value, symbol)) { return(CefTypeKind.Enum); } if (Sized.TryGetValue(symbol.Name, out value) && Equals(value, symbol)) { return(CefTypeKind.Sized); } if (Simple.TryGetValue(symbol.Name, out value) && Equals(value, symbol)) { return(CefTypeKind.Simple); } throw new NotImplementedException(); }