From 1f156c66434ae66100fc2d3554f2f02c5eb979cb Mon Sep 17 00:00:00 2001 From: peter Date: Thu, 11 Jul 2013 14:25:23 +0200 Subject: [PATCH] don't produce type canonical texts with ?extends (EA-47528) --- .../com/intellij/psi/impl/source/tree/SourceUtil.java | 10 +++++++++- .../testSrc/com/intellij/psi/MiscPsiTest.java | 5 +++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/SourceUtil.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/SourceUtil.java index 83261a3bdcae..5e0865e0ec45 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/SourceUtil.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/tree/SourceUtil.java @@ -46,7 +46,15 @@ public class SourceUtil { @Override public void visitLeaf(LeafElement leaf) { if (!REF_FILTER.contains(leaf.getElementType())) { - buffer.append(leaf.getText()); + String leafText = leaf.getText(); + if (buffer.length() > 0 && leafText.length() > 0 && Character.isJavaIdentifierPart(leafText.charAt(0))) { + char lastInBuffer = buffer.charAt(buffer.length() - 1); + if (lastInBuffer == '?' || Character.isJavaIdentifierPart(lastInBuffer)) { + buffer.append(" "); + } + } + + buffer.append(leafText); } } diff --git a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java index bda517dcbc81..2a89e218cded 100644 --- a/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java +++ b/java/java-tests/testSrc/com/intellij/psi/MiscPsiTest.java @@ -239,4 +239,9 @@ public class MiscPsiTest extends LightCodeInsightFixtureTestCase { assertFalse(assertInstanceOf(nestedBlock.getNode(), LazyParseableElement.class).isParsed()); } + public void testTypeCanonicalText() { + PsiType type = JavaPsiFacade.getElementFactory(getProject()).createTypeFromText("some .unknown. Foo", null); + assertEquals("some.unknown.Foo", type.getCanonicalText()); + } + }