Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/xamarin/NRefactory.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Grunwald <daniel@danielgrunwald.de>2014-01-09 01:10:56 +0400
committerDaniel Grunwald <daniel@danielgrunwald.de>2014-01-09 01:11:38 +0400
commit571dd02b4f07a309c445c129e869074bc585a855 (patch)
tree0a179c4d95093eaa2b0ef2955ae47a0c25321d23 /ICSharpCode.NRefactory.Demo
parent1240a5fbafa423bd8c946aa10763a0ec4161b18e (diff)
Fix CS0126 and CS0127 issues with async methods.
The resolver now reports 'void' as expected type for return expressions in void methods.
Diffstat (limited to 'ICSharpCode.NRefactory.Demo')
-rw-r--r--ICSharpCode.NRefactory.Demo/CSDemo.cs15
-rw-r--r--ICSharpCode.NRefactory.Demo/SemanticTreeDialog.cs9
2 files changed, 20 insertions, 4 deletions
diff --git a/ICSharpCode.NRefactory.Demo/CSDemo.cs b/ICSharpCode.NRefactory.Demo/CSDemo.cs
index bf9fd95d..523c5cc0 100644
--- a/ICSharpCode.NRefactory.Demo/CSDemo.cs
+++ b/ICSharpCode.NRefactory.Demo/CSDemo.cs
@@ -213,11 +213,18 @@ namespace ICSharpCode.NRefactory.Demo
ICompilation compilation = project.CreateCompilation();
ResolveResult result;
+ IType expectedType = null;
+ Conversion conversion = null;
if (csharpTreeView.SelectedNode != null) {
var selectedNode = (AstNode)csharpTreeView.SelectedNode.Tag;
CSharpAstResolver resolver = new CSharpAstResolver(compilation, syntaxTree, unresolvedFile);
result = resolver.Resolve(selectedNode);
// CSharpAstResolver.Resolve() never returns null
+ Expression expr = selectedNode as Expression;
+ if (expr != null) {
+ expectedType = resolver.GetExpectedType(expr);
+ conversion = resolver.GetConversion(expr);
+ }
} else {
TextLocation location = GetTextLocation(csharpCodeTextBox, csharpCodeTextBox.SelectionStart);
result = ResolveAtLocation.Resolve(compilation, unresolvedFile, syntaxTree, location);
@@ -226,8 +233,14 @@ namespace ICSharpCode.NRefactory.Demo
return;
}
}
- using (var dlg = new SemanticTreeDialog(result))
+ using (var dlg = new SemanticTreeDialog()) {
+ dlg.AddRoot("Resolve() = ", result);
+ if (expectedType != null)
+ dlg.AddRoot("GetExpectedType() = ", expectedType);
+ if (conversion != null)
+ dlg.AddRoot("GetConversion() = ", conversion);
dlg.ShowDialog();
+ }
}
void CSharpCodeTextBoxKeyDown(object sender, KeyEventArgs e)
diff --git a/ICSharpCode.NRefactory.Demo/SemanticTreeDialog.cs b/ICSharpCode.NRefactory.Demo/SemanticTreeDialog.cs
index 7fb57b6d..85d9e16a 100644
--- a/ICSharpCode.NRefactory.Demo/SemanticTreeDialog.cs
+++ b/ICSharpCode.NRefactory.Demo/SemanticTreeDialog.cs
@@ -32,14 +32,17 @@ namespace ICSharpCode.NRefactory.Demo
/// </summary>
public partial class SemanticTreeDialog : Form
{
- public SemanticTreeDialog(ResolveResult rr)
+ public SemanticTreeDialog()
{
//
// The InitializeComponent() call is required for Windows Forms designer support.
//
InitializeComponent();
-
- var rootNode = MakeObjectNode("Resolve() = ", rr);
+ }
+
+ public void AddRoot(string prefix, object obj)
+ {
+ var rootNode = MakeObjectNode(prefix, obj);
rootNode.Expand();
treeView.Nodes.Add(rootNode);
}