diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:24:04 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-09-04 13:24:04 -0700 |
commit | c3d3a90f6b4ead083d63e28e6b9fcea93d675678 (patch) | |
tree | fc0dcd722b6d445468dbe7dad13b4c11781b1cbe /java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java | |
parent | 1aa2e09bdbd413eacb677e9fa4b50630530d0656 (diff) | |
download | idea-c3d3a90f6b4ead083d63e28e6b9fcea93d675678.tar.gz |
Snapshot idea/138.1980 from git://git.jetbrains.org/idea/community.git
Change-Id: Ib567c9c152d770212a7a3db20fbf591c210920bd
Diffstat (limited to 'java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java')
-rw-r--r-- | java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java b/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java index d59129174520..a08464fbd7ce 100644 --- a/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java +++ b/java/java-impl/src/com/intellij/slicer/SliceLeafAnalyzer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -244,7 +244,7 @@ public class SliceLeafAnalyzer { final SliceNodeGuide guide = new SliceNodeGuide(treeStructure); WalkingState<SliceNode> walkingState = new WalkingState<SliceNode>(guide) { @Override - public void visit(@NotNull SliceNode element) { + public void visit(@NotNull final SliceNode element) { element.calculateDupNode(); node(element, map).clear(); SliceNode duplicate = element.getDuplicate(); @@ -252,20 +252,21 @@ public class SliceLeafAnalyzer { node(element, map).addAll(node(duplicate, map)); } else { - final SliceUsage sliceUsage = element.getValue(); - - Collection<? extends AbstractTreeNode> children = element.getChildren(); - if (children.isEmpty()) { - PsiElement value = ApplicationManager.getApplication().runReadAction(new Computable<PsiElement>() { - @Override - public PsiElement compute() { - return sliceUsage.indexNesting == 0 ? sliceUsage.getElement() : null; + ApplicationManager.getApplication().runReadAction(new Runnable() { + @Override + public void run() { + final SliceUsage sliceUsage = element.getValue(); + + Collection<? extends AbstractTreeNode> children = element.getChildren(); + if (children.isEmpty()) { + PsiElement value = sliceUsage.indexNesting == 0 ? sliceUsage.getElement() : null; + if (value != null) { + node(element, map).addAll(ContainerUtil.singleton(value, LEAF_ELEMENT_EQUALITY)); + } } - }); - if (value != null) { - node(element, map).addAll(ContainerUtil.singleton(value, LEAF_ELEMENT_EQUALITY)); } - } + }); + super.visit(element); } } |