提交 80a02e9e 编写于 作者: C Cyrus Najmabadi

Consistency

上级 43ebfec0
......@@ -22,14 +22,14 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var name = reader.ReadString();
var targetResolution = reader.ReadSymbolKey(out var targetFailureReason);
var filePath = reader.ReadString();
if (targetFailureReason != null)
{
failureReason = $"({nameof(AliasSymbolKey)} {nameof(targetResolution)} failed -> {targetFailureReason})";
return default;
}
var filePath = reader.ReadString();
var syntaxTree = reader.GetSyntaxTree(filePath);
if (syntaxTree != null)
{
......
......@@ -35,6 +35,7 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var isAnonymousDelegateType = reader.ReadBoolean();
var location = reader.ReadLocation(out var locationFailureReason);
if (locationFailureReason != null)
{
failureReason = $"({nameof(AnonymousFunctionOrDelegateSymbolKey)} {nameof(location)} failed -> {locationFailureReason})";
......
......@@ -31,15 +31,16 @@ public static void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor)
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
using var propertyTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var propertyTypesFailureReason);
using var propertyNames = reader.ReadStringArray();
using var propertyIsReadOnly = reader.ReadBooleanArray();
using var propertyLocations = reader.ReadLocationArray(out var propertyLocationsFailureReason);
if (propertyTypesFailureReason != null)
{
failureReason = $"({nameof(AnonymousTypeSymbolKey)} {nameof(propertyTypes)} failed -> {propertyTypesFailureReason})";
return default;
}
using var propertyNames = reader.ReadStringArray();
using var propertyIsReadOnly = reader.ReadBooleanArray();
using var propertyLocations = reader.ReadLocationArray(out var propertyLocationsFailureReason);
if (propertyLocationsFailureReason != null)
{
failureReason = $"({nameof(AnonymousTypeSymbolKey)} {nameof(propertyLocations)} failed -> {propertyLocationsFailureReason})";
......
......@@ -17,14 +17,14 @@ public static void Create(IArrayTypeSymbol symbol, SymbolKeyWriter visitor)
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
var elementTypeResolution = reader.ReadSymbolKey(out var elementTypeFailureReason);
var rank = reader.ReadInteger();
if (elementTypeFailureReason != null)
{
failureReason = $"({nameof(ArrayTypeSymbolKey)} {nameof(elementTypeResolution)} failed -> {elementTypeFailureReason})";
return default;
}
var rank = reader.ReadInteger();
using var result = PooledArrayBuilder<IArrayTypeSymbol>.GetInstance(elementTypeResolution.SymbolCount);
foreach (var typeSymbol in elementTypeResolution.OfType<ITypeSymbol>())
result.AddIfNotNull(reader.Compilation.CreateArrayTypeSymbol(typeSymbol, rank));
......
......@@ -123,14 +123,14 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string? fa
var name = reader.ReadString();
var kind = (SymbolKind)reader.ReadInteger();
var locations = reader.ReadLocationArray(out var locationsFailureReason);
var ordinal = reader.ReadInteger();
if (locationsFailureReason != null)
{
failureReason = $"({nameof(BodyLevelSymbolKey)} {nameof(locations)} failed -> {locationsFailureReason})";
return default;
}
var ordinal = reader.ReadInteger();
// First check if we can recover the symbol just through the original location.
foreach (var loc in locations)
{
......
......@@ -62,16 +62,17 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
var name = reader.ReadString();
var containingSymbolResolution = ResolveContainer(reader, out var containingSymbolFailureReason);
var arity = reader.ReadInteger();
using var typeArguments = reader.ReadSymbolKeyArray<ITypeSymbol>(out var typeArgumentsFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(ErrorTypeSymbolKey)} {nameof(containingSymbolResolution)} failed -> {containingSymbolFailureReason})";
return default;
}
var arity = reader.ReadInteger();
using var typeArguments = reader.ReadSymbolKeyArray<ITypeSymbol>(out var typeArgumentsFailureReason);
if (containingSymbolFailureReason != null)
if (typeArgumentsFailureReason != null)
{
failureReason = $"({nameof(ErrorTypeSymbolKey)} {nameof(typeArguments)} failed -> {typeArgumentsFailureReason})";
return default;
......
......@@ -18,6 +18,7 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var containingTypeResolution = reader.ReadSymbolKey(out var containingTypeFailureReason);
if (containingTypeFailureReason != null)
{
failureReason = $"({nameof(EventSymbolKey)} {nameof(containingTypeResolution)} failed -> {containingTypeFailureReason})";
......
......@@ -18,6 +18,7 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var containingTypeResolution = reader.ReadSymbolKey(out var containingTypeFailureReason);
if (containingTypeFailureReason != null)
{
failureReason = $"({nameof(FieldSymbolKey)} {nameof(containingTypeResolution)} failed -> {containingTypeFailureReason})";
......
......@@ -20,14 +20,15 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
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;
}
using var paramRefKinds = reader.ReadRefKindArray();
using var parameterTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var parameterTypesFailureReason);
if (parameterTypesFailureReason != null)
{
failureReason = $"({nameof(FunctionPointerTypeSymbolKey)} {nameof(parameterTypes)} failed -> {parameterTypesFailureReason})";
......
......@@ -137,12 +137,6 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
var metadataName = reader.ReadString();
var containingType = reader.ReadSymbolKey(out var containingTypeFailureReason);
if (containingTypeFailureReason != null)
{
failureReason = $"({nameof(MethodSymbolKey)} {nameof(containingType)} failed -> {containingTypeFailureReason})";
return default;
}
var arity = reader.ReadInteger();
var isPartialMethodImplementationPart = reader.ReadBoolean();
using var parameterRefKinds = reader.ReadRefKindArray();
......@@ -195,6 +189,12 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
reader.PopMethod(methodOpt: null);
}
if (containingTypeFailureReason != null)
{
failureReason = $"({nameof(MethodSymbolKey)} {nameof(containingType)} failed -> {containingTypeFailureReason})";
return default;
}
return CreateResolution(result, $"({nameof(MethodSymbolKey)} '{metadataName}' not found)", out failureReason);
}
......
......@@ -14,6 +14,7 @@ public static void Create(IModuleSymbol symbol, SymbolKeyWriter visitor)
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
var containingSymbolResolution = reader.ReadSymbolKey(out var containingSymbolFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(ModuleSymbolKey)} {nameof(containingSymbolResolution)} failed -> {containingSymbolFailureReason})";
......
......@@ -31,17 +31,17 @@ public static void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor)
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
var metadataName = reader.ReadString();
var containingSymbolResolution = reader.ReadSymbolKey(out var containingSymbolFailureReason);
var arity = reader.ReadInteger();
var isUnboundGenericType = reader.ReadBoolean();
using var typeArguments = reader.ReadSymbolKeyArray<ITypeSymbol>(out var typeArgumentsFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(NamedTypeSymbolKey)} {nameof(containingSymbolFailureReason)} failed -> {containingSymbolFailureReason})";
return default;
}
var arity = reader.ReadInteger();
var isUnboundGenericType = reader.ReadBoolean();
using var typeArguments = reader.ReadSymbolKeyArray<ITypeSymbol>(out var typeArgumentsFailureReason);
if (typeArgumentsFailureReason != null)
{
failureReason = $"({nameof(NamedTypeSymbolKey)} {nameof(typeArguments)} failed -> {typeArgumentsFailureReason})";
......
......@@ -56,8 +56,8 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var isCompilationGlobalNamespace = reader.ReadBoolean();
var containingSymbolResolution = reader.ReadSymbolKey(out var containingSymbolFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(EventSymbolKey)} {nameof(containingSymbolResolution)} failed -> {containingSymbolFailureReason})";
......
......@@ -20,6 +20,7 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var containingSymbolResolution = reader.ReadSymbolKey(out var containingSymbolFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(ParameterSymbolKey)} {nameof(containingSymbolResolution)} failed -> {containingSymbolFailureReason})";
......
......@@ -14,6 +14,7 @@ public static void Create(IPointerTypeSymbol symbol, SymbolKeyWriter visitor)
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
var pointedAtTypeResolution = reader.ReadSymbolKey(out var pointedAtTypeFailureReason);
if (pointedAtTypeFailureReason != null)
{
failureReason = $"({nameof(PointerTypeSymbolKey)} {nameof(pointedAtTypeResolution)} failed -> {pointedAtTypeFailureReason})";
......
......@@ -21,6 +21,9 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var containingTypeResolution = reader.ReadSymbolKey(out var containingTypeFailureReason);
var isIndexer = reader.ReadBoolean();
using var refKinds = reader.ReadRefKindArray();
using var parameterTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var parameterTypesFailureReason);
if (containingTypeFailureReason != null)
{
......@@ -28,10 +31,6 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
return default;
}
var isIndexer = reader.ReadBoolean();
using var refKinds = reader.ReadRefKindArray();
using var parameterTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var parameterTypesFailureReason);
if (parameterTypesFailureReason != null)
{
failureReason = $"({nameof(PropertySymbolKey)} {nameof(parameterTypes)} failed -> {parameterTypesFailureReason})";
......
......@@ -17,6 +17,8 @@ public static void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor)
{
Debug.Assert(symbol.IsTupleType);
var isError = symbol.TupleUnderlyingType.TypeKind == TypeKind.Error;
var friendlyNames = ArrayBuilder<string>.GetInstance();
var locations = ArrayBuilder<Location>.GetInstance();
......@@ -26,12 +28,10 @@ public static void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor)
locations.Add(FirstOrDefault(element.Locations) ?? Location.None);
}
visitor.WriteBoolean(isError);
visitor.WriteStringArray(friendlyNames.ToImmutableAndFree());
visitor.WriteLocationArray(locations.ToImmutableAndFree());
var isError = symbol.TupleUnderlyingType.TypeKind == TypeKind.Error;
visitor.WriteBoolean(isError);
if (isError)
{
var elementTypes = ArrayBuilder<ISymbol>.GetInstance();
......@@ -50,68 +50,64 @@ public static void Create(INamedTypeSymbol symbol, SymbolKeyWriter visitor)
}
public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string failureReason)
{
var isError = reader.ReadBoolean();
return isError ? ResolveErrorTuple(reader, out failureReason) : ResolveNormalTuple(reader, out failureReason);
}
private static SymbolKeyResolution ResolveNormalTuple(SymbolKeyReader reader, out string failureReason)
{
using var elementNames = reader.ReadStringArray();
var elementLocations = ReadElementLocations(reader, out var elementLocationsFailureReason);
if (elementLocationsFailureReason != null)
var underlyingTypeResolution = reader.ReadSymbolKey(out var underlyingTypeFailureReason);
if (underlyingTypeFailureReason != null)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(elementLocations)} failed -> {elementLocationsFailureReason})";
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(underlyingTypeResolution)} failed -> {underlyingTypeFailureReason})";
return default;
}
var isError = reader.ReadBoolean();
if (isError)
{
using var elementTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var elementTypesFailureReason);
if (elementTypesFailureReason != null)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(elementTypes)} failed -> {elementTypesFailureReason})";
return default;
}
using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance();
if (!elementTypes.IsDefault)
{
try
{
var result = reader.Compilation.CreateTupleTypeSymbol(
elementTypes.ToImmutable(), elementNames.ToImmutable(), elementLocations);
failureReason = null;
return new SymbolKeyResolution(result);
}
catch (ArgumentException)
{
}
}
}
else
var elementNamesArray = elementNames.ToImmutable();
foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>())
{
var underlyingTypeResolution = reader.ReadSymbolKey(out var underlyingTypeFailureReason);
if (underlyingTypeFailureReason != null)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(underlyingTypeResolution)} failed -> {underlyingTypeFailureReason})";
return default;
}
result.AddIfNotNull(reader.Compilation.CreateTupleTypeSymbol(
namedType, elementNamesArray, elementLocations));
}
try
{
using var result = PooledArrayBuilder<INamedTypeSymbol>.GetInstance();
return CreateResolution(result, $"({nameof(TupleTypeSymbolKey)} failed)", out failureReason);
}
var elementNamesArray = elementNames.ToImmutable();
foreach (var namedType in underlyingTypeResolution.OfType<INamedTypeSymbol>())
{
result.AddIfNotNull(reader.Compilation.CreateTupleTypeSymbol(
namedType, elementNamesArray, elementLocations));
}
private static SymbolKeyResolution ResolveErrorTuple(SymbolKeyReader reader, out string failureReason)
{
using var elementNames = reader.ReadStringArray();
var elementLocations = ReadElementLocations(reader, out var elementLocationsFailureReason);
using var elementTypes = reader.ReadSymbolKeyArray<ITypeSymbol>(out var elementTypesFailureReason);
return CreateResolution(result, $"({nameof(TupleTypeSymbolKey)} failed)", out failureReason);
}
catch (ArgumentException)
{
}
if (elementLocationsFailureReason != null)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(elementLocations)} failed -> {elementLocationsFailureReason})";
return default;
}
if (elementTypesFailureReason != null)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(elementTypes)} failed -> {elementTypesFailureReason})";
return default;
}
if (elementTypes.IsDefault)
{
failureReason = $"({nameof(TupleTypeSymbolKey)} {nameof(elementTypes)} failed)";
return default;
}
var result = reader.Compilation.CreateTupleTypeSymbol(
elementTypes.ToImmutable(), elementNames.ToImmutable(), elementLocations);
failureReason = null;
return new SymbolKeyResolution(reader.Compilation.ObjectType);
return new SymbolKeyResolution(result);
}
private static ImmutableArray<Location> ReadElementLocations(SymbolKeyReader reader, out string failureReason)
......
......@@ -47,6 +47,7 @@ public static SymbolKeyResolution Resolve(SymbolKeyReader reader, out string fai
{
var metadataName = reader.ReadString();
var containingSymbolResolution = reader.ReadSymbolKey(out var containingSymbolFailureReason);
if (containingSymbolFailureReason != null)
{
failureReason = $"({nameof(TypeParameterSymbolKey)} {nameof(containingSymbolResolution)} failed -> {containingSymbolFailureReason})";
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册