Browse Source

[CodeActions] Moved GetDefaultValueExpression back to CreateOverloadWithoutParameterAction class

newNRvisualizers
Mansheng Yang 14 years ago
parent
commit
71e42df2f9
  1. 38
      ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs
  2. 33
      ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs

38
ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs

@ -162,44 +162,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -162,44 +162,6 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
return str;
}
public Expression GetDefaultValueExpression (AstType astType)
{
var type = ResolveType (astType);
if ((type.IsReferenceType ?? false) || type.Kind == TypeKind.Dynamic)
return new NullReferenceExpression ();
var typeDefinition = type.GetDefinition ();
if (typeDefinition != null) {
switch (typeDefinition.KnownTypeCode) {
case KnownTypeCode.Boolean:
return new PrimitiveExpression (false);
case KnownTypeCode.Char:
return new PrimitiveExpression ('\0');
case KnownTypeCode.SByte:
case KnownTypeCode.Byte:
case KnownTypeCode.Int16:
case KnownTypeCode.UInt16:
case KnownTypeCode.Int32:
case KnownTypeCode.UInt32:
case KnownTypeCode.Int64:
case KnownTypeCode.UInt64:
case KnownTypeCode.Single:
case KnownTypeCode.Double:
case KnownTypeCode.Decimal:
return new PrimitiveExpression (0);
case KnownTypeCode.NullableOfT:
return new NullReferenceExpression ();
}
if (type.Kind == TypeKind.Struct)
return new ObjectCreateExpression (astType.Clone ());
}
return new DefaultValueExpression (astType.Clone ());
}
#region IServiceProvider implementation
readonly ServiceContainer services = new ServiceContainer();

33
ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs

@ -103,7 +103,38 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring @@ -103,7 +103,38 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
return astType.Member(members[0].Name);
}
return context.GetDefaultValueExpression (astType);
if ((type.IsReferenceType ?? false) || type.Kind == TypeKind.Dynamic)
return new NullReferenceExpression ();
var typeDefinition = type.GetDefinition ();
if (typeDefinition != null) {
switch (typeDefinition.KnownTypeCode) {
case KnownTypeCode.Boolean:
return new PrimitiveExpression (false);
case KnownTypeCode.Char:
return new PrimitiveExpression ('\0');
case KnownTypeCode.SByte:
case KnownTypeCode.Byte:
case KnownTypeCode.Int16:
case KnownTypeCode.UInt16:
case KnownTypeCode.Int32:
case KnownTypeCode.UInt32:
case KnownTypeCode.Int64:
case KnownTypeCode.UInt64:
case KnownTypeCode.Single:
case KnownTypeCode.Double:
case KnownTypeCode.Decimal:
return new PrimitiveExpression (0);
case KnownTypeCode.NullableOfT:
return new NullReferenceExpression ();
}
if (type.Kind == TypeKind.Struct)
return new ObjectCreateExpression (astType.Clone ());
}
return new DefaultValueExpression (astType.Clone ());
}
}
}

Loading…
Cancel
Save