Browse Source

Fix compile errors after merge.

pull/1198/head
Siegfried Pammer 7 years ago
parent
commit
069e4072de
  1. 9
      ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs
  2. 2
      ICSharpCode.Decompiler/CSharp/CallBuilder.cs
  3. 2
      ICSharpCode.Decompiler/CSharp/Transforms/IntroduceExtensionMethods.cs
  4. 2
      ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs
  5. 2
      ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs
  6. 4
      ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs
  7. 2
      ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs
  8. 2
      ILSpy.AddIn/Commands/ProjectReferenceForILSpy.cs
  9. 1
      ILSpy.AddIn/ILSpyAddInPackage.cs

9
ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

@ -762,7 +762,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -762,7 +762,7 @@ namespace ICSharpCode.Decompiler.CSharp
}
}
if (typeDecl.ClassType == ClassType.Enum) {
switch (DetectBestEnumValueDisplayMode(typeDef)) {
switch (DetectBestEnumValueDisplayMode(typeDef, typeSystem.ModuleDefinition)) {
case EnumValueDisplayMode.FirstOnly:
foreach (var enumMember in typeDecl.Members.OfType<EnumMemberDeclaration>().Skip(1)) {
enumMember.Initializer = null;
@ -790,15 +790,14 @@ namespace ICSharpCode.Decompiler.CSharp @@ -790,15 +790,14 @@ namespace ICSharpCode.Decompiler.CSharp
FirstOnly
}
EnumValueDisplayMode DetectBestEnumValueDisplayMode(ITypeDefinition typeDef)
EnumValueDisplayMode DetectBestEnumValueDisplayMode(ITypeDefinition typeDef, PEFile module)
{
if (typeDef.GetAttribute(new TopLevelTypeName("System", "FlagsAttribute")) != null)
if (typeDef.GetAttribute(KnownAttribute.Flags) != null)
return EnumValueDisplayMode.All;
bool first = true;
long firstValue = 0, previousValue = 0;
foreach (var field in typeDef.Fields) {
var fieldDef = typeSystem.GetCecil(field) as FieldDefinition;
if (!(fieldDef != null && !MemberIsHidden(fieldDef, settings))) continue;
if (MemberIsHidden(module, field.MetadataToken, settings)) continue;
long currentValue = (long)CSharpPrimitiveCast.Cast(TypeCode.Int64, field.ConstantValue, false);
if (first) {
firstValue = currentValue;

2
ICSharpCode.Decompiler/CSharp/CallBuilder.cs

@ -501,7 +501,7 @@ namespace ICSharpCode.Decompiler.CSharp @@ -501,7 +501,7 @@ namespace ICSharpCode.Decompiler.CSharp
return true;
// always use unspecialized member, otherwise type inference fails
method = (IMethod)method.MemberDefinition;
typeInference.InferTypeArguments(method.TypeParameters, arguments, method.Parameters.SelectArray(p => p.Type),
typeInference.InferTypeArguments(method.TypeParameters, arguments, method.Parameters.SelectReadOnlyArray(p => p.Type),
out bool success);
return success;
}

2
ICSharpCode.Decompiler/CSharp/Transforms/IntroduceExtensionMethods.cs

@ -167,7 +167,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms @@ -167,7 +167,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms
if (method.Parameters.Count == 0) return false;
var targetType = method.Parameters.Select(p => new ResolveResult(p.Type)).First();
var paramTypes = method.Parameters.Skip(1).Select(p => new ResolveResult(p.Type)).ToArray();
var paramNames = ignoreArgumentNames ? null : method.Parameters.SelectArray(p => p.Name);
var paramNames = ignoreArgumentNames ? null : method.Parameters.SelectReadOnlyArray(p => p.Name);
var typeArgs = ignoreTypeArguments ? Empty<IType>.Array : method.TypeArguments.ToArray();
var resolver = new CSharpResolver(resolveContext);
return CanTransformToExtensionMethodCall(resolver, method, typeArgs, targetType, paramTypes, argumentNames: paramNames);

2
ICSharpCode.Decompiler/IL/Transforms/DynamicCallSiteTransform.cs

@ -501,7 +501,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -501,7 +501,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
return false;
int i = 0;
callSiteInfo.ArgumentInfos = new CSharpArgumentInfo[numberOfArguments];
var compileTimeTypes = callSiteInfo.DelegateType.GetDelegateInvokeMethod().Parameters.SelectArray(p => p.Type);
var compileTimeTypes = callSiteInfo.DelegateType.GetDelegateInvokeMethod().Parameters.SelectReadOnlyArray(p => p.Type);
foreach (var arg in arguments) {
if (!(arg is Call createCall))
return false;

2
ICSharpCode.Decompiler/IL/Transforms/TransformCollectionAndObjectInitializers.cs

@ -351,7 +351,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -351,7 +351,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
if (!targetType.GetAllBaseTypes().Any(i => i.IsKnownType(KnownTypeCode.IEnumerable) || i.IsKnownType(KnownTypeCode.IEnumerableOfT)))
return false;
return CSharp.CallBuilder.CanInferTypeArgumentsFromParameters(
method, method.Parameters.SelectArray(p => new ResolveResult(p.Type)),
method, method.Parameters.SelectReadOnlyArray(p => new ResolveResult(p.Type)),
new TypeInference(resolveContext.Compilation));
}

4
ICSharpCode.Decompiler/Metadata/UniversalAssemblyResolver.cs

@ -114,7 +114,7 @@ namespace ICSharpCode.Decompiler.Metadata @@ -114,7 +114,7 @@ namespace ICSharpCode.Decompiler.Metadata
/// <summary>
/// This only works on Windows
/// </summary>
string ResolveSilverlight(AssemblyNameReference name, Version version)
string ResolveSilverlight(IAssemblyReference name, Version version)
{
AddTargetFrameworkSearchPathIfExists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles), "Microsoft Silverlight"));
AddTargetFrameworkSearchPathIfExists(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ProgramFilesX86), "Microsoft Silverlight"));
@ -195,7 +195,7 @@ namespace ICSharpCode.Decompiler.Metadata @@ -195,7 +195,7 @@ namespace ICSharpCode.Decompiler.Metadata
return IsZero(reference.Version) || reference.IsRetargetable;
}
string SearchDirectory(AssemblyNameReference name, string directory)
string SearchDirectory(IAssemblyReference name, string directory)
{
var extensions = name.IsWindowsRuntime ? new[] { ".winmd", ".dll" } : new[] { ".exe", ".dll" };
foreach (var extension in extensions) {

2
ICSharpCode.Decompiler/TypeSystem/Implementation/KnownAttributes.cs

@ -51,6 +51,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -51,6 +51,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
// Type attributes:
Serializable,
Flags,
ComImport,
CoClass,
StructLayout,
@ -103,6 +104,7 @@ namespace ICSharpCode.Decompiler.TypeSystem @@ -103,6 +104,7 @@ namespace ICSharpCode.Decompiler.TypeSystem
new TopLevelTypeName("System.Runtime.CompilerServices", nameof(TypeForwardedToAttribute)),
// Type attributes:
new TopLevelTypeName("System", nameof(SerializableAttribute)),
new TopLevelTypeName("System", nameof(FlagsAttribute)),
new TopLevelTypeName("System.Runtime.InteropServices", nameof(ComImportAttribute)),
new TopLevelTypeName("System.Runtime.InteropServices", nameof(CoClassAttribute)),
new TopLevelTypeName("System.Runtime.InteropServices", nameof(StructLayoutAttribute)),

2
ILSpy.AddIn/Commands/ProjectReferenceForILSpy.cs

@ -69,7 +69,7 @@ namespace ICSharpCode.ILSpy.AddIn.Commands @@ -69,7 +69,7 @@ namespace ICSharpCode.ILSpy.AddIn.Commands
if (resolvedPath != null) {
return new ILSpyParameters(new[] { $"{resolvedPath}" });
} else if (!string.IsNullOrWhiteSpace(fusionName)) {
return new ILSpyParameters(new string[] { GacInterop.FindAssemblyInNetGac(AssemblyNameReference.Parse(fusionName)) });
return new ILSpyParameters(new string[] { GacInterop.FindAssemblyInNetGac(Decompiler.Metadata.AssemblyNameReference.Parse(fusionName)) });
}
return null;

1
ILSpy.AddIn/ILSpyAddInPackage.cs

@ -10,6 +10,7 @@ using ICSharpCode.ILSpy.AddIn.Commands; @@ -10,6 +10,7 @@ using ICSharpCode.ILSpy.AddIn.Commands;
using Microsoft.VisualStudio.ComponentModelHost;
using Microsoft.VisualStudio.LanguageServices;
using EnvDTE;
using System.Collections.Generic;
namespace ICSharpCode.ILSpy.AddIn
{

Loading…
Cancel
Save