Adjust ILSpy to NRefactory changes.

This commit is contained in:
Daniel Grunwald
2011-09-17 15:53:39 +02:00
parent 3e6158ac47
commit 81bb822fdb
33 changed files with 126 additions and 61 deletions
@@ -210,6 +210,10 @@
<Folder Include="Tests" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -159,7 +159,7 @@ namespace ICSharpCode.NRefactory.Ast
using (var sw = new StringWriter())
{
OutputVisitor csOutVisitor = new OutputVisitor(sw, new CSharpFormattingOptions());
CSharpOutputVisitor csOutVisitor = new CSharpOutputVisitor(sw, new CSharpFormattingOptions());
code.AcceptVisitor(csOutVisitor, null);
return sw.ToString();
}
@@ -22,6 +22,10 @@ namespace ICSharpCode.NRefactory.Visitors
public EvaluateException(AstNode code, string msgFmt, params string[] msgArgs):base(code, string.Format(msgFmt, msgArgs)) {}
}
public enum SupportedLanguage {
CSharp
}
class TypedValue
{
Value value;
@@ -46,7 +50,7 @@ namespace ICSharpCode.NRefactory.Visitors
}
}
public class ExpressionEvaluator : NotImplementedAstVisitor<object, object>
public class ExpressionEvaluator : DepthFirstAstVisitor<object, object>
{
StackFrame context;
@@ -59,6 +63,11 @@ namespace ICSharpCode.NRefactory.Visitors
this.context = context;
}
protected override object VisitChildren(AstNode node, object data)
{
throw new NotImplementedException();
}
public static AstNode Parse(string code, SupportedLanguage language)
{
switch (language) {
@@ -105,11 +105,11 @@
<DependentUpon>AttachToProcessWindow.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="UI\BreakpointPanel.xaml.cs" >
<Compile Include="UI\BreakpointPanel.xaml.cs">
<DependentUpon>BreakpointPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Compile Include="UI\CallStackPanel.xaml.cs" >
<Compile Include="UI\CallStackPanel.xaml.cs">
<DependentUpon>CallStackPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
@@ -159,6 +159,10 @@
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -444,7 +444,7 @@ namespace ICSharpCode.ILSpy.Debugger.Services
/// Gets the tooltip control that shows the value of given variable.
/// Return null if no tooltip is available.
/// </summary>
public object GetTooltipControl(AstLocation logicalPosition, string variableName)
public object GetTooltipControl(TextLocation logicalPosition, string variableName)
{
try {
var tooltipExpression = GetExpression(variableName);
@@ -4,7 +4,7 @@
using System;
using System.Collections.Generic;
using System.Windows.Controls.Primitives;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.ILSpy.Debugger.Models.TreeModel;
@@ -17,7 +17,7 @@ namespace ICSharpCode.ILSpy.Debugger.Tooltips
{
internal DebuggerTooltipControl contentControl;
public DebuggerPopup(DebuggerTooltipControl parentControl, AstLocation logicalPosition, bool showPins = true)
public DebuggerPopup(DebuggerTooltipControl parentControl, TextLocation logicalPosition, bool showPins = true)
{
this.contentControl = new DebuggerTooltipControl(parentControl, logicalPosition, showPins);
this.contentControl.containingPopup = this;
@@ -12,7 +12,7 @@ using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.ILSpy.AvalonEdit;
using ICSharpCode.ILSpy.Debugger.Models.TreeModel;
@@ -33,9 +33,9 @@ namespace ICSharpCode.ILSpy.Debugger.Tooltips
private bool showPins;
private LazyItemsControl<ITreeNode> lazyGrid;
private IEnumerable<ITreeNode> itemsSource;
readonly AstLocation logicalPosition;
readonly TextLocation logicalPosition;
public DebuggerTooltipControl(AstLocation logicalPosition)
public DebuggerTooltipControl(TextLocation logicalPosition)
{
this.logicalPosition = logicalPosition;
InitializeComponent();
@@ -43,19 +43,19 @@ namespace ICSharpCode.ILSpy.Debugger.Tooltips
Loaded += new RoutedEventHandler(OnLoaded);
}
public DebuggerTooltipControl(AstLocation logicalPosition, ITreeNode node)
public DebuggerTooltipControl(TextLocation logicalPosition, ITreeNode node)
: this(logicalPosition, new ITreeNode[] { node })
{
}
public DebuggerTooltipControl(AstLocation logicalPosition, IEnumerable<ITreeNode> nodes)
public DebuggerTooltipControl(TextLocation logicalPosition, IEnumerable<ITreeNode> nodes)
: this(logicalPosition)
{
this.itemsSource = nodes;
}
public DebuggerTooltipControl(DebuggerTooltipControl parentControl, AstLocation logicalPosition, bool showPins = false)
public DebuggerTooltipControl(DebuggerTooltipControl parentControl, TextLocation logicalPosition, bool showPins = false)
: this(logicalPosition)
{
this.parentControl = parentControl;
@@ -8,9 +8,9 @@ using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using ICSharpCode.AvalonEdit;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.ILSpy.AvalonEdit;
using ICSharpCode.ILSpy.Debugger.Services;
@@ -62,7 +62,7 @@ namespace ICSharpCode.ILSpy.Debugger.Tooltips
args.InDocument = pos.HasValue;
if (pos.HasValue) {
args.LogicalPosition = new AstLocation(pos.Value.Line, pos.Value.Column);
args.LogicalPosition = new TextLocation(pos.Value.Line, pos.Value.Column);
} else {
return;
}
+1 -2
View File
@@ -38,7 +38,6 @@ using Mono.Cecil.Cil;
namespace ICSharpCode.Decompiler.Ast
{
using Ast = ICSharpCode.NRefactory.CSharp;
using ClassType = ICSharpCode.NRefactory.TypeSystem.ClassType;
using VarianceModifier = ICSharpCode.NRefactory.TypeSystem.VarianceModifier;
[Flags]
@@ -141,7 +140,7 @@ namespace ICSharpCode.Decompiler.Ast
formattingPolicy.SpaceBeforeMethodDeclarationParentheses = false;
formattingPolicy.SpaceBeforeConstructorDeclarationParentheses = false;
formattingPolicy.SpaceBeforeDelegateDeclarationParentheses = false;
astCompileUnit.AcceptVisitor(new OutputVisitor(outputFormatter, formattingPolicy), null);
astCompileUnit.AcceptVisitor(new CSharpOutputVisitor(outputFormatter, formattingPolicy), null);
}
public void AddAssembly(AssemblyDefinition assemblyDefinition, bool onlyAssemblyLevel = false)
@@ -754,7 +754,7 @@ namespace ICSharpCode.Decompiler.Ast
case ILCode.YieldBreak:
return new Ast.YieldBreakStatement();
case ILCode.YieldReturn:
return new Ast.YieldStatement { Expression = arg1 };
return new Ast.YieldReturnStatement { Expression = arg1 };
case ILCode.InitObject:
case ILCode.InitCollection:
{
@@ -90,6 +90,12 @@ namespace ICSharpCode.Decompiler.Ast
countUntilNextCleanup = dict.Count + 4;
}
public string AssemblyName {
get { return module.Assembly.Name.Name; }
}
public IList<IAttribute> ModuleAttributes { get; private set; }
public IList<IAttribute> AssemblyAttributes { get; private set; }
public ITypeDefinition GetTypeDefinition(string nameSpace, string name, int typeParameterCount, StringComparer nameComparer)
@@ -114,6 +120,11 @@ namespace ICSharpCode.Decompiler.Ast
return null;
}
public ITypeDefinition GetKnownTypeDefinition(TypeCode typeCode)
{
return GetTypeDefinition("System", ReflectionHelper.GetShortNameByTypeCode(typeCode), 0, StringComparer.Ordinal);
}
public IEnumerable<ITypeDefinition> GetTypes()
{
foreach (TypeDefinition cecilType in module.Types) {
@@ -165,6 +176,11 @@ namespace ICSharpCode.Decompiler.Ast
get { return new IParsedFile[0]; }
}
void IProjectContent.UpdateProjectContent(IParsedFile oldFile, IParsedFile newFile)
{
throw new NotSupportedException();
}
IParsedFile IProjectContent.GetFile(string fileName)
{
return null;
@@ -1006,11 +1006,6 @@ namespace ICSharpCode.Decompiler.Ast.Transforms
TypeReference tr = o.Annotation<TypeReference>();
return tr != null && tr.Namespace == ns && tr.Name == name;
}
public override S AcceptVisitor<T, S>(IPatternAstVisitor<T, S> visitor, T data)
{
throw new NotImplementedException();
}
}
#endregion
}
@@ -222,7 +222,7 @@ namespace ICSharpCode.Decompiler.Disassembler
} else {
// The ECMA specification says that ' inside SQString should be ecaped using an octal escape sequence,
// but we follow Microsoft's ILDasm and use \'.
return "'" + NRefactory.CSharp.OutputVisitor.ConvertString(identifier).Replace("'", "\\'") + "'";
return "'" + NRefactory.CSharp.CSharpOutputVisitor.ConvertString(identifier).Replace("'", "\\'") + "'";
}
}
@@ -353,7 +353,7 @@ namespace ICSharpCode.Decompiler.Disassembler
string s = operand as string;
if (s != null) {
writer.Write("\"" + NRefactory.CSharp.OutputVisitor.ConvertString(s) + "\"");
writer.Write("\"" + NRefactory.CSharp.CSharpOutputVisitor.ConvertString(s) + "\"");
} else if (operand is char) {
writer.Write(((int)(char)operand).ToString());
} else if (operand is float) {
@@ -126,10 +126,10 @@ namespace ICSharpCode.Decompiler.Disassembler
output.Write("pinvokeimpl");
if (method.HasPInvokeInfo && method.PInvokeInfo != null) {
PInvokeInfo info = method.PInvokeInfo;
output.Write("(\"" + NRefactory.CSharp.OutputVisitor.ConvertString(info.Module.Name) + "\"");
output.Write("(\"" + NRefactory.CSharp.CSharpOutputVisitor.ConvertString(info.Module.Name) + "\"");
if (!string.IsNullOrEmpty(info.EntryPoint) && info.EntryPoint != method.Name)
output.Write(" as \"" + NRefactory.CSharp.OutputVisitor.ConvertString(info.EntryPoint) + "\"");
output.Write(" as \"" + NRefactory.CSharp.CSharpOutputVisitor.ConvertString(info.EntryPoint) + "\"");
if (info.IsNoMangle)
output.Write(" nomangle");
@@ -344,7 +344,7 @@ namespace ICSharpCode.Decompiler.Disassembler
output.Write(" = ");
if (na.Argument.Value is string) {
// secdecls use special syntax for strings
output.Write("string('{0}')", NRefactory.CSharp.OutputVisitor.ConvertString((string)na.Argument.Value).Replace("'", "\'"));
output.Write("string('{0}')", NRefactory.CSharp.CSharpOutputVisitor.ConvertString((string)na.Argument.Value).Replace("'", "\'"));
} else {
WriteConstant(na.Argument.Value);
}
@@ -572,10 +572,10 @@ namespace ICSharpCode.Decompiler.Disassembler
if (cmi == null)
goto default;
output.Write("custom(\"{0}\", \"{1}\"",
NRefactory.CSharp.OutputVisitor.ConvertString(cmi.ManagedType.FullName),
NRefactory.CSharp.OutputVisitor.ConvertString(cmi.Cookie));
NRefactory.CSharp.CSharpOutputVisitor.ConvertString(cmi.ManagedType.FullName),
NRefactory.CSharp.CSharpOutputVisitor.ConvertString(cmi.Cookie));
if (cmi.Guid != Guid.Empty || !string.IsNullOrEmpty(cmi.UnmanagedType)) {
output.Write(", \"{0}\", \"{1}\"", cmi.Guid.ToString(), NRefactory.CSharp.OutputVisitor.ConvertString(cmi.UnmanagedType));
output.Write(", \"{0}\", \"{1}\"", cmi.Guid.ToString(), NRefactory.CSharp.CSharpOutputVisitor.ConvertString(cmi.UnmanagedType));
}
output.Write(')');
break;
@@ -122,6 +122,10 @@
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -95,6 +95,10 @@
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -7,7 +7,6 @@ using System.Linq;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.AvalonEdit.Utils;
@@ -16,6 +15,7 @@ using ICSharpCode.ILSpy.Bookmarks;
using ICSharpCode.ILSpy.Debugger;
using ICSharpCode.ILSpy.Debugger.Bookmarks;
using ICSharpCode.ILSpy.Debugger.Services;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using Mono.Cecil;
@@ -308,7 +308,7 @@ namespace ICSharpCode.ILSpy.AvalonEdit
if (map != null) {
BreakpointBookmark newBookmark = new BreakpointBookmark(
breakpoint.MemberReference, new AstLocation(map.SourceCodeLine, 0), breakpoint.FunctionToken,
breakpoint.MemberReference, new TextLocation(map.SourceCodeLine, 0), breakpoint.FunctionToken,
map.ILInstructionOffset, BreakpointAction.Break, DebugInformation.Language);
newBookmark.IsEnabled = breakpoint.IsEnabled;
@@ -4,7 +4,7 @@
using System;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using Mono.Cecil;
@@ -15,14 +15,14 @@ namespace ICSharpCode.ILSpy.Bookmarks
/// </summary>
public class BookmarkBase : IBookmark
{
AstLocation location;
TextLocation location;
protected virtual void RemoveMark()
{
}
public AstLocation Location {
public TextLocation Location {
get { return location; }
set { location = value; }
}
@@ -64,7 +64,7 @@ namespace ICSharpCode.ILSpy.Bookmarks
}
}
public BookmarkBase(MemberReference member, AstLocation location)
public BookmarkBase(MemberReference member, TextLocation location)
{
this.MemberReference = member;
this.Location = location;
@@ -4,6 +4,7 @@
using System;
using System.Collections.Generic;
using ICSharpCode.Decompiler;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using Mono.Cecil;
using Mono.CSharp;
@@ -97,7 +98,7 @@ namespace ICSharpCode.ILSpy.Bookmarks
public static void ToggleBookmark(string typeName, int line,
Predicate<BookmarkBase> canToggle,
Func<AstLocation, BookmarkBase> bookmarkFactory)
Func<TextLocation, BookmarkBase> bookmarkFactory)
{
foreach (BookmarkBase bookmark in GetBookmarks(typeName)) {
if (canToggle(bookmark) && bookmark.LineNumber == line) {
@@ -107,7 +108,7 @@ namespace ICSharpCode.ILSpy.Bookmarks
}
// no bookmark at that line: create a new bookmark
BookmarkManager.AddMark(bookmarkFactory(new AstLocation(line, 0)));
BookmarkManager.AddMark(bookmarkFactory(new TextLocation(line, 0)));
}
public static event BookmarkEventHandler Removed;
@@ -8,6 +8,7 @@ using ICSharpCode.Decompiler.ILAst;
using ICSharpCode.ILSpy.AvalonEdit;
using ICSharpCode.ILSpy.Bookmarks;
using ICSharpCode.ILSpy.SharpDevelop;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using Mono.Cecil;
@@ -83,7 +84,7 @@ namespace ICSharpCode.ILSpy.Debugger.Bookmarks
public string Tooltip { get; private set; }
public BreakpointBookmark(MemberReference member, AstLocation location, int functionToken, ILRange range, BreakpointAction action, DecompiledLanguages language)
public BreakpointBookmark(MemberReference member, TextLocation location, int functionToken, ILRange range, BreakpointAction action, DecompiledLanguages language)
: base(member, location)
{
this.action = action;
@@ -6,6 +6,7 @@ using System.Windows.Media;
using ICSharpCode.ILSpy.AvalonEdit;
using ICSharpCode.ILSpy.Bookmarks;
using ICSharpCode.ILSpy.SharpDevelop;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using Mono.Cecil;
@@ -33,7 +34,7 @@ namespace ICSharpCode.ILSpy.Debugger.Bookmarks
endLine = makerEndLine;
endColumn = makerEndColumn;
instance = new CurrentLineBookmark(memberReference, new AstLocation(startLine, startColumn), ilOffset);
instance = new CurrentLineBookmark(memberReference, new TextLocation(startLine, startColumn), ilOffset);
BookmarkManager.AddMark(instance);
}
@@ -53,7 +54,7 @@ namespace ICSharpCode.ILSpy.Debugger.Bookmarks
get { return 100; }
}
private CurrentLineBookmark(MemberReference member, AstLocation location, int ilOffset) : base(member, location)
private CurrentLineBookmark(MemberReference member, TextLocation location, int ilOffset) : base(member, location)
{
this.ILOffset = ilOffset;
}
@@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.ILSpy.AvalonEdit;
using Mono.Cecil;
@@ -10,7 +11,7 @@ namespace ICSharpCode.ILSpy.Bookmarks
{
public abstract class MarkerBookmark : BookmarkBase
{
public MarkerBookmark(MemberReference member, AstLocation location) : base(member, location)
public MarkerBookmark(MemberReference member, TextLocation location) : base(member, location)
{
}
@@ -101,6 +101,10 @@
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>
@@ -3,6 +3,7 @@
using System;
using ICSharpCode.AvalonEdit;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
namespace ICSharpCode.ILSpy.Debugger.Tooltips
@@ -27,7 +28,7 @@ namespace ICSharpCode.ILSpy.Debugger.Tooltips
/// <summary>
/// The mouse position, in document coordinates.
/// </summary>
public AstLocation LogicalPosition { get; set; }
public TextLocation LogicalPosition { get; set; }
/// <summary>
/// Gets/Sets the content to show as a tooltip.
@@ -11,6 +11,7 @@ using ICSharpCode.ILSpy.Bookmarks;
using ICSharpCode.ILSpy.Debugger.Bookmarks;
using ICSharpCode.ILSpy.Debugger.Tooltips;
using ICSharpCode.NRefactory.CSharp.Resolver;
using ICSharpCode.NRefactory.Semantics;
using Mono.Cecil;
namespace ICSharpCode.ILSpy.Debugger.Services
@@ -4,6 +4,7 @@
using System;
using System.Diagnostics;
using ICSharpCode.Decompiler;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.CSharp;
namespace ICSharpCode.ILSpy.Debugger.Services
@@ -84,7 +85,7 @@ namespace ICSharpCode.ILSpy.Debugger.Services
/// Gets the tooltip control that shows the value of given variable.
/// Return null if no tooltip is available.
/// </summary>
object GetTooltipControl(AstLocation logicalPosition, string variable);
object GetTooltipControl(TextLocation logicalPosition, string variable);
/// <summary>
/// Queries the debugger whether it is possible to set the instruction pointer to a given position.
+13 -3
View File
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.1.0.7638-alpha
# SharpDevelop 4.2.0.7998-alpha
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "doc", "doc", "{F45DB999-7E72-4000-B5AD-3A7B485A0896}"
ProjectSection(SolutionItems) = postProject
doc\Command Line.txt = doc\Command Line.txt
@@ -11,10 +11,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{89
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.Debugger", "Debugger\ILSpy.Debugger\ILSpy.Debugger.csproj", "{6D3D0F0D-348D-456A-A6ED-E9BD5EFABB6A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy", "ILSpy\ILSpy.csproj", "{1E85EFF9-E370-4683-83E4-8A3D063FF791}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.TreeView", "SharpTreeView\ICSharpCode.TreeView.csproj", "{DDE2A481-8271-4EAC-A330-8FA6A38D13D1}"
@@ -41,6 +41,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.BamlDecompiler.Tests"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpy.SharpDevelop.LGPL", "ILSpy.SharpDevelop.LGPL\ILSpy.SharpDevelop.LGPL.csproj", "{704F66F1-5C7F-4326-A7AA-C604A3896D4E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp", "NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj", "{53DCA265-3C3C-42F9-B647-F72BA678122B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -161,6 +163,14 @@ Global
{704F66F1-5C7F-4326-A7AA-C604A3896D4E}.Release|Any CPU.ActiveCfg = Release|x86
{704F66F1-5C7F-4326-A7AA-C604A3896D4E}.Release|x86.Build.0 = Release|x86
{704F66F1-5C7F-4326-A7AA-C604A3896D4E}.Release|x86.ActiveCfg = Release|x86
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.Build.0 = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.ActiveCfg = Debug|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.Build.0 = Release|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.Build.0 = Release|Any CPU
{53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
-2
View File
@@ -138,8 +138,6 @@ namespace ICSharpCode.ILSpy.Bookmarks
var n = Node as TypeDeclaration;
switch (n.ClassType)
{
case ClassType.Delegate:
return GetTypeOverlayedImage(attrNode, TypeIcon.Delegate);
case ClassType.Enum:
return GetTypeOverlayedImage(attrNode, TypeIcon.Enum);
case ClassType.Struct:
+4
View File
@@ -355,6 +355,10 @@
<Project>{63E6915C-7EA4-4D76-AB28-0D7191EEA626}</Project>
<Name>Mono.Cecil.Pdb</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory.VB\ICSharpCode.NRefactory.VB.csproj">
<Project>{7B82B671-419F-45F4-B778-D9286F996EFA}</Project>
<Name>ICSharpCode.NRefactory.VB</Name>
+1 -1
View File
@@ -575,7 +575,7 @@ namespace ICSharpCode.ILSpy
((ComposedType)astType).PointerRank--;
}
astType.AcceptVisitor(new OutputVisitor(w, new CSharpFormattingOptions()), null);
astType.AcceptVisitor(new CSharpOutputVisitor(w, new CSharpFormattingOptions()), null);
return w.ToString();
}
+11 -8
View File
@@ -74,22 +74,25 @@ namespace ICSharpCode.ILSpy.VB
return loader.ReadTypeReference(annotation, entity: current).Resolve(context);
}
public ClassType GetClassTypeForAstType(ICSharpCode.NRefactory.CSharp.AstType type)
public TypeKind GetTypeKindForAstType(ICSharpCode.NRefactory.CSharp.AstType type)
{
var definition = type.Annotations.OfType<TypeReference>().First().ResolveOrThrow();
var annotation = type.Annotation<TypeReference>();
if (annotation == null)
return TypeKind.Unknown;
var definition = annotation.ResolveOrThrow();
if (definition.IsClass)
return ClassType.Class;
return TypeKind.Class;
if (definition.IsInterface)
return ClassType.Interface;
return TypeKind.Interface;
if (definition.IsEnum)
return ClassType.Enum;
return TypeKind.Enum;
if (definition.IsFunctionPointer)
return ClassType.Delegate;
return TypeKind.Delegate;
if (definition.IsValueType)
return ClassType.Struct;
return TypeKind.Struct;
return ClassType.Module;
return TypeKind.Unknown;
}
public TypeCode ResolveExpression(ICSharpCode.NRefactory.CSharp.Expression expression)
@@ -15,7 +15,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
{
string RootNamespace { get; }
string GetTypeNameForAttribute(CSharp.Attribute attribute);
ClassType GetClassTypeForAstType(CSharp.AstType type);
TypeKind GetTypeKindForAstType(CSharp.AstType type);
TypeCode ResolveExpression(CSharp.Expression expression);
bool? IsReferenceType(CSharp.Expression expression);
ITypeResolveContext ResolveContext { get; }
@@ -881,7 +881,7 @@ namespace ICSharpCode.NRefactory.VB.Visitors
if (typeDeclaration.BaseTypes.Any()) {
var first = typeDeclaration.BaseTypes.First();
if (provider.GetClassTypeForAstType(first) != ClassType.Interface) {
if (provider.GetTypeKindForAstType(first) != TypeKind.Interface) {
ConvertNodes(typeDeclaration.BaseTypes.Skip(1), type.ImplementsTypes);
type.InheritsType = (AstType)first.AcceptVisitor(this, data);
} else
+4
View File
@@ -94,6 +94,10 @@
<Project>{D68133BD-1E63-496E-9EDE-4FBDBF77B486}</Project>
<Name>Mono.Cecil</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj">
<Project>{53DCA265-3C3C-42F9-B647-F72BA678122B}</Project>
<Name>ICSharpCode.NRefactory.CSharp</Name>
</ProjectReference>
<ProjectReference Include="..\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
<Name>ICSharpCode.NRefactory</Name>