Browse Source

Don't show "expression is never of the provided type" warning if the type could not be resolved.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
e6bc300e1e
  1. 2
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/ExpressionIsNeverOfProvidedTypeIssue.cs
  2. 28
      ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ExpressionIsNeverOfProvidedTypeIssueTests.cs

2
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/ExpressionIsNeverOfProvidedTypeIssue.cs

@ -61,6 +61,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -61,6 +61,8 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
var exprType = ctx.Resolve (isExpression.Expression).Type;
var providedType = ctx.ResolveType (isExpression.Type);
if (exprType.Kind == TypeKind.Unknown || providedType.Kind == TypeKind.Unknown)
return;
if (IsValidReferenceOrBoxingConversion(exprType, providedType))
return;

28
ICSharpCode.NRefactory.Tests/CSharp/CodeIssues/ExpressionIsNeverOfProvidedTypeIssueTests.cs

@ -270,6 +270,34 @@ sealed class TestClass @@ -270,6 +270,34 @@ sealed class TestClass
{
if (x is string[]) ;
}
}";
Test<ExpressionIsNeverOfProvidedTypeIssue> (input, 0);
}
[Test]
public void UnknownExpression()
{
var input = @"
sealed class TestClass
{
void TestMethod ()
{
if (unknown is string) ;
}
}";
Test<ExpressionIsNeverOfProvidedTypeIssue> (input, 0);
}
[Test]
public void UnknownType()
{
var input = @"
sealed class TestClass
{
void TestMethod (int x)
{
if (x is unknown) ;
}
}";
Test<ExpressionIsNeverOfProvidedTypeIssue> (input, 0);
}

Loading…
Cancel
Save