Browse Source

Adjust ILSpy to new NRefactory and ICSharpCode.Decompiler versions.

pull/596/merge
Daniel Grunwald 11 years ago
parent
commit
fa2b392707
  1. 2
      ICSharpCode.Decompiler/Ast/TextTokenWriter.cs
  2. 1
      ICSharpCode.Decompiler/DecompilerSettings.cs
  3. 39
      ICSharpCode.Decompiler/Tests/QueryExpressions.cs
  4. 5
      ILSpy/DecompileEventArgs.cs
  5. 3
      ILSpy/ILSpy.csproj
  6. 6
      ILSpy/TextView/AvalonEditTextOutput.cs
  7. 23
      NRefactory/ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs
  8. 8
      TestPlugin/TestPlugin.csproj
  9. 5
      TestPlugin/packages.config
  10. 1
      packages/repositories.config

2
ICSharpCode.Decompiler/Ast/TextTokenWriter.cs

@ -291,7 +291,7 @@ namespace ICSharpCode.Decompiler.Ast
public override void WritePrimitiveValue(object value, string literalValue = null) public override void WritePrimitiveValue(object value, string literalValue = null)
{ {
new TextWriterTokenWriter(new TextOutputWriter(output)).WritePrimitiveValue(value, literalValue);
} }
public override void WritePrimitiveType(string type) public override void WritePrimitiveType(string type)

1
ICSharpCode.Decompiler/DecompilerSettings.cs

@ -321,6 +321,7 @@ namespace ICSharpCode.Decompiler
if (csharpFormattingOptions == null) { if (csharpFormattingOptions == null) {
csharpFormattingOptions = FormattingOptionsFactory.CreateAllman(); csharpFormattingOptions = FormattingOptionsFactory.CreateAllman();
csharpFormattingOptions.IndentSwitchBody = false; csharpFormattingOptions.IndentSwitchBody = false;
csharpFormattingOptions.ArrayInitializerWrapping = Wrapping.WrapAlways;
} }
return csharpFormattingOptions; return csharpFormattingOptions;
} }

39
ICSharpCode.Decompiler/Tests/QueryExpressions.cs

@ -52,8 +52,7 @@ public class QueryExpressions
public object MultipleWhere() public object MultipleWhere()
{ {
return return from c in this.customers
from c in this.customers
where c.Orders.Count<QueryExpressions.Order>() > 10 where c.Orders.Count<QueryExpressions.Order>() > 10
where c.Country == "DE" where c.Country == "DE"
select c; select c;
@ -61,8 +60,7 @@ public class QueryExpressions
public object SelectManyFollowedBySelect() public object SelectManyFollowedBySelect()
{ {
return return from c in this.customers
from c in this.customers
from o in c.Orders from o in c.Orders
select new select new
{ {
@ -74,8 +72,7 @@ public class QueryExpressions
public object SelectManyFollowedByOrderBy() public object SelectManyFollowedByOrderBy()
{ {
return return from c in this.customers
from c in this.customers
from o in c.Orders from o in c.Orders
orderby o.Total descending orderby o.Total descending
select new select new
@ -88,8 +85,7 @@ public class QueryExpressions
public object MultipleSelectManyFollowedBySelect() public object MultipleSelectManyFollowedBySelect()
{ {
return return from c in this.customers
from c in this.customers
from o in c.Orders from o in c.Orders
from d in o.Details from d in o.Details
select new select new
@ -102,8 +98,7 @@ public class QueryExpressions
public object MultipleSelectManyFollowedByLet() public object MultipleSelectManyFollowedByLet()
{ {
return return from c in this.customers
from c in this.customers
from o in c.Orders from o in c.Orders
from d in o.Details from d in o.Details
let x = d.Quantity * d.UnitPrice let x = d.Quantity * d.UnitPrice
@ -117,8 +112,7 @@ public class QueryExpressions
public object FromLetWhereSelect() public object FromLetWhereSelect()
{ {
return return from o in this.orders
from o in this.orders
let t = o.Details.Sum((QueryExpressions.OrderDetail d) => d.UnitPrice * d.Quantity) let t = o.Details.Sum((QueryExpressions.OrderDetail d) => d.UnitPrice * d.Quantity)
where t >= 1000m where t >= 1000m
select new select new
@ -130,8 +124,7 @@ public class QueryExpressions
public object MultipleLet() public object MultipleLet()
{ {
return return from a in this.customers
from a in this.customers
let b = a.Country let b = a.Country
let c = a.Name let c = a.Name
select b + c; select b + c;
@ -139,8 +132,7 @@ public class QueryExpressions
public object Join() public object Join()
{ {
return return from c in this.customers
from c in this.customers
join o in this.orders on c.CustomerID equals o.CustomerID join o in this.orders on c.CustomerID equals o.CustomerID
select new select new
{ {
@ -152,8 +144,7 @@ public class QueryExpressions
public object JoinInto() public object JoinInto()
{ {
return return from c in this.customers
from c in this.customers
join o in this.orders on c.CustomerID equals o.CustomerID into co join o in this.orders on c.CustomerID equals o.CustomerID into co
let n = co.Count<QueryExpressions.Order>() let n = co.Count<QueryExpressions.Order>()
where n >= 10 where n >= 10
@ -166,31 +157,27 @@ public class QueryExpressions
public object OrderBy() public object OrderBy()
{ {
return return from o in this.orders
from o in this.orders
orderby o.Customer.Name, o.Total descending orderby o.Customer.Name, o.Total descending
select o; select o;
} }
public object GroupBy() public object GroupBy()
{ {
return return from c in this.customers
from c in this.customers
group c.Name by c.Country; group c.Name by c.Country;
} }
public object ExplicitType() public object ExplicitType()
{ {
return return from QueryExpressions.Customer c in this.customers
from QueryExpressions.Customer c in this.customers
where c.City == "London" where c.City == "London"
select c; select c;
} }
public object QueryContinuation() public object QueryContinuation()
{ {
return return from c in this.customers
from c in this.customers
group c by c.Country into g group c by c.Country into g
select new select new
{ {

5
ILSpy/DecompileEventArgs.cs

@ -32,11 +32,6 @@ namespace ICSharpCode.ILSpy
[Obsolete] [Obsolete]
public sealed class DecompileEventArgs : EventArgs public sealed class DecompileEventArgs : EventArgs
{ {
/// <summary>
/// Gets or sets the code mappings
/// </summary>
public Dictionary<int, List<MemberMapping>> CodeMappings { get; internal set; }
/// <summary> /// <summary>
/// Gets or sets the local variables. /// Gets or sets the local variables.
/// </summary> /// </summary>

3
ILSpy/ILSpy.csproj

@ -58,6 +58,9 @@
<Reference Include="ICSharpCode.NRefactory"> <Reference Include="ICSharpCode.NRefactory">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll</HintPath> <HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll</HintPath>
</Reference> </Reference>
<Reference Include="ICSharpCode.NRefactory.Cecil">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.Cecil.dll</HintPath>
</Reference>
<Reference Include="ICSharpCode.NRefactory.CSharp"> <Reference Include="ICSharpCode.NRefactory.CSharp">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll</HintPath> <HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll</HintPath>
</Reference> </Reference>

6
ILSpy/TextView/AvalonEditTextOutput.cs

@ -92,7 +92,7 @@ namespace ICSharpCode.ILSpy.TextView
/// <summary>Embedded UIElements, see <see cref="UIElementGenerator"/>.</summary> /// <summary>Embedded UIElements, see <see cref="UIElementGenerator"/>.</summary>
internal readonly List<KeyValuePair<int, Lazy<UIElement>>> UIElements = new List<KeyValuePair<int, Lazy<UIElement>>>(); internal readonly List<KeyValuePair<int, Lazy<UIElement>>> UIElements = new List<KeyValuePair<int, Lazy<UIElement>>>();
internal readonly List<MemberMapping> DebuggerMemberMappings = new List<MemberMapping>(); internal readonly List<MethodDebugSymbols> DebuggerMemberMappings = new List<MethodDebugSymbols>();
public AvalonEditTextOutput() public AvalonEditTextOutput()
{ {
@ -250,9 +250,9 @@ namespace ICSharpCode.ILSpy.TextView
} }
} }
public void AddDebuggerMemberMapping(MemberMapping memberMapping) public void AddDebugSymbols(MethodDebugSymbols methodDebugSymbols)
{ {
DebuggerMemberMappings.Add(memberMapping); DebuggerMemberMappings.Add(methodDebugSymbols);
} }
} }
} }

23
NRefactory/ICSharpCode.NRefactory.VB/Visitors/CSharpToVBConverterVisitor.cs

@ -714,11 +714,6 @@ namespace ICSharpCode.NRefactory.VB.Visitors
return EndNode(uncheckedExpression, uncheckedExpression.Expression.AcceptVisitor(this, data)); return EndNode(uncheckedExpression, uncheckedExpression.Expression.AcceptVisitor(this, data));
} }
public AstNode VisitEmptyExpression(CSharp.EmptyExpression emptyExpression, object data)
{
return EndNode(emptyExpression, new EmptyExpression());
}
public AstNode VisitQueryExpression(CSharp.QueryExpression queryExpression, object data) public AstNode VisitQueryExpression(CSharp.QueryExpression queryExpression, object data)
{ {
var expr = new QueryExpression(); var expr = new QueryExpression();
@ -842,7 +837,9 @@ namespace ICSharpCode.NRefactory.VB.Visitors
{ {
var newNamespace = new NamespaceDeclaration(); var newNamespace = new NamespaceDeclaration();
ConvertNodes(namespaceDeclaration.Identifiers, newNamespace.Identifiers); foreach (string id in namespaceDeclaration.Identifiers) {
newNamespace.Identifiers.Add(new Identifier(id, TextLocation.Empty));
}
ConvertNodes(namespaceDeclaration.Members, newNamespace.Members); ConvertNodes(namespaceDeclaration.Members, newNamespace.Members);
return EndNode(namespaceDeclaration, newNamespace); return EndNode(namespaceDeclaration, newNamespace);
@ -1656,7 +1653,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
foreach (var type in current.ImplementsTypes) { foreach (var type in current.ImplementsTypes) {
var resolved = provider.ResolveType(type, current); var resolved = provider.ResolveType(type, current);
var found = resolved.GetMembers(m => m.EntityType == EntityType.Method && m.Name == result.Name.Name); var found = resolved.GetMembers(m => m.SymbolKind == SymbolKind.Method && m.Name == result.Name.Name);
if (found.FirstOrDefault() != null) { if (found.FirstOrDefault() != null) {
result.ImplementsClause.Add(new InterfaceMemberSpecifier((AstType)type.Clone(), found.FirstOrDefault().Name)); result.ImplementsClause.Add(new InterfaceMemberSpecifier((AstType)type.Clone(), found.FirstOrDefault().Name));
} }
@ -1672,7 +1669,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
foreach (var type in current.ImplementsTypes) { foreach (var type in current.ImplementsTypes) {
var resolved = provider.ResolveType(type, current); var resolved = provider.ResolveType(type, current);
var found = resolved.GetMembers(m => m.EntityType == EntityType.Event && m.Name == result.Name.Name); var found = resolved.GetMembers(m => m.SymbolKind == SymbolKind.Event && m.Name == result.Name.Name);
if (found.FirstOrDefault() != null) { if (found.FirstOrDefault() != null) {
result.ImplementsClause.Add(new InterfaceMemberSpecifier((AstType)type.Clone(), found.FirstOrDefault().Name)); result.ImplementsClause.Add(new InterfaceMemberSpecifier((AstType)type.Clone(), found.FirstOrDefault().Name));
} }
@ -2271,5 +2268,15 @@ namespace ICSharpCode.NRefactory.VB.Visitors
{ {
return null; return null;
} }
public AstNode VisitNullNode(ICSharpCode.NRefactory.CSharp.AstNode nullNode, object data)
{
return null;
}
public AstNode VisitErrorNode(ICSharpCode.NRefactory.CSharp.AstNode errorNode, object data)
{
return null;
}
} }
} }

8
TestPlugin/TestPlugin.csproj

@ -43,6 +43,13 @@
<StartProgram>bin\Release\ILSpy.exe</StartProgram> <StartProgram>bin\Release\ILSpy.exe</StartProgram>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="ICSharpCode.NRefactory">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="ICSharpCode.NRefactory.CSharp">
<HintPath>..\packages\ICSharpCode.NRefactory.5.5.1\lib\Net40\ICSharpCode.NRefactory.CSharp.dll</HintPath>
</Reference>
<Reference Include="PresentationCore"> <Reference Include="PresentationCore">
<RequiredTargetFramework>3.0</RequiredTargetFramework> <RequiredTargetFramework>3.0</RequiredTargetFramework>
</Reference> </Reference>
@ -79,6 +86,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Resource Include="Clear.png" /> <Resource Include="Clear.png" />
<None Include="packages.config" />
<None Include="Readme.txt" /> <None Include="Readme.txt" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

5
TestPlugin/packages.config

@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="ICSharpCode.NRefactory" version="5.5.1" targetFramework="net40" />
<package id="Mono.Cecil" version="0.9.5.4" targetFramework="net40" />
</packages>

1
packages/repositories.config

@ -5,4 +5,5 @@
<repository path="..\ILSpy.AddIn\packages.config" /> <repository path="..\ILSpy.AddIn\packages.config" />
<repository path="..\ILSpy\packages.config" /> <repository path="..\ILSpy\packages.config" />
<repository path="..\NRefactory\ICSharpCode.NRefactory.VB\packages.config" /> <repository path="..\NRefactory\ICSharpCode.NRefactory.VB\packages.config" />
<repository path="..\TestPlugin\packages.config" />
</repositories> </repositories>
Loading…
Cancel
Save