diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt index b0c7e05dc82..7b1092eba06 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TypeResolver.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. + * Copyright 2010-2017 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. @@ -853,7 +853,8 @@ class TypeResolver( if (userType.qualifier != null) { // we must resolve all type references in arguments of qualifier type for (typeArgument in userType.qualifier!!.typeArguments) { typeArgument.typeReference?.let { - forceResolveTypeContents(resolveType(scope, it, trace, true)) + // in qualified expression, type argument can have bounds only in incorrect code + forceResolveTypeContents(resolveType(scope, it, trace, false)) } } } diff --git a/compiler/testData/diagnostics/tests/inference/kt11963.kt b/compiler/testData/diagnostics/tests/inference/kt11963.kt new file mode 100644 index 00000000000..38ce02d3843 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/kt11963.kt @@ -0,0 +1 @@ +val <T : KClass.something> abc \ No newline at end of file diff --git a/compiler/testData/diagnostics/tests/inference/kt11963.txt b/compiler/testData/diagnostics/tests/inference/kt11963.txt new file mode 100644 index 00000000000..2c8d728bfb1 --- /dev/null +++ b/compiler/testData/diagnostics/tests/inference/kt11963.txt @@ -0,0 +1,3 @@ +package + +public val abc: [ERROR : No type, no body] diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java index 7fa8e99b59d..4941fe8935b 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/DiagnosticsTestGenerated.java @@ -10216,6 +10216,12 @@ public class DiagnosticsTestGenerated extends AbstractDiagnosticsTest { doTest(fileName); } + @TestMetadata("kt11963.kt") + public void testKt11963() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/kt11963.kt"); + doTest(fileName); + } + @TestMetadata("kt12399.kt") public void testKt12399() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/kt12399.kt"); diff --git a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java index 6d4271cfc32..d6abda4bd8c 100644 --- a/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java +++ b/compiler/tests/org/jetbrains/kotlin/checkers/javac/DiagnosticsUsingJavacTestGenerated.java @@ -10216,6 +10216,12 @@ public class DiagnosticsUsingJavacTestGenerated extends AbstractDiagnosticsUsing doTest(fileName); } + @TestMetadata("kt11963.kt") + public void testKt11963() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/kt11963.kt"); + doTest(fileName); + } + @TestMetadata("kt12399.kt") public void testKt12399() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/inference/kt12399.kt");