From e76cd15e5bd058e847f65f98f2ce08e2145679b5 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 26 Jan 2017 12:35:09 +0100 Subject: [PATCH] Update different stdlib/gradle inspection to handle kotlin-stdlib-jre* --- .../DifferentStdlibGradleVersionInspection.kt | 4 +-- .../gradle/GradleInspectionTest.kt | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt b/idea/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt index 25d98d7adee..3d454075272 100644 --- a/idea/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt +++ b/idea/src/org/jetbrains/kotlin/idea/inspections/gradle/DifferentStdlibGradleVersionInspection.kt @@ -114,11 +114,11 @@ class DifferentStdlibGradleVersionInspection : GradleBaseInspection() { } internal fun DataNode<*>.getResolvedKotlinStdlibVersionByModuleData(libraryId: String): String? { - val libraryNameMarker = "org.jetbrains.kotlin:$libraryId:" + val libraryNameMarker = "org.jetbrains.kotlin:$libraryId" for (sourceSetData in findAll(GradleSourceSetData.KEY).filter { it.data.internalName.endsWith("main") }) { for (libraryDependencyData in sourceSetData.node.findAll(ProjectKeys.LIBRARY_DEPENDENCY)) { if (libraryDependencyData.data.externalName.startsWith(libraryNameMarker)) { - return libraryDependencyData.data.externalName.substringAfter(libraryNameMarker) + return libraryDependencyData.data.externalName.substringAfter(libraryNameMarker).substringAfter(':') } } } diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleInspectionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleInspectionTest.kt index ec2d0ff3705..cc5daf85505 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleInspectionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/gradle/GradleInspectionTest.kt @@ -65,6 +65,40 @@ class GradleInspectionTest : GradleImportingTestCase() { Assert.assertEquals("Plugin version (1.0.2) is not the same as library version (1.0.3)", problems.single()) } + @Test + fun testDifferentStdlibJre7GradleVersion() { + val localFile = createProjectSubFile("build.gradle", """ + group 'Again' + version '1.0-SNAPSHOT' + + buildscript { + repositories { + mavenCentral() + maven { + url 'http://dl.bintray.com/kotlin/kotlin-eap-1.1' + } + } + + dependencies { + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.0-beta-17") + } + } + + apply plugin: 'kotlin' + + dependencies { + compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.0-beta-22" + } + """) + importProject() + + val tool = DifferentStdlibGradleVersionInspection() + val problems = getInspectionResult(tool, localFile) + + Assert.assertTrue(problems.size == 1) + Assert.assertEquals("Plugin version (1.1.0-beta-17) is not the same as library version (1.1.0-beta-22)", problems.single()) + } + @Test fun testDifferentStdlibGradleVersionWithVariables() { createProjectSubFile("gradle.properties", """