History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: RSRP-28194
Type: Bug Bug
Status: Open Open
Priority: Normal Normal
Assignee: Sergey Shkredov
Reporter: Vladimir Reshetnikov
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
ReSharper

'Use base type where possible' creates duplicate interface constraint

Created: 23 Aug 06 16:01   Updated: 14 Apr 08 14:15
Component/s: Refactorings - Use Base Type Where Possible
Fix Version/s: Aroha
Security Level: Everybody (All jira users)

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown

Build: 258


 Description  « Hide
using System;
internal class Generic<T> : ICloneable where T : Generic<T>, ICloneable
{
	public object Clone()
	{
		return MemberwiseClone();
	}
	
	public static Generic<T> Clone(Generic<T> obj)
	{
		return (Generic<T>) obj.Clone();
	}
}

Apply 'use base type' for Generic<T>. Select base type ICloneable.
Exception will occur and wrong code is generated:

using System;
internal class Generic<T> : ICloneable where T : ICloneable, ICloneable
{
	public object Clone()
	{
		return MemberwiseClone();
	}
	
	public static ICloneable Clone(ICloneable obj)
	{
		return (Generic<T>) obj.Clone();
	}
}


 All   Comments   Work Log   Change History      Sort Order:
Vladimir Reshetnikov - 23 Aug 06 16:04
JetBrains.ReSharper.Util.InternalErrorException: Write lock should be acquired. See Shell.AcquireWriteLock().
An exception has occurred ---> JetBrains.ReSharper.Util.InternalErrorException: Write lock should be acquired. See Shell.AcquireWriteLock().

at JetBrains.ReSharper.Util.InternalErrorException..ctor(String, Exception) in c:\Agent\work\ReSharper2.0\src\Util\src\InternalErrorException.cs:line 28 column 7
at JetBrains.ReSharper.Util.Logger.Assert(Boolean, String, Object[]) in c:\Agent\work\ReSharper2.0\src\Util\src\Logger.cs:line 130 column 11
at JetBrains.ReSharper.Shell.UIApplicationShell.AssertWriteAccessAllowed() in c:\Agent\work\ReSharper2.0\src\Shell\src\UIApplicationShell.cs:line 689 column 5
at JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(ITreeNode, ITreeNode) in c:\Agent\work\ReSharper2.0\src\Psi\src\ExtensionsAPI\Tree\ModificationUtil.cs:line 301 column 7
at JetBrains.ReSharper.Refactorings.Util.SubstitutionApplicator.SubstituteReferenceName(IDeclaredType, IReferenceNameNode) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Util\SubstitutionApplicator.cs:line 95 column 9
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.LanguageSpecificUtil.BindTo(IReference, ITypeElement, ITypeElement, ISubstitution) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\LanguageSpecificUtil.cs:line 451 column 9
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ExecutedStage.ProcessReferences(ArrayList, IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ExecutedStage.cs:line 102 column 13
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ExecutedStage.Initialize(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ExecutedStage.cs:line 69 column 11
at JetBrains.ReSharper.Refactorings.Util.StagedRefactoringBase.SetCurrentStage(IRefactoringStage, IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Util\StagedRefactoringBase.cs:line 30 column 11
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ConvertRefsToBaseRefactoringWorkflow.Execute(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ConvertRefsToBaseRefactoringWorkflow.cs:line 76 column 5
at JetBrains.ReSharper.Refactorings.Workflow.RefactoringExecutor.Execute(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 608 column 13
at JetBrains.ReSharper.Shell.Progress.TaskHelper.Run() in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 231 column 13
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object)
at System.Threading.ExecutionContext.runTryCode(Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, Object)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext, ContextCallback, Object)
at System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback, Object)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message&)
at System.Windows.Forms.ScrollableControl.WndProc(Message&)
at System.Windows.Forms.ContainerControl.WndProc(Message&)
at System.Windows.Forms.Form.WndProc(Message&)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message&)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message&)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)
at JetBrains.UI.Interop.Win32Declarations.DispatchMessage(MSG&)
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.RunMessageLoop() in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 127 column 11
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(TaskHelper, String, Boolean, Boolean&) in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 149 column 11
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(TaskWithProgress, String, Boolean&) in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 170 column 7
at JetBrains.ReSharper.Refactorings.Workflow.TaskExecutorWrapper.ExecuteTask(TaskWithProgress, String, Boolean&) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 477 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ExecuteRefactoring(Object[]) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 420 column 9
at JetBrains.ReSharper.Psi.Impl.PsiManagerImpl.PsiManagerImpl.DoTransaction(TransactionHandler, Object[]) in c:\Agent\work\ReSharper2.0\src\Psi\src\impl\PsiManager\PsiManagerImpl.cs:line 319 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.TryExecuteRefactoring() in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 270 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ShowNextPage() in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 165 column 13
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.MyForm_OnContinueClicked(Object, EventArgs) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 93 column 5
at JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm.myContinueButton_Click(Object, EventArgs) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\RefactoringWizardForm.cs:line 470 column 5
at System.Windows.Forms.Control.OnClick(EventArgs)
at System.Windows.Forms.Button.OnClick(EventArgs)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs)
at System.Windows.Forms.Control.WmMouseUp(Message&, MouseButtons, Int32)
at System.Windows.Forms.Control.WndProc(Message&)
at System.Windows.Forms.ButtonBase.WndProc(Message&)
at System.Windows.Forms.Button.WndProc(Message&)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message&)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message&)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)

at JetBrains.ReSharper.Util.Logger.Assert(Boolean condition, String messageFormat, Object[] args) in c:\Agent\work\ReSharper2.0\src\Util\src\Logger.cs:line 130
— End of inner exception stack trace —

at JetBrains.ReSharper.Util.Logger.LogExceptionEx(Exception, String, Boolean) in c:\Agent\work\ReSharper2.0\src\Util\src\Logger.cs:line 327 column 9
at JetBrains.ReSharper.Util.Logger.LogException(Exception) in c:\Agent\work\ReSharper2.0\src\Util\src\Logger.cs:line 339 column 5
at JetBrains.ReSharper.Util.Logger.Assert(Boolean, String, Object[]) in c:\Agent\work\ReSharper2.0\src\Util\src\Logger.cs:line 134 column 11
at JetBrains.ReSharper.Shell.UIApplicationShell.AssertWriteAccessAllowed() in c:\Agent\work\ReSharper2.0\src\Shell\src\UIApplicationShell.cs:line 689 column 5
at JetBrains.ReSharper.Psi.ExtensionsAPI.Tree.ModificationUtil.ReplaceChild(ITreeNode, ITreeNode) in c:\Agent\work\ReSharper2.0\src\Psi\src\ExtensionsAPI\Tree\ModificationUtil.cs:line 301 column 7
at JetBrains.ReSharper.Refactorings.Util.SubstitutionApplicator.SubstituteReferenceName(IDeclaredType, IReferenceNameNode) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Util\SubstitutionApplicator.cs:line 95 column 9
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.LanguageSpecificUtil.BindTo(IReference, ITypeElement, ITypeElement, ISubstitution) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\LanguageSpecificUtil.cs:line 451 column 9
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ExecutedStage.ProcessReferences(ArrayList, IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ExecutedStage.cs:line 102 column 13
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ExecutedStage.Initialize(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ExecutedStage.cs:line 69 column 11
at JetBrains.ReSharper.Refactorings.Util.StagedRefactoringBase.SetCurrentStage(IRefactoringStage, IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Util\StagedRefactoringBase.cs:line 30 column 11
at JetBrains.ReSharper.Refactorings.ConvertRefsToBase.ConvertRefsToBaseRefactoringWorkflow.Execute(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\ConvertRefsToBase\ConvertRefsToBaseRefactoringWorkflow.cs:line 76 column 5
at JetBrains.ReSharper.Refactorings.Workflow.RefactoringExecutor.Execute(IProgressIndicator) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 608 column 13
at JetBrains.ReSharper.Shell.Progress.TaskHelper.Run() in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 231 column 13
at System.Windows.Forms.Control.InvokeMarshaledCallbackDo(ThreadMethodEntry)
at System.Windows.Forms.Control.InvokeMarshaledCallbackHelper(Object)
at System.Threading.ExecutionContext.runTryCode(Object)
at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode, CleanupCode, Object)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext, ContextCallback, Object)
at System.Threading.ExecutionContext.Run(ExecutionContext, ContextCallback, Object)
at System.Windows.Forms.Control.InvokeMarshaledCallback(ThreadMethodEntry)
at System.Windows.Forms.Control.InvokeMarshaledCallbacks()
at System.Windows.Forms.Control.WndProc(Message&)
at System.Windows.Forms.ScrollableControl.WndProc(Message&)
at System.Windows.Forms.ContainerControl.WndProc(Message&)
at System.Windows.Forms.Form.WndProc(Message&)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message&)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message&)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)
at JetBrains.UI.Interop.Win32Declarations.DispatchMessage(MSG&)
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.RunMessageLoop() in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 127 column 11
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(TaskHelper, String, Boolean, Boolean&) in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 149 column 11
at JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(TaskWithProgress, String, Boolean&) in c:\Agent\work\ReSharper2.0\src\Shell\src\Progress\UITaskExecutor.cs:line 170 column 7
at JetBrains.ReSharper.Refactorings.Workflow.TaskExecutorWrapper.ExecuteTask(TaskWithProgress, String, Boolean&) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 477 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ExecuteRefactoring(Object[]) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 420 column 9
at JetBrains.ReSharper.Psi.Impl.PsiManagerImpl.PsiManagerImpl.DoTransaction(TransactionHandler, Object[]) in c:\Agent\work\ReSharper2.0\src\Psi\src\impl\PsiManager\PsiManagerImpl.cs:line 319 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.TryExecuteRefactoring() in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 270 column 9
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ShowNextPage() in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 165 column 13
at JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.MyForm_OnContinueClicked(Object, EventArgs) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\WorkflowProcessor.cs:line 93 column 5
at JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm.myContinueButton_Click(Object, EventArgs) in c:\Agent\work\ReSharper2.0\src\Refactorings\src\Workflow\RefactoringWizardForm.cs:line 470 column 5
at System.Windows.Forms.Control.OnClick(EventArgs)
at System.Windows.Forms.Button.OnClick(EventArgs)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs)
at System.Windows.Forms.Control.WmMouseUp(Message&, MouseButtons, Int32)
at System.Windows.Forms.Control.WndProc(Message&)
at System.Windows.Forms.ButtonBase.WndProc(Message&)
at System.Windows.Forms.Button.WndProc(Message&)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message&)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message&)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr, Int32, IntPtr, IntPtr)