Browse Source

Update tests to latest Roslyn implementation.

pull/1596/head
Siegfried Pammer 6 years ago
parent
commit
9590cfbf59
  1. 8
      ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj
  2. 9
      ICSharpCode.Decompiler/IL/ILInstructionExtensions.cs
  3. 18
      ICSharpCode.Decompiler/IL/Instructions/Block.cs
  4. 5
      ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs
  5. 2
      ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj
  6. 8
      ILSpy.BamlDecompiler.Tests/app.config

8
ICSharpCode.Decompiler.Tests/ICSharpCode.Decompiler.Tests.csproj

@ -42,13 +42,13 @@ @@ -42,13 +42,13 @@
<ItemGroup>
<PackageReference Include="DiffLib" Version="2017.7.26.1241" />
<PackageReference Include="Microsoft.Build.Locator" Version="1.2.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.0.0-beta4-final" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="3.0.0-beta4-final" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.CodeAnalysis.VisualBasic" Version="3.2.0-beta3-final" />
<PackageReference Include="Microsoft.DiaSymReader.Converter.Xml" Version="1.1.0-beta1-63314-01" />
<PackageReference Include="NUnit3TestAdapter" Version="3.13.0" />
<PackageReference Include="System.Collections.Immutable" Version="1.5.0" />
<PackageReference Include="NUnit" Version="3.11.0" />
<PackageReference Include="System.Memory" Version="4.5.1" />
<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="System.Memory" Version="4.5.3" />
</ItemGroup>
<ItemGroup>

9
ICSharpCode.Decompiler/IL/ILInstructionExtensions.cs

@ -18,5 +18,14 @@ namespace ICSharpCode.Decompiler.IL @@ -18,5 +18,14 @@ namespace ICSharpCode.Decompiler.IL
target.AddILRange(range);
return target;
}
public static ILInstruction GetNextSibling(this ILInstruction instruction)
{
if (instruction?.Parent == null)
return null;
if (instruction.ChildIndex + 1 >= instruction.Parent.Children.Count)
return null;
return instruction.Parent.Children[instruction.ChildIndex + 1];
}
}
}

18
ICSharpCode.Decompiler/IL/Instructions/Block.cs

@ -143,8 +143,7 @@ namespace ICSharpCode.Decompiler.IL @@ -143,8 +143,7 @@ namespace ICSharpCode.Decompiler.IL
/// <summary>
/// Gets the name of this block.
/// </summary>
public string Label
{
public string Label {
get { return Disassembler.DisassemblerHelpers.OffsetToString(this.StartILOffset); }
}
@ -280,6 +279,21 @@ namespace ICSharpCode.Decompiler.IL @@ -280,6 +279,21 @@ namespace ICSharpCode.Decompiler.IL
return inst;
}
/// <summary>
/// Gets the closest parent Block.
/// Returns null, if the instruction is not a descendant of a Block.
/// </summary>
public static Block FindClosestBlock(ILInstruction inst)
{
var curr = inst;
while (curr != null) {
if (curr is Block)
return (Block)curr;
curr = curr.Parent;
}
return null;
}
public bool MatchInlineAssignBlock(out CallInstruction call, out ILInstruction value)
{
call = null;

5
ICSharpCode.Decompiler/IL/Transforms/ExpressionTransforms.cs

@ -271,6 +271,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -271,6 +271,7 @@ namespace ICSharpCode.Decompiler.IL.Transforms
}
Block block;
if (TransformSpanTCtorContainingStackAlloc(inst, out ILInstruction locallocSpan)) {
context.Step("new Span<T>(stackalloc) -> stackalloc Span<T>", inst);
inst.ReplaceWith(locallocSpan);
block = null;
ILInstruction stmt = locallocSpan;
@ -281,7 +282,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms @@ -281,7 +282,9 @@ namespace ICSharpCode.Decompiler.IL.Transforms
}
stmt = stmt.Parent;
}
//ILInlining.InlineIfPossible(block, stmt.ChildIndex - 1, context);
// Special case to eliminate extra store
if (stmt.GetNextSibling() is StLoc)
ILInlining.InlineIfPossible(block, stmt.ChildIndex, context);
return;
}
if (TransformArrayInitializers.TransformSpanTArrayInitialization(inst, context, out block)) {

2
ILSpy.BamlDecompiler.Tests/ILSpy.BamlDecompiler.Tests.csproj

@ -31,7 +31,7 @@ @@ -31,7 +31,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUnit" Version="3.11.0" />
<PackageReference Include="NUnit" Version="3.12.0" />
</ItemGroup>
<ItemGroup>

8
ILSpy.BamlDecompiler.Tests/app.config

@ -7,8 +7,14 @@ @@ -7,8 +7,14 @@
<bindingRedirect oldVersion="0.0.0.0-1.2.1.0" newVersion="1.2.1.0"/>
</dependentAssembly>
</assemblyBinding>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2"/>
</startup>
</configuration>

Loading…
Cancel
Save