Browse Source

Fixed unit test.

newNRvisualizers
Mike Krüger 14 years ago
parent
commit
5d614c052d
  1. 28
      ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

28
ICSharpCode.NRefactory.CSharp/Completion/CSharpCompletionEngine.cs

@ -267,7 +267,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -267,7 +267,7 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
if (resolveResult == null)
return null;
if (resolveResult.Item1.Type.IsEnum ()) {
if (resolveResult.Item1.Type.Kind == TypeKind.Enum) {
var wrapper = new CompletionDataWrapper (this);
AddContextCompletion (wrapper, resolveResult.Item2, expressionOrVariableDeclaration.Item2);
AddEnumMembers (wrapper, resolveResult.Item1.Type, resolveResult.Item2);
@ -604,8 +604,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -604,8 +604,8 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
var wrapper = new CompletionDataWrapper (this);
AddTypesAndNamespaces (wrapper, GetState (), t => false);
return wrapper.Result;
// case "case":
// return CreateCaseCompletionData (location, result);
case "case":
return CreateCaseCompletionData (location);
// case ",":
// case ":":
// if (result.ExpressionContext == ExpressionContext.InheritableType) {
@ -1377,6 +1377,28 @@ namespace ICSharpCode.NRefactory.CSharp.Completion @@ -1377,6 +1377,28 @@ namespace ICSharpCode.NRefactory.CSharp.Completion
}
}
}
IEnumerable<ICompletionData> CreateCaseCompletionData (TextLocation location)
{
var unit = ParseStub ("a: break;");
if (unit == null)
return null;
var s = unit.GetNodeAt<SwitchStatement> (location);
if (s == null)
return null;
var offset = document.GetOffset (s.Expression.StartLocation);
var expr = GetExpressionAt (offset);
if (expr == null)
return null;
var resolveResult = ResolveExpression (expr.Item1, expr.Item2, expr.Item3);
if (resolveResult == null || resolveResult.Item1.Type.Kind != TypeKind.Enum)
return null;
var wrapper = new CompletionDataWrapper (this);
AddEnumMembers (wrapper, resolveResult.Item1.Type, resolveResult.Item2);
AutoCompleteEmptyMatch = false;
return wrapper.Result;
}
#region Parsing methods

Loading…
Cancel
Save