normalize field when converting to ThreadLocal or atomic

This commit is contained in:
Bas Leijdekkers
2014-08-12 12:47:42 +02:00
parent c6fe0a4d6d
commit 66c03b8f04
6 changed files with 29 additions and 0 deletions
@@ -99,6 +99,7 @@ public class ConvertFieldToAtomicIntention extends PsiElementBaseIntentionAction
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
final PsiVariable psiVariable = getVariable(element);
LOG.assertTrue(psiVariable != null);
psiVariable.normalizeDeclaration();
final Query<PsiReference> refs = ReferencesSearch.search(psiVariable);
@@ -69,6 +69,7 @@ public class ConvertFieldToThreadLocalIntention extends PsiElementBaseIntentionA
public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {
final PsiField psiField = PsiTreeUtil.getParentOfType(element, PsiField.class);
LOG.assertTrue(psiField != null);
psiField.normalizeDeclaration();
final Query<PsiReference> refs = ReferencesSearch.search(psiField);
final Set<PsiElement> elements = new HashSet<PsiElement>();
@@ -0,0 +1,8 @@
import java.util.concurrent.atomic.AtomicReference;
// "Convert to atomic" "true"
class X {
private final AtomicReference<String> s = new AtomicReference<>("");
private String t;
private String u;
}
@@ -0,0 +1,4 @@
// "Convert to atomic" "true"
class X {
private String <caret>s = "", t, u;
}
@@ -0,0 +1,11 @@
// "Convert to ThreadLocal" "true"
class X {
private final ThreadLocal<String> s = new ThreadLocal<String>() {
@Override
protected String initialValue() {
return "";
}
};
private String t;
private String u;
}
@@ -0,0 +1,4 @@
// "Convert to ThreadLocal" "true"
class X {
private String <caret>s = "", t, u;
}