diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetClsNavigationPolicy.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetClsNavigationPolicy.java index d0ccbe95d2a..2eed98d2547 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetClsNavigationPolicy.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetClsNavigationPolicy.java @@ -57,6 +57,13 @@ public class JetClsNavigationPolicy implements ClsCustomNavigationPolicy { return sourceFunction; } } + else if (jetDeclaration instanceof JetClass) { + assert clsMethod.getReturnType() == null; // constructor + JetClassOrObject sourceClass = JetSourceNavigationHelper.getSourceClass((JetClass) jetDeclaration); + if (sourceClass != null) { + return sourceClass; + } + } return jetDeclaration; } diff --git a/idea/testData/libraries/usercode/Constructor.kt b/idea/testData/libraries/usercode/Constructor.kt new file mode 100644 index 00000000000..7435c4e8c5c --- /dev/null +++ b/idea/testData/libraries/usercode/Constructor.kt @@ -0,0 +1,6 @@ +import testData.libraries.* + +val x: ClassWithConstructor = ClassWithConstructor("abc", 239) + +// main.kt +//public class <1><2>ClassWithConstructor(val a: String, b: Any) diff --git a/idea/testData/libraries/usercode/ExtensionProperty.kt b/idea/testData/libraries/usercode/ExtensionProperty.kt index 51834267f27..56ec6aafae9 100644 --- a/idea/testData/libraries/usercode/ExtensionProperty.kt +++ b/idea/testData/libraries/usercode/ExtensionProperty.kt @@ -17,6 +17,6 @@ fun foo() { // return this //} // -//public class Pair(val first: A, val second: B) +//public class <2>Pair(val first: A, val second: B) // -//public val Pair.<2>exProp : String \ No newline at end of file +//public val Pair.<3>exProp : String \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/LibrariesWithSourcesTest.java b/idea/tests/org/jetbrains/jet/plugin/libraries/LibrariesWithSourcesTest.java index c8e29f669f2..0ee7f1b8436 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/LibrariesWithSourcesTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/LibrariesWithSourcesTest.java @@ -75,6 +75,10 @@ public class LibrariesWithSourcesTest extends AbstractLibrariesTest { doTest(); } + public void testConstructor() { + doTest(); + } + private void doTest() { userFile = LocalFileSystem.getInstance().findFileByPath(TEST_DATA_PATH + "/usercode/" + getTestName(false) + ".kt"); assertNotNull(userFile);