Skip to content

Commit

Permalink
Merge pull request gradle#8591 from gradle/bamboo/release/replace-ASM…
Browse files Browse the repository at this point in the history
…6-with-ASM_LEVEL

 Replace usages of `ASM6` with `ASM_LEVEL`
  • Loading branch information
bamboo authored Feb 23, 2019
2 parents a919799 + 24dce2a commit 23054ff
Show file tree
Hide file tree
Showing 5 changed files with 84 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package org.gradle.kotlin.dsl.integration
import org.gradle.kotlin.dsl.fixtures.FoldersDsl
import org.gradle.kotlin.dsl.fixtures.FoldersDslExpression
import org.gradle.kotlin.dsl.fixtures.containsMultiLineString

import org.gradle.test.fixtures.file.LeaksFileHandles

import org.hamcrest.CoreMatchers.allOf
Expand Down Expand Up @@ -1141,6 +1142,65 @@ class ProjectSchemaAccessorsIntegrationTest : AbstractPluginIntegrationTest() {
}
}

@Test
fun `can access project extension of nested type compiled to Java 11`() {

assumeJava11()

withFolders {
"buildSrc" {
"src/main/java/build" {
withFile("Java11Plugin.java", """
package build;
import org.gradle.api.*;
public class Java11Plugin implements Plugin<Project> {
public static class Java11Extension {}
@Override public void apply(Project project) {
project.getExtensions().create("java11", Java11Extension.class);
}
}
""")
}
withFile("settings.gradle.kts")
withFile("build.gradle.kts", """
plugins {
`java-library`
`java-gradle-plugin`
}
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
gradlePlugin {
plugins {
register("java11") {
id = "java11"
implementationClass = "build.Java11Plugin"
}
}
}
""")
}
}

withBuildScript("""
plugins { id("java11") }
java11 { println(this.javaClass.name) }
""")

assertThat(
build("-q").output,
containsString("build.Java11Plugin${'$'}Java11Extension")
)
}

private
fun withBuildSrc(contents: FoldersDslExpression) {
withFolders {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,11 @@ abstract class AbstractKotlinIntegrationTest : AbstractIntegrationTest() {
assumeTrue("Test disabled under JDK 11 and higher", JavaVersion.current() < JavaVersion.VERSION_11)
}

protected
fun assumeJava11() {
assumeTrue("Test requires Java 11 or higher", JavaVersion.current().isJava11Compatible)
}

protected
fun assumeNonEmbeddedGradleExecuter() {
assumeFalse(GradleContextualExecuter.isEmbedded())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,12 @@ package org.gradle.kotlin.dsl.accessors
import kotlinx.metadata.jvm.JvmMethodSignature
import kotlinx.metadata.jvm.KotlinClassMetadata

import org.gradle.internal.classanalysis.AsmConstants.ASM_LEVEL

import org.gradle.kotlin.dsl.support.bytecode.InternalName

import org.jetbrains.org.objectweb.asm.ClassVisitor
import org.jetbrains.org.objectweb.asm.ClassWriter
import org.jetbrains.org.objectweb.asm.Opcodes


internal
Expand All @@ -43,7 +44,7 @@ internal
class BytecodeFragmentScope(
val signature: JvmMethodSignature,
writer: ClassWriter
) : ClassVisitor(Opcodes.ASM6, writer)
) : ClassVisitor(ASM_LEVEL, writer)


internal
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ import org.gradle.api.internal.project.ProjectInternal

import org.gradle.cache.internal.CacheKeyBuilder.CacheKeySpec

import org.gradle.internal.classanalysis.AsmConstants.ASM_LEVEL

import org.gradle.internal.classpath.ClassPath
import org.gradle.internal.classpath.DefaultClassPath

Expand Down Expand Up @@ -49,7 +51,6 @@ import org.jetbrains.org.objectweb.asm.ClassReader
import org.jetbrains.org.objectweb.asm.ClassVisitor
import org.jetbrains.org.objectweb.asm.Opcodes.ACC_PUBLIC
import org.jetbrains.org.objectweb.asm.Opcodes.ACC_SYNTHETIC
import org.jetbrains.org.objectweb.asm.Opcodes.ASM6
import org.jetbrains.org.objectweb.asm.signature.SignatureReader
import org.jetbrains.org.objectweb.asm.signature.SignatureVisitor

Expand Down Expand Up @@ -341,13 +342,13 @@ fun classNamesFromTypeString(typeString: String): ClassNamesFromTypeString {


private
class HasTypeParameterClassVisitor : ClassVisitor(ASM6) {
class HasTypeParameterClassVisitor : ClassVisitor(ASM_LEVEL) {

var hasTypeParameters = false

override fun visit(version: Int, access: Int, name: String, signature: String?, superName: String?, interfaces: Array<out String>?) {
if (signature != null) {
SignatureReader(signature).accept(object : SignatureVisitor(ASM6) {
SignatureReader(signature).accept(object : SignatureVisitor(ASM_LEVEL) {
override fun visitFormalTypeParameter(name: String) {
hasTypeParameters = true
}
Expand All @@ -358,7 +359,7 @@ class HasTypeParameterClassVisitor : ClassVisitor(ASM6) {


private
class KotlinVisibilityClassVisitor : ClassVisitor(ASM6) {
class KotlinVisibilityClassVisitor : ClassVisitor(ASM_LEVEL) {

var visibility: Visibility? = null

Expand All @@ -378,7 +379,7 @@ class KotlinVisibilityClassVisitor : ClassVisitor(ASM6) {
private
class ClassDataFromKotlinMetadataAnnotationVisitor(
private val onClassData: (ProtoBuf.Class) -> Unit
) : AnnotationVisitor(ASM6) {
) : AnnotationVisitor(ASM_LEVEL) {

/**
* @see kotlin.Metadata.data1
Expand Down Expand Up @@ -408,7 +409,7 @@ class ClassDataFromKotlinMetadataAnnotationVisitor(


private
class AnnotationValueCollector<T>(val output: MutableList<T>) : AnnotationVisitor(ASM6) {
class AnnotationValueCollector<T>(val output: MutableList<T>) : AnnotationVisitor(ASM_LEVEL) {
override fun visit(name: String?, value: Any?) {
@Suppress("unchecked_cast")
output.add(value as T)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,15 @@

package org.gradle.kotlin.dsl.codegen

import com.google.common.annotations.VisibleForTesting

import org.gradle.api.Incubating

import org.gradle.internal.classanalysis.AsmConstants.ASM_LEVEL

import org.gradle.kotlin.dsl.accessors.contains
import org.gradle.kotlin.dsl.accessors.primitiveTypeStrings

import org.gradle.kotlin.dsl.support.ClassBytesRepository
import org.gradle.kotlin.dsl.support.classPathBytesRepositoryFor
import org.gradle.kotlin.dsl.support.unsafeLazy
Expand All @@ -36,7 +41,6 @@ import org.jetbrains.org.objectweb.asm.Opcodes.ACC_PUBLIC
import org.jetbrains.org.objectweb.asm.Opcodes.ACC_STATIC
import org.jetbrains.org.objectweb.asm.Opcodes.ACC_SYNTHETIC
import org.jetbrains.org.objectweb.asm.Opcodes.ACC_VARARGS
import org.jetbrains.org.objectweb.asm.Opcodes.ASM6
import org.jetbrains.org.objectweb.asm.Type
import org.jetbrains.org.objectweb.asm.TypePath
import org.jetbrains.org.objectweb.asm.signature.SignatureReader
Expand All @@ -45,10 +49,9 @@ import org.jetbrains.org.objectweb.asm.tree.AnnotationNode
import org.jetbrains.org.objectweb.asm.tree.ClassNode
import org.jetbrains.org.objectweb.asm.tree.MethodNode

import com.google.common.annotations.VisibleForTesting

import java.io.Closeable
import java.io.File

import java.util.ArrayDeque

import javax.annotation.Nullable
Expand Down Expand Up @@ -430,7 +433,7 @@ inline fun <reified AnnotationType : Any> List<AnnotationNode>?.has() =


private
class ApiTypeClassNode : ClassNode(ASM6) {
class ApiTypeClassNode : ClassNode(ASM_LEVEL) {

override fun visitSource(file: String?, debug: String?) = Unit
override fun visitOuterClass(owner: String?, name: String?, desc: String?) = Unit
Expand All @@ -442,7 +445,7 @@ class ApiTypeClassNode : ClassNode(ASM6) {


private
abstract class BaseSignatureVisitor : SignatureVisitor(ASM6) {
abstract class BaseSignatureVisitor : SignatureVisitor(ASM_LEVEL) {

val typeParameters: MutableMap<String, MutableList<TypeSignatureVisitor>> = LinkedHashMap(1)

Expand Down Expand Up @@ -486,7 +489,7 @@ class MethodSignatureVisitor : BaseSignatureVisitor() {


private
class TypeSignatureVisitor(val variance: Variance = Variance.INVARIANT) : SignatureVisitor(ASM6) {
class TypeSignatureVisitor(val variance: Variance = Variance.INVARIANT) : SignatureVisitor(ASM_LEVEL) {

var isArray = false

Expand Down

0 comments on commit 23054ff

Please sign in to comment.