No annotations rendered in completion and other places

KT-5517 Completion shouldn't show inlineOptions annotation

 #KT-5517 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-07-21 16:44:51 +03:00
parent 0ff0fc847d
commit 383a4da231
15 changed files with 72 additions and 19 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.descriptors.PackageViewDescriptor;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy;
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil;
@@ -56,6 +57,7 @@ public abstract class AbstractCompileJavaAgainstKotlinTest extends TestCaseWithT
options.setParameterNameRenderingPolicy(ParameterNameRenderingPolicy.NONE);
options.setVerbose(true);
options.setExcludedAnnotationClasses(Collections.singleton(new FqName(Retention.class.getName())));
options.setModifiers(DescriptorRendererModifier.ALL);
return Unit.INSTANCE$;
}
}
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.load.kotlin.reflect.ReflectKotlinClass
import org.jetbrains.kotlin.load.kotlin.reflect.RuntimeModuleData
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.renderer.ParameterNameRenderingPolicy
import org.jetbrains.kotlin.resolve.DescriptorUtils
@@ -44,7 +45,6 @@ import org.jetbrains.kotlin.test.util.RecursiveDescriptorComparator.Configuratio
import org.jetbrains.kotlin.types.TypeSubstitutor
import org.jetbrains.kotlin.utils.sure
import java.io.File
import java.lang.annotation.Retention
import java.net.URLClassLoader
import java.util.regex.Pattern
@@ -60,6 +60,7 @@ public abstract class AbstractJvmRuntimeDescriptorLoaderTest : TestCaseWithTmpdi
includePropertyConstant = false
verbose = true
renderDefaultAnnotationArguments = true
modifiers = DescriptorRendererModifier.ALL
}
}
@@ -129,7 +129,10 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment
}
})
val renderer = DescriptorRenderer.withOptions { nameShortness = NameShortness.FULLY_QUALIFIED }
val renderer = DescriptorRenderer.withOptions {
nameShortness = NameShortness.FULLY_QUALIFIED
modifiers = DescriptorRendererModifier.ALL
}
val renderedDescriptors = descriptors.map { renderer.render(it) }.joinToString(separator = "\n")
val document = DocumentImpl(psiFile.getText())
@@ -22,7 +22,10 @@ import com.intellij.testFramework.UsefulTestCase
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
import org.jetbrains.kotlin.descriptors.impl.FunctionExpressionDescriptor
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.JetFunctionLiteralExpression
import org.jetbrains.kotlin.psi.JetNamedFunction
import org.jetbrains.kotlin.psi.JetPsiFactory
import org.jetbrains.kotlin.psi.JetTreeVisitorVoid
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.lazy.JvmResolveUtil
import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment
@@ -50,7 +53,11 @@ abstract public class AbstractFunctionDescriptorInExpressionRendererTest : Kotli
}
})
val renderer = DescriptorRenderer.withOptions { nameShortness = NameShortness.FULLY_QUALIFIED; verbose = true }
val renderer = DescriptorRenderer.withOptions {
nameShortness = NameShortness.FULLY_QUALIFIED
modifiers = DescriptorRendererModifier.ALL
verbose = true
}
val renderedDescriptors = descriptors.map { renderer.render(it) }.joinToString(separator = "\n")
val document = DocumentImpl(file.getText())
@@ -33,6 +33,7 @@ import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.psi.JetAnnotationEntry;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.resolve.BindingContext;
@@ -57,6 +58,7 @@ public abstract class AbstractAnnotationDescriptorResolveTest extends JetLiteFix
public Unit invoke(DescriptorRendererOptions options) {
options.setVerbose(true);
options.setNameShortness(NameShortness.SHORT);
options.setModifiers(DescriptorRendererModifier.ALL);
return Unit.INSTANCE$;
}
}
@@ -27,6 +27,7 @@ import org.jetbrains.kotlin.descriptors.ModuleDescriptor;
import org.jetbrains.kotlin.descriptors.PackageFragmentDescriptor;
import org.jetbrains.kotlin.psi.JetFile;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
import org.jetbrains.kotlin.resolve.lazy.KotlinTestWithEnvironment;
@@ -58,6 +59,7 @@ public class LoadBuiltinsTest extends KotlinTestWithEnvironment {
options.setOverrideRenderingPolicy(OverrideRenderingPolicy.RENDER_OPEN_OVERRIDE);
options.setVerbose(true);
options.setPrettyFunctionTypes(false);
options.setModifiers(DescriptorRendererModifier.ALL);
return Unit.INSTANCE$;
}
}
@@ -28,10 +28,7 @@ import org.jetbrains.kotlin.builtins.KotlinBuiltIns;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.jvm.compiler.ExpectedLoadErrorsUtil;
import org.jetbrains.kotlin.name.FqName;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import org.jetbrains.kotlin.renderer.NameShortness;
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy;
import org.jetbrains.kotlin.renderer.*;
import org.jetbrains.kotlin.resolve.DescriptorUtils;
import org.jetbrains.kotlin.resolve.MemberComparator;
import org.jetbrains.kotlin.resolve.scopes.JetScope;
@@ -59,6 +56,7 @@ public class RecursiveDescriptorComparator {
options.setIncludePropertyConstant(true);
options.setNameShortness(NameShortness.FULLY_QUALIFIED);
options.setVerbose(true);
options.setModifiers(DescriptorRendererModifier.ALL);
return Unit.INSTANCE$;
}
}
@@ -111,7 +111,9 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
startFromName = true
}
public val FQ_NAMES_IN_TYPES: DescriptorRenderer = withOptions { }
public val FQ_NAMES_IN_TYPES: DescriptorRenderer = withOptions {
modifiers = DescriptorRendererModifier.ALL
}
public val SHORT_NAMES_IN_TYPES: DescriptorRenderer = withOptions {
nameShortness = NameShortness.SHORT
@@ -121,6 +123,7 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public val DEBUG_TEXT: DescriptorRenderer = withOptions {
debugMode = true
nameShortness = NameShortness.FULLY_QUALIFIED
modifiers = DescriptorRendererModifier.ALL
}
public val FLEXIBLE_TYPES_FOR_CODE: DescriptorRenderer = withOptions {
@@ -129,6 +132,7 @@ public interface DescriptorRenderer : Renderer<DeclarationDescriptor> {
public val HTML: DescriptorRenderer = withOptions {
textFormat = RenderingFormat.HTML
modifiers = DescriptorRendererModifier.ALL
}
public fun getClassKindPrefix(klass: ClassDescriptor): String {
@@ -203,11 +207,18 @@ public enum class ParameterNameRenderingPolicy {
NONE
}
public enum class DescriptorRendererModifier {
VISIBILITY,
MODALITY,
OVERRIDE,
ANNOTATIONS,
INNER,
MEMBER_KIND
public enum class DescriptorRendererModifier(val includeByDefault: Boolean) {
VISIBILITY(true),
MODALITY(true),
OVERRIDE(true),
ANNOTATIONS(false),
INNER(true),
MEMBER_KIND(true)
;
companion object {
val DEFAULTS = DescriptorRendererModifier.values().filter { it.includeByDefault }.toSet()
val ALL = DescriptorRendererModifier.values().toSet()
}
}
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.renderer
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.types.JetType
import java.lang.reflect.Modifier
import java.util.EnumSet
import kotlin.properties.Delegates
import kotlin.properties.ObservableProperty
import kotlin.properties.ReadWriteProperty
@@ -61,7 +60,7 @@ internal class DescriptorRendererOptionsImpl : DescriptorRendererOptions {
override var nameShortness by property(NameShortness.SOURCE_CODE_QUALIFIED)
override var withDefinedIn by property(true)
override var modifiers: Set<DescriptorRendererModifier> by property(EnumSet.allOf(javaClass<DescriptorRendererModifier>()))
override var modifiers: Set<DescriptorRendererModifier> by property(DescriptorRendererModifier.DEFAULTS)
override var startFromName by property(false)
override var debugMode by property(false)
override var classWithPrimaryConstructor by property(false)
@@ -21,6 +21,7 @@ import kotlin.jvm.functions.Function1;
import org.jetbrains.kotlin.descriptors.*;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.renderer.DescriptorRenderer;
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier;
import org.jetbrains.kotlin.renderer.DescriptorRendererOptions;
import java.util.Comparator;
@@ -37,6 +38,7 @@ public class MemberComparator implements Comparator<DeclarationDescriptor> {
public Unit invoke(DescriptorRendererOptions options) {
options.setWithDefinedIn(false);
options.setVerbose(true);
options.setModifiers(DescriptorRendererModifier.ALL);
return Unit.INSTANCE$;
}
});
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.idea.util
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.renderer.NameShortness
import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy
import org.jetbrains.kotlin.types.JetType
@@ -32,6 +33,7 @@ public object IdeDescriptorRenderers {
showInternalKeyword = false
overrideRenderingPolicy = OverrideRenderingPolicy.RENDER_OVERRIDE
unitReturnType = false
modifiers = DescriptorRendererModifier.ALL
}
public val SOURCE_CODE: DescriptorRenderer = BASE.withOptions {
@@ -26,6 +26,7 @@ import org.jetbrains.kotlin.load.kotlin.header.isCompatibleClassKind
import org.jetbrains.kotlin.load.kotlin.header.isCompatiblePackageFacadeKind
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.renderer.DescriptorRenderer
import org.jetbrains.kotlin.renderer.DescriptorRendererModifier
import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry
import org.jetbrains.kotlin.resolve.dataClassUtils.isComponentLike
import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors
@@ -97,15 +98,19 @@ private val descriptorRendererForDecompiler = DescriptorRenderer.withOptions {
classWithPrimaryConstructor = true
typeNormalizer = { type -> if (type.isFlexible()) type.flexibility().lowerBound else type }
secondaryConstructorsAsPrimary = false
modifiers = DescriptorRendererModifier.ALL
}
private val descriptorRendererForKotlinJavascriptDecompiler = DescriptorRenderer.withOptions {
withDefinedIn = false
classWithPrimaryConstructor = true
secondaryConstructorsAsPrimary = false
modifiers = DescriptorRendererModifier.ALL
}
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS
private val descriptorRendererForKeys = DescriptorRenderer.COMPACT_WITH_MODIFIERS.withOptions {
modifiers = DescriptorRendererModifier.ALL
}
public fun descriptorToKey(descriptor: DeclarationDescriptor): String {
return descriptorRendererForKeys.render(descriptor)
@@ -0,0 +1,7 @@
fun foo(inlineOptions p: () -> Unit){}
fun bar() {
<caret>
}
// EXIST: { lookupString:"foo", itemText: "foo", tailText: " {...} (p: () -> Unit) (<root>)", typeText:"Unit" }
@@ -685,6 +685,12 @@ public class JSBasicCompletionTestGenerated extends AbstractJSBasicCompletionTes
doTest(fileName);
}
@TestMetadata("NoParameterAnnotationInPresentation.kt")
public void testNoParameterAnnotationInPresentation() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/NoParameterAnnotationInPresentation.kt");
doTest(fileName);
}
@TestMetadata("NoSecondPressCompletionInAutoPopup.kt")
public void testNoSecondPressCompletionInAutoPopup() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/NoSecondPressCompletionInAutoPopup.kt");
@@ -685,6 +685,12 @@ public class JvmBasicCompletionTestGenerated extends AbstractJvmBasicCompletionT
doTest(fileName);
}
@TestMetadata("NoParameterAnnotationInPresentation.kt")
public void testNoParameterAnnotationInPresentation() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/NoParameterAnnotationInPresentation.kt");
doTest(fileName);
}
@TestMetadata("NoSecondPressCompletionInAutoPopup.kt")
public void testNoSecondPressCompletionInAutoPopup() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/idea-completion/testData/basic/common/NoSecondPressCompletionInAutoPopup.kt");