Project
ReSharper
Priority
Normal
Type
Bug
Fix versions
No Fix versions
State
Fixed
Assignee
Andrey Simanovsky
Subsystem
No subsystem
Affected versions
No Affected versions
Fixed in build
No Fixed in build
  • Created by   Vladimir Reshetnikov
    5 years ago (06 Oct 2006 14:52)
  • Updated by   Vladimir Reshetnikov
    5 years ago (13 Nov 2006 01:17)
  • Jira: RSRP-29448
    (history, comments)
 
RSRP-29448 'Pull members up' hangs if there is a circular dependency
0
Issue is visible to: All Users
  The issue is visible to the selected user group only
class A : A.B
{
    public class B : A {}
}


Put the caret onto 'B', and apply 'Pull members up'. ReSharper hangs.
Call stack from CLRDbg:

    [External Code]    
    JetBrains.ReSharper.Util.dll!JetBrains.ReSharper.Util.WeakToStrongHashtable.WeakReferencesComparer.Compare(object x = {JetBrains.ReSharper.Util.EquableWeakReference}, object y = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 23 + 0x7 bytes    C#

    [External Code]    
    JetBrains.ReSharper.Util.dll!JetBrains.ReSharper.Util.WeakToStrongHashtable.this[object].get(object key = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 57 + 0xa bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.Impl.Resolve.ResolveCache.this[JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IRef].get(JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IRef reference = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 46 + 0x10 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.Impl.Resolve.ResolveUtil.ResolveWithCache(JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IInternalRef reference = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 582 + 0xd bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName.Resolve() Line 192 + 0x8 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.TypeFactory.CreateType(JetBrains.ReSharper.Psi.CSharp.IReferenceNameNode referenceName = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 90 + 0xa bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.TypeFactory.CreateType(JetBrains.ReSharper.Psi.CSharp.IDeclaredTypeUsageNode typeUsage = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.UserDeclaredTypeUsageStub}) Line 109 + 0x1d bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ClassLikeDeclarationBase.SuperTypes.get() Line 100 + 0x1b bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClassLikeTypeElement.GetSuperTypes() Line 183 + 0x9 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClass.GetSuperTypes() Line 55 + 0x8 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClass.GetSuperClass() Line 27 + 0x7 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PullMembersUp.PreExecutionStage.FindSuspiciousMembers(JetBrains.ReSharper.Util.OneToManyMap membersMap = {JetBrains.ReSharper.Util.OneToManyMap}, JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}, JetBrains.ReSharper.Psi.Search.IFinder finder = {JetBrains.ReSharper.Psi.Impl.Search.Finder}) Line 133 + 0x2c bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PullMembersUp.PreExecutionStage.Initialize(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 80 + 0xf bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Util.StagedRefactoringBase.SetCurrentStage(JetBrains.ReSharper.Refactorings.Util.IRefactoringStage value = {JetBrains.ReSharper.Refactorings.PullMembersUp.PreExecutionStage}, JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 30 + 0x25 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PullMembersUp.PullMembersUpPage.Commit(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}, JetBrains.ReSharper.Refactorings.Workflow.CustomPageCommitFlags flags = {JetBrains.ReSharper.Refactorings.Workflow.CustomPageCommitFlags}) Line 110    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.CustomPageCommitter.Commit(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 573 + 0x1a bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper.Run() Line 231 + 0x1a bytes    C#
    [External Code]    
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.RunMessageLoop() Line 127 + 0x8 bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper taskHelper = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper}, string taskName = "", bool cancelable = true, out bool canceled = false) Line 149 + 0x9 bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(JetBrains.ReSharper.Shell.Progress.TaskWithProgress task = {JetBrains.ReSharper.Shell.Progress.TaskWithProgress}, string taskName = "", out bool canceled = false) Line 170 + 0x22 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.TaskExecutorWrapper.ExecuteTask(JetBrains.ReSharper.Shell.Progress.TaskWithProgress task = {JetBrains.ReSharper.Shell.Progress.TaskWithProgress}, string taskName = "", out bool canceled = false) Line 477 + 0x15 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.CommitPage(JetBrains.ReSharper.Refactorings.Workflow.ICustomPage content = {JetBrains.ReSharper.Refactorings.PullMembersUp.PullMembersUpPage}, out bool canceled = false, out bool commitCanceled = false) Line 236 + 0x30 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ShowNextPage() Line 114 + 0x14 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.MyForm_OnContinueClicked(object sender = {JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm}, System.EventArgs e = {System.EventArgs}) Line 92 + 0x8 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm.myContinueButton_Click(object sender = {Text = Cannot evaluate expression because the code of the current method is optimized.}, System.EventArgs e = {X = 32 Y = 12 Button = Left}) Line 470    C#
    [External Code]    

Possibly, relates to
http://www.jetbrains.net/jira/browse/RSRP-29446
http://www.jetbrains.net/jira/browse/RSRP-29437
http://www.jetbrains.net/jira/browse/RSRP-29444
http://www.jetbrains.net/jira/browse/RSRP-29436
http://www.jetbrains.net/jira/browse/RSRP-29382

Issue was closed
Comments (1)
 
History
 
Linked Issues (?)
 
TeamCity Changes (0)
 
Vladimir Reshetnikov
  Vladimir Reshetnikov
06 Oct 2006 15:07
5 years ago
'Push members down' also hangs on the same code.

    [External Code]    
    JetBrains.ReSharper.Util.dll!JetBrains.ReSharper.Util.WeakToStrongHashtable.WeakReferencesComparer.Compare(object x = {JetBrains.ReSharper.Util.EquableWeakReference}, object y = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 23 + 0x7 bytes    C#

    [External Code]    
    JetBrains.ReSharper.Util.dll!JetBrains.ReSharper.Util.WeakToStrongHashtable.this[object].get(object key = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 57 + 0xa bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.Impl.Resolve.ResolveCache.this[JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IRef].get(JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IRef reference = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 46 + 0x10 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.Impl.Resolve.ResolveUtil.ResolveWithCache(JetBrains.ReSharper.Psi.ExtensionsAPI.Resolve.IInternalRef reference = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 582 + 0xd bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName.Resolve() Line 192 + 0x8 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.TypeFactory.CreateType(JetBrains.ReSharper.Psi.CSharp.IReferenceNameNode referenceName = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ReferenceName}) Line 90 + 0xa bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.TypeFactory.CreateType(JetBrains.ReSharper.Psi.CSharp.IDeclaredTypeUsageNode typeUsage = {JetBrains.ReSharper.Psi.CSharp.Impl.Tree.UserDeclaredTypeUsageStub}) Line 109 + 0x1e bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Tree.ClassLikeDeclarationBase.SuperTypes.get() Line 100 + 0x1b bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClassLikeTypeElement.GetSuperTypes() Line 183 + 0x9 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClass.GetSuperTypes() Line 55 + 0x8 bytes    C#
    JetBrains.ReSharper.Psi.dll!JetBrains.ReSharper.Psi.CSharp.Impl.Cache2.CSharpClass.GetSuperClass() Line 27 + 0x7 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PushMembersDown.PreExecutionStage.FindSuspiciousMembers(JetBrains.ReSharper.Util.OneToManyMap membersMap = {JetBrains.ReSharper.Util.OneToManyMap}, JetBrains.ReSharper.Psi.Search.IFinder finder = {JetBrains.ReSharper.Psi.Impl.Search.Finder}, JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.SubProgressIndicator}) Line 185 + 0x2c bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PushMembersDown.PreExecutionStage.Initialize(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 100 + 0x12 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Util.StagedRefactoringBase.SetCurrentStage(JetBrains.ReSharper.Refactorings.Util.IRefactoringStage value = {JetBrains.ReSharper.Refactorings.PushMembersDown.PreExecutionStage}, JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 30 + 0x25 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.PushMembersDown.PushMembersDownPage.Commit(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}, JetBrains.ReSharper.Refactorings.Workflow.CustomPageCommitFlags flags = {JetBrains.ReSharper.Refactorings.Workflow.CustomPageCommitFlags}) Line 93 + 0x20 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.CustomPageCommitter.Commit(JetBrains.ReSharper.Shell.Progress.IProgressIndicator progressIndicator = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.MyProgressIndicator}) Line 573 + 0x1a bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper.Run() Line 231 + 0x1a bytes    C#
    [External Code]    
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.RunMessageLoop() Line 127 + 0x8 bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper taskHelper = {JetBrains.ReSharper.Shell.Progress.UITaskExecutor.TaskHelper}, string taskName = "", bool cancelable = true, out bool canceled = false) Line 149 + 0x9 bytes    C#
    JetBrains.ReSharper.Shell.dll!JetBrains.ReSharper.Shell.Progress.UITaskExecutor.ExecuteTask(JetBrains.ReSharper.Shell.Progress.TaskWithProgress task = {JetBrains.ReSharper.Shell.Progress.TaskWithProgress}, string taskName = "", out bool canceled = false) Line 170 + 0x22 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.TaskExecutorWrapper.ExecuteTask(JetBrains.ReSharper.Shell.Progress.TaskWithProgress task = {JetBrains.ReSharper.Shell.Progress.TaskWithProgress}, string taskName = "", out bool canceled = false) Line 477 + 0x15 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.CommitPage(JetBrains.ReSharper.Refactorings.Workflow.ICustomPage content = {JetBrains.ReSharper.Refactorings.PushMembersDown.PushMembersDownPage}, out bool canceled = false, out bool commitCanceled = false) Line 236 + 0x30 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.ShowNextPage() Line 114 + 0x14 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.WorkflowProcessor.MyForm_OnContinueClicked(object sender = {JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm}, System.EventArgs e = {System.EventArgs}) Line 92 + 0x8 bytes    C#
    JetBrains.ReSharper.Refactorings.dll!JetBrains.ReSharper.Refactorings.Workflow.RefactoringWizardForm.myContinueButton_Click(object sender = {Text = Cannot evaluate expression because the code of the current method is optimized.}, System.EventArgs e = {X = 31 Y = 11 Button = Left}) Line 470    C#
    [External Code]