Browse Source

Fix remaining compile errors after merge.

pull/1198/head
Siegfried Pammer 7 years ago
parent
commit
bb67948844
  1. 2
      ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs
  2. 7
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs
  3. 4
      ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs
  4. 2
      ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj
  5. 12
      ICSharpCode.Decompiler/IL/ILReader.cs
  6. 5
      ICSharpCode.Decompiler/TypeSystem/Implementation/TypeSpecification.cs

2
ICSharpCode.Decompiler.Tests/TypeSystem/TypeSystemLoaderTests.cs

@ -44,7 +44,7 @@ namespace ICSharpCode.Decompiler.Tests.TypeSystem @@ -44,7 +44,7 @@ namespace ICSharpCode.Decompiler.Tests.TypeSystem
static readonly Lazy<IUnresolvedAssembly> testAssembly = new Lazy<IUnresolvedAssembly>(
delegate {
return new CecilLoader { IncludeInternalMembers = true }.LoadAssemblyFile(typeof(SimplePublicClass).Assembly.Location);
return new MetadataLoader { IncludeInternalMembers = true }.LoadAssemblyFile(typeof(SimplePublicClass).Assembly.Location);
});
public static IUnresolvedAssembly Mscorlib { get { return mscorlib.Value; } }

7
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -245,6 +245,8 @@ namespace ICSharpCode.Decompiler.CSharp @@ -245,6 +245,8 @@ namespace ICSharpCode.Decompiler.CSharp
if (settings.AnonymousTypes && type.IsAnonymousType(metadata))
return true;
}
if (settings.ArrayInitializers && settings.SwitchStatementOnString && name.StartsWith("<PrivateImplementationDetails>", StringComparison.Ordinal))
return true;
return false;
case HandleKind.FieldDefinition:
var fieldHandle = (FieldDefinitionHandle)member;
@ -261,8 +263,8 @@ namespace ICSharpCode.Decompiler.CSharp @@ -261,8 +263,8 @@ namespace ICSharpCode.Decompiler.CSharp
// event-fields are not [CompilerGenerated]
if (settings.AutomaticEvents && metadata.GetTypeDefinition(field.GetDeclaringType()).GetEvents().Any(ev => metadata.GetEventDefinition(ev).Name == field.Name))
return true;
// HACK : only hide fields starting with '__StaticArrayInit'
if (settings.ArrayInitializers && metadata.GetString(metadata.GetTypeDefinition(field.GetDeclaringType()).Name).StartsWith("<PrivateImplementationDetails>", StringComparison.Ordinal)) {
// only hide fields starting with '__StaticArrayInit'
if (name.StartsWith("__StaticArrayInit", StringComparison.Ordinal))
return true;
// hide fields starting with '$$method'
@ -272,11 +274,8 @@ namespace ICSharpCode.Decompiler.CSharp @@ -272,11 +274,8 @@ namespace ICSharpCode.Decompiler.CSharp
return true;
}
return false;
if (settings.ArrayInitializers && settings.SwitchStatementOnString && type.Name.StartsWith("<PrivateImplementationDetails>", StringComparison.Ordinal))
return true;
}
return false;
}

4
ICSharpCode.Decompiler/CSharp/Transforms/PatternStatementTransform.cs

@ -506,7 +506,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -506,7 +506,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
propertyDeclaration.Setter.Body = null;
}
// Add C# 7.3 attributes on backing field:
var attributes = fieldInfo.Attributes
var attributes = field.Attributes
.Where(a => !attributeTypesToRemoveFromAutoProperties.Any(t => t == a.AttributeType.FullName))
.Select(context.TypeSystemAstBuilder.ConvertAttribute).ToArray();
if (attributes.Length > 0) {
@ -514,7 +514,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -514,7 +514,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
AttributeTarget = "field"
};
section.Attributes.AddRange(attributes);
property.Attributes.Add(section);
propertyDeclaration.Attributes.Add(section);
}
// Since the property instance is not changed, we can continue in the visitor as usual, so return null
return null;

2
ICSharpCode.Decompiler/ICSharpCode.Decompiler.csproj

@ -289,8 +289,6 @@ @@ -289,8 +289,6 @@
<Compile Include="Metadata\LightJson\JsonValueType.cs" />
<Compile Include="Metadata\LightJson\Serialization\JsonParseException.cs" />
<Compile Include="Metadata\LightJson\Serialization\JsonReader.cs" />
<Compile Include="Metadata\LightJson\Serialization\JsonSerializationException.cs" />
<Compile Include="Metadata\LightJson\Serialization\JsonWriter.cs" />
<Compile Include="Metadata\LightJson\Serialization\TextPosition.cs" />
<Compile Include="Metadata\LightJson\Serialization\TextScanner.cs" />
<Compile Include="Metadata\OperandType.cs" />

12
ICSharpCode.Decompiler/IL/ILReader.cs

@ -132,7 +132,7 @@ namespace ICSharpCode.Decompiler.IL @@ -132,7 +132,7 @@ namespace ICSharpCode.Decompiler.IL
var variableTypes = standaloneSignature.DecodeLocalSignature(TypeSystem.Implementation.TypeReferenceSignatureDecoder.Instance, default);
var localVariables = new ILVariable[variableTypes.Length];
foreach (var (index, type) in variableTypes.WithIndex()) {
localVariables[index] = CreateILVariable(index, type);
localVariables[index] = CreateILVariable(index, typeSystem.ResolveFromSignature(type));
}
return localVariables;
}
@ -148,19 +148,18 @@ namespace ICSharpCode.Decompiler.IL @@ -148,19 +148,18 @@ namespace ICSharpCode.Decompiler.IL
int paramIndex = 0; int offset = 0;
if (methodSignature.Header.IsInstance) {
offset = 1;
parameterVariables[paramIndex++] = CreateILVariable(-1, method.DeclaringType.ToTypeReference(), "this");
parameterVariables[paramIndex++] = CreateILVariable(-1, method.DeclaringType, "this");
}
while (paramIndex < parameterVariables.Length) {
var type = methodSignature.ParameterTypes[paramIndex - offset];
var type = typeSystem.ResolveFromSignature(methodSignature.ParameterTypes[paramIndex - offset]);
parameterVariables[paramIndex] = CreateILVariable(paramIndex - offset, type, method.Parameters[paramIndex - offset].Name);
paramIndex++;
}
Debug.Assert(paramIndex == parameterVariables.Length);
}
ILVariable CreateILVariable(int index, ITypeReference typeRef)
ILVariable CreateILVariable(int index, IType type)
{
IType type = typeSystem.ResolveFromSignature(typeRef);
VariableKind kind;
if (type is PinnedType pinned) {
kind = VariableKind.PinnedLocal;
@ -181,9 +180,8 @@ namespace ICSharpCode.Decompiler.IL @@ -181,9 +180,8 @@ namespace ICSharpCode.Decompiler.IL
return ilVar;
}
ILVariable CreateILVariable(int index, ITypeReference typeReference, string name)
ILVariable CreateILVariable(int index, IType parameterType, string name)
{
IType parameterType = typeSystem.ResolveFromSignature(typeReference);
ITypeDefinition def = parameterType.GetDefinition();
if (def != null && index < 0 && def.IsReferenceType == false) {
parameterType = new ByReferenceType(parameterType);

5
ICSharpCode.Decompiler/TypeSystem/Implementation/TypeSpecification.cs

@ -39,11 +39,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation @@ -39,11 +39,6 @@ namespace ICSharpCode.Decompiler.TypeSystem.Implementation
public override TypeKind Kind => TypeKind.Other;
public override ITypeReference ToTypeReference()
{
return new PinnedTypeReference(elementType.ToTypeReference());
}
public override IType VisitChildren(TypeVisitor visitor)
{
var newType = elementType.AcceptVisitor(visitor);

Loading…
Cancel
Save