From 71e42df2f917979bff19cc647534e1863b726549 Mon Sep 17 00:00:00 2001 From: Mansheng Yang Date: Thu, 16 Aug 2012 23:25:36 +0800 Subject: [PATCH] [CodeActions] Moved GetDefaultValueExpression back to CreateOverloadWithoutParameterAction class --- .../Refactoring/BaseRefactoringContext.cs | 38 ------------------- .../CreateOverloadWithoutParameterAction.cs | 33 +++++++++++++++- 2 files changed, 32 insertions(+), 39 deletions(-) diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs index 6390a8112e..f5601f8b96 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/BaseRefactoringContext.cs @@ -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(); diff --git a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs index 814fcdd073..9dbd124cab 100644 --- a/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs +++ b/ICSharpCode.NRefactory.CSharp/Refactoring/CodeActions/CreateOverloadWithoutParameterAction.cs @@ -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 ()); } } }