Browse Source

Reintroduced IProperty.IsAutoImplemented() extension method (RefactoringExtensions).

pull/45/merge
Andreas Weizel 12 years ago
parent
commit
b515630899
  1. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs
  2. 1
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs
  3. 30
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/RefactoringExtensions.cs

1
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/OverrideToStringCompletionData.cs

@ -138,6 +138,7 @@ namespace CSharpBinding.Completion @@ -138,6 +138,7 @@ namespace CSharpBinding.Completion
}
foreach (var p in sourceType.GetProperties().Where(prop => prop.CanGet && !prop.IsIndexer
&& prop.IsAutoImplemented()
&& prop.IsStatic == sourceType.GetDefinition().IsStatic
&& prop.ReturnType != null)) {
yield return new PropertyOrFieldWrapper(p) { Index = i };

1
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/InsertCtorSnippetRefactoring.cs

@ -83,6 +83,7 @@ namespace CSharpBinding.Refactoring @@ -83,6 +83,7 @@ namespace CSharpBinding.Refactoring
}
foreach (var p in resolvedSourceType.GetProperties().Where(prop => prop.CanSet && !prop.IsIndexer
&& prop.IsAutoImplemented()
&& prop.IsStatic == sourceType.IsStatic
&& prop.ReturnType != null)) {
yield return new PropertyOrFieldWrapper(p) { Index = i };

30
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/RefactoringExtensions.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.NRefactory.TypeSystem;
namespace CSharpBinding.Refactoring
{
/// <summary>
/// Some extensions related to refactoring features.
/// </summary>
public static class RefactoringExtensions
{
/// <summary>
/// Checks whether a property is auto-implemented (has only "get; set;" definitions).
/// </summary>
/// <param name="property">Property to check</param>
/// <returns>True if auto-implemented, false otherwise.</returns>
public static bool IsAutoImplemented(this IProperty property)
{
if (property == null)
throw new ArgumentNullException("property");
if (property.IsAbstract)
return false;
return property.CanGet && !property.Getter.HasBody && property.CanSet && !property.Setter.HasBody;
}
}
}
Loading…
Cancel
Save