public static SymbolKeyResolution Resolve(SymbolKeyReader reader) { var returnRefKind = reader.ReadRefKind(); var returnType = reader.ReadSymbolKey(); using var paramRefKinds = reader.ReadRefKindArray(); using var paramTypes = reader.ReadSymbolKeyArray <ITypeSymbol>(); if (paramTypes.IsDefault || !(returnType.GetAnySymbol() is ITypeSymbol returnTypeSymbol)) { return(default);
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason) { var returnRefKind = reader.ReadRefKind(); var returnType = reader.ReadSymbolKey(out var returnTypeFailureReason); using var paramRefKinds = reader.ReadRefKindArray(); using var parameterTypes = reader.ReadSymbolKeyArray <ITypeSymbol>(out var parameterTypesFailureReason); if (returnTypeFailureReason != null) { failureReason = $"({nameof(FunctionPointerTypeSymbolKey)} {nameof(returnType)} failed -> {returnTypeFailureReason})"; return(default);