Kotlin-dsl-samples: gogradle plugin unusable with Kotlin DSL

Created on 17 Jan 2018  路  11Comments  路  Source: gradle/kotlin-dsl-samples

Expected Behavior

Should be able to consume plugin.

Current Behavior

Fails to compile the accessors and plugin is unusable:

Output:

e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:60:80: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:69:81: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:78:76: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:87:77: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:96:85: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:105:86: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:114:76: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:123:77: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:132:62: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:141:63: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:150:61: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:159:62: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:168:63: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:177:64: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:186:62: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:195:63: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:204:63: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:213:64: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:222:62: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:231:63: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:240:58: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:249:59: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:258:57: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:267:58: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:276:58: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:285:59: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:294:57: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:303:58: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:312:56: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:321:57: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:330:55: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:339:56: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:348:55: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:357:56: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:366:54: Identifier expected
e: /home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv/src/org/gradle/kotlin/dsl/accessors.kt:375:55: Identifier expected

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring root project 'gogradle-kotlin-dsl'.
> Could not open cache directory 82chid25nodhrk7vfd5p9cwhv (/home/mkobit/.gradle/caches/4.4.1/gradle-kotlin-dsl-accessors/82chid25nodhrk7vfd5p9cwhv).
   > Failed to compile accessors.

         projectSchema: ProjectSchema(extensions={ext=org.gradle.api.plugins.ExtraPropertiesExtension, GOGRADLE_INJECTOR=com.google.inject.internal.InjectorImpl, DEVELOP=com.github.blindpirate.gogradle.core.mode.BuildMode., DEV=com.github.blindpirate.gogradle.core.mode.BuildMode., REPRODUCIBLE=com.github.blindpirate.gogradle.core.mode.BuildMode., REP=com.github.blindpirate.gogradle.core.mode.BuildMode., NANOSECONDS=java.util.concurrent.TimeUnit., NANOSECOND=java.util.concurrent.TimeUnit., MICROSECONDS=java.util.concurrent.TimeUnit., MICROSECOND=java.util.concurrent.TimeUnit., MILLISECONDS=java.util.concurrent.TimeUnit., MILLISECOND=java.util.concurrent.TimeUnit., SECONDS=java.util.concurrent.TimeUnit., SECOND=java.util.concurrent.TimeUnit., MINUTES=java.util.concurrent.TimeUnit., MINUTE=java.util.concurrent.TimeUnit., HOURS=java.util.concurrent.TimeUnit., HOUR=java.util.concurrent.TimeUnit., DAYS=java.util.concurrent.TimeUnit., DAY=java.util.concurrent.TimeUnit., golang=com.github.blindpirate.gogradle.GolangPluginSetting}, conventions={}, configurations=[build, test])

         classPath: [/home/mkobit/.gradle/caches/4.4.1/generated-gradle-jars/gradle-api-4.4.1.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/groovy-all-2.4.12.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/gradle-installation-beacon-4.4.1.jar, /home/mkobit/.gradle/caches/4.4.1/generated-gradle-jars/gradle-kotlin-dsl-extensions-0.13.2-4.4.1.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/gradle-kotlin-dsl-0.13.2.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/gradle-kotlin-dsl-tooling-models-0.13.2.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/kotlin-reflect-1.1.51.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/kotlin-stdlib-1.1.51.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/kotlin-stdlib-jre7-1.1.51.jar, /home/mkobit/.gradle/wrapper/dists/gradle-4.4.1-bin/46gopw3g8i1v3zqqx4q949t2x/gradle-4.4.1/lib/kotlin-stdlib-jre8-1.1.51.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/gradle.plugin.com.github.blindpirate/gogradle/0.8.1/ec7c9edc5cd992b369f63ac19752072144ef9744/gogradle-0.8.1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4/4.6/7144baaa80cf24cc0ac5158f26a2f38505acbde0/antlr4-4.6.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.1.0/eeb69005da379a10071aa4948c48d89250febb07/guice-4.1.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.5/6c6c702c89bfff3cd9e80b04d668c5e190d588c6/commons-lang3-3.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.apache.commons/commons-collections4/4.1/a4cf4688fe1c7e3a63aa636cc96d013af537768e/commons-collections4-4.1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/commons-codec/commons-codec/1.10/4b95f4897fa13f2cd904aee711aeafc0c5295cd8/commons-codec-1.10.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/commons-io/commons-io/2.5/2852e6e05fbb95076fc091f6d1780f1f8fe35e0f/commons-io-2.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.google.guava/guava/20.0/89507701249388e1ed5ddcf8c41f4ce1be7831ef/guava-20.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.github.zafarkhaja/java-semver/0.9.0/59a83ca73c72a5e25b3f0b1bb305230a11000329/java-semver-0.9.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.jsoup/jsoup/1.7.2/d7e275ba05aa380ca254f72d0c0ffebaedc3adcf/jsoup-1.7.2.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-xml/2.6.3/e7c055899db703720b18f902144b4c15d319c31e/jackson-dataformat-xml-2.6.3.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.module/jackson-module-jaxb-annotations/2.6.3/580688f0b8d0dd31fe33a9c6d02fa9928c45dae9/jackson-module-jaxb-annotations-2.6.3.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-databind/2.8.5/b3035f37e674c04dafe36a660c3815cc59f764e2/jackson-databind-2.8.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-annotations/2.8.5/9d82ff47bc2c2d3b5b6a6618fe636782bbcd5b07/jackson-annotations-2.8.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/annotations/3.0.1/fc019a2216218990d64dfe756e7aa20f0069dea2/annotations-3.0.1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml/2.8.5/dee4732dc03b6f3ce231fd065dcbbed25755b58f/jackson-dataformat-yaml-2.8.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/net.lingala.zip4j/zip4j/1.3.2/4ba84e98ee017b74cb52f45962f929a221f3074c/zip4j-1.3.2.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant/1.10.0/9928cfe68c9bebc7623692e2ac0307e0dc3a70db/ant-1.10.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.typesafe.sbt/sbt-interface/0.13.13/9367c5c7a835f9505774fc3b7c3a8146a1396f85/sbt-interface-0.13.13.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.codehaus.woodstox/woodstox-core-asl/4.4.1/84fee5eb1a4a1cefe65b6883c73b3fa83be3c1a1/woodstox-core-asl-4.4.1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.jooq/joor/0.9.6/c8f9c6a344e932d9641cc75d5324dbbdbd85cd84/joor-0.9.6.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.moandjiezana.toml/toml4j/0.7.2/a03337911d0bd2c40932aca3946edb30d0e7d0c/toml4j-0.7.2.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.antlr/antlr4-runtime/4.6/eea6f8cd6f36208355dc2c0a8775503b907ce73/antlr4-runtime-4.6.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.antlr/ST4/4.0.8/a1c55e974f8a94d78e2348fa6ff63f4fa1fae64/ST4-4.0.8.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.antlr/antlr-runtime/3.5.2/cd9cd41361c155f3af0f653009dcecb08d8b4afd/antlr-runtime-3.5.2.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.abego.treelayout/org.abego.treelayout.core/1.0.3/457216e8e6578099ae63667bb1e4439235892028/org.abego.treelayout.core-1.0.3.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.glassfish/javax.json/1.0.4/3178f73569fd7a1e5ffc464e680f7a8cc784b85a/javax.json-1.0.4.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/javax.inject/javax.inject/1/6975da39a7040257bd51d21a231b76c915872d38/javax.inject-1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/aopalliance/aopalliance/1.0/235ba8b489512805ac13a8f9ea77a1ca5ebe3e8/aopalliance-1.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.fasterxml.jackson.core/jackson-core/2.8.5/60d059f5d2930ccd1ef03535b713fd9f933d1ba7/jackson-core-2.8.5.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/net.jcip/jcip-annotations/1.0/afba4942caaeaf46aab0b976afd57cc7c181467e/jcip-annotations-1.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.1/f7be08ec23c21485b9b5a1cf1654c2ec8c58168d/jsr305-3.0.1.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.yaml/snakeyaml/1.17/7a27ea250c5130b2922b86dea63cbb1cc10a660c/snakeyaml-1.17.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.apache.ant/ant-launcher/1.10.0/902206dc6b9718d119f7574627010c95dc8b15bf/ant-launcher-1.10.0.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.scala-lang/scala-library/2.10.6/421989aa8f95a05a4f894630aad96b8c7b828732/scala-library-2.10.6.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/org.codehaus.woodstox/stax2-api/3.1.4/ac19014b1e6a7c08aad07fe114af792676b685b7/stax2-api-3.1.4.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/javax.xml.stream/stax-api/1.0-2/d6337b0de8b25e53e81b922352fbea9f9f57ba0b/stax-api-1.0-2.jar, /home/mkobit/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.1/2a8e0aa38a2e21cb39e2f5a7d6704cbdc941da0/gson-2.8.1.jar]

         availableSchema: ProjectSchema(extensions={ext=Accessible(type=org.gradle.api.plugins.ExtraPropertiesExtension), GOGRADLE_INJECTOR=Inaccessible(type=com.google.inject.internal.InjectorImpl, reasons=[NonPublic(type=com.google.inject.internal.InjectorImpl)]), DEVELOP=Inaccessible(type=com.github.blindpirate.gogradle.core.mode.BuildMode., reasons=[NonAvailable(type=com.github.blindpirate.gogradle.core.mode.BuildMode.)]), DEV=Inaccessible(type=com.github.blindpirate.gogradle.core.mode.BuildMode., reasons=[NonAvailable(type=com.github.blindpirate.gogradle.core.mode.BuildMode.)]), REPRODUCIBLE=Inaccessible(type=com.github.blindpirate.gogradle.core.mode.BuildMode., reasons=[NonAvailable(type=com.github.blindpirate.gogradle.core.mode.BuildMode.)]), REP=Inaccessible(type=com.github.blindpirate.gogradle.core.mode.BuildMode., reasons=[NonAvailable(type=com.github.blindpirate.gogradle.core.mode.BuildMode.)]), NANOSECONDS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), NANOSECOND=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MICROSECONDS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MICROSECOND=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MILLISECONDS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MILLISECOND=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), SECONDS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), SECOND=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MINUTES=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), MINUTE=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), HOURS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), HOUR=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), DAYS=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), DAY=Inaccessible(type=java.util.concurrent.TimeUnit., reasons=[NonAvailable(type=java.util.concurrent.TimeUnit.)]), golang=Accessible(type=com.github.blindpirate.gogradle.GolangPluginSetting)}, conventions={}, configurations=[build, test])


* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 5s

Context

Unable to consume https://github.com/gogradle/gogradle plugin.

Steps to Reproduce (for bugs)

plugins {
  id("com.github.blindpirate.gogradle") version "0.8.1"
}
(tasks.getByName("wrapper") as Wrapper).gradleVersion = "4.4.1"

Run ./gradlew to see error output.

Your Environment

bug kotlin-dsl-runtime plugin-support

Most helpful comment

Thanks to your investigation @mkobit I was able to quickly open https://github.com/gradle/gradle/pull/4686 that should fix this issue.

All 11 comments

Thanks for the report!

Build scan: https://scans.gradle.com/s/yzu4wrrje6f4y/failure?openFailures=WzBd&openStackTraces=WzIse31d#top=0

The generated accessors can't be compiled.
Here is a faulty accessor:

/**
 * Retrieves the [DEVELOP][com.github.blindpirate.gogradle.core.mode.BuildMode.] project extension.
 *
 * `DEVELOP` is not accessible in a type safe way because:
 * - `com.github.blindpirate.gogradle.core.mode.BuildMode.` is not available
 */
val Project.`DEVELOP`: Any get() =
    extensions.getByName("DEVELOP")

The culprit is the link to the extension type in the kdoc comment.
[DEVELOP][com.github.blindpirate.gogradle.core.mode.BuildMode.]
Note the . (dot) at the end of the type name.

com.github.blindpirate.gogradle.core.mode.BuildMode is the type and both of those extensions are enum values.

public enum BuildMode {
    DEVELOP("DEV") {
        @Override
        public GolangDependencySet determine(GolangDependencySet declaredDependencies,
                                             GolangDependencySet lockedDependencies) {
            return declaredDependencies;
        }
    },
    REPRODUCIBLE("REP") {
        @Override
        public GolangDependencySet determine(GolangDependencySet declaredDependencies,
                                             GolangDependencySet lockedDependencies) {
            return lockedDependencies;
        }
    };
   // ...

Same thing with the other TimeUnit extensions added by the plugin.

I'm also wondering if value extensions like a String are also affected.

The plugin adds them at https://github.com/gogradle/gogradle/blob/8d5852a3642cbf4d914ba2568209853ee9c6dc59/src/main/java/com/github/blindpirate/gogradle/GolangPlugin.java#L65-L73 which doesn't provide a public type for each when using project.getExtensions().add(mode.toString(), mode);

This looks like it could possibly be an issue in how upstream gradle/gradle handles these

Trying these two tests in org.gradle.model.internal.core.ModelTypeTest

    enum MyEnum {
        ONE,
        TWO
    }

    def "represents enums"() {
        given:
        def enumType = MyEnum.class
        def enumInstanceType = MyEnum.ONE.class

        expect:
        def modelOfEnum = ModelType.of(enumType)
        def modelOfInstance = ModelType.of(enumInstanceType)
        modelOfEnum == modelOfInstance
    }

    def "represents enums that contain definitions"() {
        given:
        def enumType = TimeUnit.class
        def enumInstanceType = TimeUnit.SECONDS.class

        expect:
        def modelOfEnum = ModelType.of(enumType)
        def modelOfInstance = ModelType.of(enumInstanceType)
        modelOfEnum == modelOfInstance
        modelOfInstance.displayName == 'TimeUnit'
        modelOfEnum.toString() == 'java.util.concurrent.TimeUnit'
    }

The first one using MyEnum succeeds but the TimeUnit one does not because (I'm guessing) some difference in how the internal wrapper arounds the types handle it here. I was planning on working on a fix for this but I don't have any more time today!

Thanks for the investigation Mike!

Thanks to your investigation @mkobit I was able to quickly open https://github.com/gradle/gradle/pull/4686 that should fix this issue.

Some more gymnastic is needed to fix this, reopening

Confirmed fixed by gradle/gradle#4726

This repository wrapper now has the fix.
This snapshot distro includes the fix: https://repo.gradle.org/gradle/dist-snapshots/gradle-kotlin-dsl-4.7-20180315091131+0000-bin.zip
It'll be delivered as part of gradle-kotlin-dsl-0.16.x + gradle-4.7-rc-1

Was this page helpful?
0 / 5 - 0 ratings