File tree Expand file tree Collapse file tree 9 files changed +60
-8
lines changed 
libraries/tools/abi-validation Expand file tree Collapse file tree 9 files changed +60
-8
lines changed Original file line number Diff line number Diff line change @@ -66,12 +66,6 @@ val createClasspathManifest = tasks.register("createClasspathManifest") {
6666val  kotlinVersion:  String  by project
6767val  androidGradlePluginVersion:  String  =  " 7.2.2" 
6868
69- configurations.implementation {
70-     exclude(group =  " org.jetbrains.kotlin" =  " kotlin-stdlib" 
71-     exclude(group =  " org.jetbrains.kotlin" =  " kotlin-stdlib-jdk7" 
72-     exclude(group =  " org.jetbrains.kotlin" =  " kotlin-stdlib-jdk8" 
73- }
74- 
7569dependencies {
7670    implementation(gradleApi())
7771    implementation(" org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.2" 
@@ -116,7 +110,8 @@ java {
116110tasks {
117111    compileTestKotlin {
118112        kotlinOptions {
119-             languageVersion =  " 1.6" 
113+             languageVersion =  " 1.9" 
114+             freeCompilerArgs + =  " -Xsuppress-version-warnings" 
120115        }
121116    }
122117    test {
Original file line number Diff line number Diff line change 11version =0.13.2-SNAPSHOT
22group =org.jetbrains.kotlinx
33
4- kotlinVersion =1.8.10 
4+ kotlinVersion =1.8.20 
55pluginPublishVersion =0.10.1
66
77kotlin.stdlib.default.dependency =false
Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ fun ClassNode.isEffectivelyPublic(classVisibility: ClassVisibility?) =
3232            &&  ! isLocal()
3333            &&  ! isWhenMappings()
3434            &&  ! isSyntheticAnnotationClass()
35+             &&  ! isEnumEntriesMappings()
3536            &&  (classVisibility?.isPublic(isPublishedApi()) ? :  true )
3637
3738
@@ -40,6 +41,7 @@ fun ClassNode.isLocal() = outerMethod != null
4041fun  ClassNode.isInner () =  innerClassNode !=  null 
4142fun  ClassNode.isWhenMappings () =  isSynthetic(access) &&  name.endsWith(" \$ WhenMappings" 
4243fun  ClassNode.isSyntheticAnnotationClass () =  isSynthetic(access) &&  name.contains(" \$ annotationImpl\$ " 
44+ fun  ClassNode.isEnumEntriesMappings () =  isSynthetic(access) &&  name.endsWith(" \$ EntriesMappings" 
4345
4446val  ClassNode .effectiveAccess:  Int  get() =  innerClassNode?.access ? :  access
4547val  ClassNode .outerClassName:  String?  get() =  innerClassNode?.outerName
Original file line number Diff line number Diff line change 1+ /* 
2+  * Copyright 2016-2023 JetBrains s.r.o. 
3+  * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. 
4+  */  
5+ 
6+ package  cases.enums 
7+ 
8+ enum  class  EnumClass  { A , B , C  }
Original file line number Diff line number Diff line change 1+ /* 
2+  * Copyright 2016-2023 JetBrains s.r.o. 
3+  * Use of this source code is governed by the Apache 2.0 License that can be found in the LICENSE.txt file. 
4+  */ 
5+ 
6+ package  cases .enums ;
7+ 
8+ public  enum  JavaEnum  {
9+     JA , JB , JC 
10+ }
Original file line number Diff line number Diff line change 1+ package  cases.enums 
2+ 
3+ @OptIn(ExperimentalStdlibApi ::class )
4+ fun  test () {
5+     EnumClass .entries.forEach {
6+         println (it)
7+     }
8+ 
9+     JavaEnum .entries.forEach {
10+         println (it)
11+     }
12+ }
13+ 
Original file line number Diff line number Diff line change 1+ public final class cases/enums/EntriesKt {
2+ 	public static final fun test ()V
3+ }
4+ 
5+ public final class cases/enums/EnumClass : java/lang/Enum {
6+ 	public static final field A Lcases/enums/EnumClass;
7+ 	public static final field B Lcases/enums/EnumClass;
8+ 	public static final field C Lcases/enums/EnumClass;
9+ 	public static fun getEntries ()Lkotlin/enums/EnumEntries;
10+ 	public static fun valueOf (Ljava/lang/String;)Lcases/enums/EnumClass;
11+ 	public static fun values ()[Lcases/enums/EnumClass;
12+ }
13+ 
14+ public final class cases/enums/JavaEnum : java/lang/Enum {
15+ 	public static final field JA Lcases/enums/JavaEnum;
16+ 	public static final field JB Lcases/enums/JavaEnum;
17+ 	public static final field JC Lcases/enums/JavaEnum;
18+ 	public static fun valueOf (Ljava/lang/String;)Lcases/enums/JavaEnum;
19+ 	public static fun values ()[Lcases/enums/JavaEnum;
20+ }
21+ 
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ public final class cases/whenMappings/SampleEnum : java/lang/Enum {
77	public static final field A Lcases/whenMappings/SampleEnum;
88	public static final field B Lcases/whenMappings/SampleEnum;
99	public static final field C Lcases/whenMappings/SampleEnum;
10+ 	public static fun getEntries ()Lkotlin/enums/EnumEntries;
1011	public static fun valueOf (Ljava/lang/String;)Lcases/whenMappings/SampleEnum;
1112	public static fun values ()[Lcases/whenMappings/SampleEnum;
1213}
Original file line number Diff line number Diff line change @@ -55,6 +55,8 @@ class CasesPublicAPITest {
5555
5656    @Test fun  whenMappings () { snapshotAPIAndCompare(testName.methodName) }
5757
58+     @Test fun  enums () { snapshotAPIAndCompare(testName.methodName) }
59+ 
5860    private  fun  snapshotAPIAndCompare (testClassRelativePath :  String , nonPublicMarkers :  Set <String > = emptySet()) {
5961        val  testClassPaths =  baseClassPaths.map { it.resolve(testClassRelativePath) }
6062        val  testClasses =  testClassPaths.flatMap { it.listFiles().orEmpty().asIterable() }
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments