Browse Source

[CodeIssues] Use IsKnownType in more places.

newNRvisualizers
Simon Lindgren 13 years ago
parent
commit
a747e477fe
  1. 4
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/FormatStringIssue.cs
  2. 10
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantToStringIssue.cs

4
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/FormatStringIssue.cs

@ -46,12 +46,10 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
class GatherVisitor : GatherVisitorBase class GatherVisitor : GatherVisitorBase
{ {
readonly BaseRefactoringContext context; readonly BaseRefactoringContext context;
readonly IType stringType;
public GatherVisitor(BaseRefactoringContext context) : base (context) public GatherVisitor(BaseRefactoringContext context) : base (context)
{ {
this.context = context; this.context = context;
stringType = context.Compilation.FindType(KnownTypeCode.String);
} }
public override void VisitInvocationExpression(InvocationExpression invocationExpression) public override void VisitInvocationExpression(InvocationExpression invocationExpression)
@ -121,7 +119,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
} }
var parameter = resolvedParameters[parameterIndex]; var parameter = resolvedParameters[parameterIndex];
var argument = allArguments[i]; var argument = allArguments[i];
if (parameter.Type.Equals(stringType) && parameterNames.Contains(parameter.Name) && argument is PrimitiveExpression) { if (parameter.Type.IsKnownType(KnownTypeCode.String) && parameterNames.Contains(parameter.Name) && argument is PrimitiveExpression) {
format = (string)((PrimitiveExpression)argument).Value; format = (string)((PrimitiveExpression)argument).Value;
formatStart = argument.StartLocation; formatStart = argument.StartLocation;
} else if (format != null || parameter.IsParams) { } else if (format != null || parameter.IsParams) {

10
ICSharpCode.NRefactory.CSharp/Refactoring/CodeIssues/RedundantToStringIssue.cs

@ -46,10 +46,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
class GatherVisitor : GatherVisitorBase class GatherVisitor : GatherVisitorBase
{ {
IType stringType;
IType objectType;
static Tuple<int, int> onlyFirst = Tuple.Create (0, 0); static Tuple<int, int> onlyFirst = Tuple.Create (0, 0);
static IDictionary<Tuple<string, int>, Tuple<int, int>> membersCallingToString = new Dictionary<Tuple<string, int>, Tuple<int, int>> { static IDictionary<Tuple<string, int>, Tuple<int, int>> membersCallingToString = new Dictionary<Tuple<string, int>, Tuple<int, int>> {
@ -61,8 +57,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
public GatherVisitor (BaseRefactoringContext context) : base (context) public GatherVisitor (BaseRefactoringContext context) : base (context)
{ {
stringType = context.Compilation.FindType(KnownTypeCode.String);
objectType = context.Compilation.FindType(KnownTypeCode.Object);
} }
HashSet<AstNode> processedNodes = new HashSet<AstNode>(); HashSet<AstNode> processedNodes = new HashSet<AstNode>();
@ -93,7 +87,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
int stringExpressionCount = 0; int stringExpressionCount = 0;
foreach (var expression in expressions) { foreach (var expression in expressions) {
var resolveResult = ctx.Resolve(expression); var resolveResult = ctx.Resolve(expression);
if (resolveResult.Type == stringType) { if (resolveResult.Type.IsKnownType(KnownTypeCode.String)) {
stringExpressionCount++; stringExpressionCount++;
} }
if (stringExpressionCount > 1) { if (stringExpressionCount > 1) {
@ -169,7 +163,7 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
if (targetResolveResult == null) { if (targetResolveResult == null) {
return; return;
} }
if (targetResolveResult.TargetResult.Type == stringType && targetResolveResult.Member.Name == "ToString") { if (targetResolveResult.TargetResult.Type.IsKnownType(KnownTypeCode.String) && targetResolveResult.Member.Name == "ToString") {
AddRedundantToStringIssue(memberExpression, invocationExpression); AddRedundantToStringIssue(memberExpression, invocationExpression);
} }
IMember member = targetResolveResult.Member; IMember member = targetResolveResult.Member;

Loading…
Cancel
Save