mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-10 08:31:29 +00:00
Codegen generates static backing fields for object properties. They are initialized in class constructor but some of them are final static and such access is prohibited in specification but it's allowed in java bytecode <= 1.8. Such access in 1.9 bytecode cause "IllegalAccessError: Update to static final field Object.INSTANCE attempted from a different method (<init>) than the initializer method <clinit>" Added additional hidden field in interface companion to pass out companion instance from <clinit>. #KT-15894 Fixed
210 lines
7.9 KiB
JSON
Vendored
210 lines
7.9 KiB
JSON
Vendored
[
|
|
{
|
|
"declaration": "object ObjPublic defined in PublicInterface",
|
|
"visibility": "public",
|
|
"class": "PublicInterface$ObjPublic",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor ObjPublic()", "name": "<init>", "desc": "()V"},
|
|
{"name": "INSTANCE", "desc": "LPublicInterface$ObjPublic;"},
|
|
{"visibility": "public", "declaration": "object ObjPublic", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "object ObjPrivate defined in PublicInterface",
|
|
"visibility": "private",
|
|
"class": "PublicInterface$ObjPrivate",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor ObjPrivate()", "name": "<init>", "desc": "()V"},
|
|
{"name": "INSTANCE", "desc": "LPublicInterface$ObjPrivate;"},
|
|
{"visibility": "private", "declaration": "object ObjPrivate", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "final class NestedPublic defined in PublicInterface",
|
|
"visibility": "public",
|
|
"class": "PublicInterface$NestedPublic",
|
|
"members": [
|
|
{"visibility": "public", "declaration": "constructor NestedPublic()", "name": "<init>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "final class NestedPrivate defined in PublicInterface",
|
|
"visibility": "private",
|
|
"class": "PublicInterface$NestedPrivate",
|
|
"members": [
|
|
{"visibility": "public", "declaration": "constructor NestedPrivate()", "name": "<init>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PublicInterface defined in root package",
|
|
"visibility": "public",
|
|
"class": "PublicInterface$DefaultImpls",
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"declaration": "companion object defined in PublicInterface",
|
|
"visibility": "public",
|
|
"class": "PublicInterface$Companion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor Companion()", "name": "<init>", "desc": "()V"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "$$INSTANCE", "desc": "LPublicInterface$Companion;"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PublicInterface defined in root package",
|
|
"visibility": "public",
|
|
"class": "PublicInterface",
|
|
"members": [
|
|
{"visibility": "public", "declaration": "interface PublicInterface", "name": "<clinit>", "desc": "()V"},
|
|
{"name": "Companion", "desc": "LPublicInterface$Companion;"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface InternalInterface defined in root package",
|
|
"visibility": "internal",
|
|
"class": "InternalInterface$DefaultImpls",
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"declaration": "companion object defined in InternalInterface",
|
|
"visibility": "public",
|
|
"class": "InternalInterface$Companion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor Companion()", "name": "<init>", "desc": "()V"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "$$INSTANCE", "desc": "LInternalInterface$Companion;"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface InternalInterface defined in root package",
|
|
"visibility": "internal",
|
|
"class": "InternalInterface",
|
|
"members": [
|
|
{"visibility": "internal", "declaration": "interface InternalInterface", "name": "<clinit>", "desc": "()V"},
|
|
{"name": "Companion", "desc": "LInternalInterface$Companion;"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface InternalInterfacePrivateCompanion defined in root package",
|
|
"visibility": "internal",
|
|
"class": "InternalInterfacePrivateCompanion$DefaultImpls",
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"declaration": "companion object defined in InternalInterfacePrivateCompanion",
|
|
"visibility": "private",
|
|
"class": "InternalInterfacePrivateCompanion$Companion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor Companion()", "name": "<init>", "desc": "()V"},
|
|
{"visibility": "private", "declaration": "companion object", "name": "$$INSTANCE", "desc": "LInternalInterfacePrivateCompanion$Companion;"},
|
|
{"visibility": "private", "declaration": "companion object", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface InternalInterfacePrivateCompanion defined in root package",
|
|
"visibility": "internal",
|
|
"class": "InternalInterfacePrivateCompanion",
|
|
"members": [
|
|
{"visibility": "internal", "declaration": "interface InternalInterfacePrivateCompanion", "name": "<clinit>", "desc": "()V"},
|
|
{"name": "Companion", "desc": "LInternalInterfacePrivateCompanion$Companion;"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "object ObjPublic defined in PrivateInterface",
|
|
"visibility": "public",
|
|
"class": "PrivateInterface$ObjPublic",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor ObjPublic()", "name": "<init>", "desc": "()V"},
|
|
{"name": "INSTANCE", "desc": "LPrivateInterface$ObjPublic;"},
|
|
{"visibility": "public", "declaration": "object ObjPublic", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "object ObjPrivate defined in PrivateInterface",
|
|
"visibility": "private",
|
|
"class": "PrivateInterface$ObjPrivate",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor ObjPrivate()", "name": "<init>", "desc": "()V"},
|
|
{"name": "INSTANCE", "desc": "LPrivateInterface$ObjPrivate;"},
|
|
{"visibility": "private", "declaration": "object ObjPrivate", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "final class NestedPublic defined in PrivateInterface",
|
|
"visibility": "public",
|
|
"class": "PrivateInterface$NestedPublic",
|
|
"members": [
|
|
{"visibility": "public", "declaration": "constructor NestedPublic()", "name": "<init>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "final class NestedPrivate defined in PrivateInterface",
|
|
"visibility": "private",
|
|
"class": "PrivateInterface$NestedPrivate",
|
|
"members": [
|
|
{"visibility": "public", "declaration": "constructor NestedPrivate()", "name": "<init>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PrivateInterface defined in root package",
|
|
"visibility": "private",
|
|
"class": "PrivateInterface$DefaultImpls",
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"declaration": "companion object defined in PrivateInterface",
|
|
"visibility": "public",
|
|
"class": "PrivateInterface$Companion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor Companion()", "name": "<init>", "desc": "()V"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "$$INSTANCE", "desc": "LPrivateInterface$Companion;"},
|
|
{"visibility": "public", "declaration": "companion object", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PrivateInterface defined in root package",
|
|
"visibility": "private",
|
|
"class": "PrivateInterface",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "interface PrivateInterface", "name": "<clinit>", "desc": "()V"},
|
|
{"name": "Companion", "desc": "LPrivateInterface$Companion;"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PrivateInterfacePrivateCompanion defined in root package",
|
|
"visibility": "private",
|
|
"class": "PrivateInterfacePrivateCompanion$DefaultImpls",
|
|
"members": [
|
|
|
|
]
|
|
},
|
|
{
|
|
"declaration": "companion object defined in PrivateInterfacePrivateCompanion",
|
|
"visibility": "private",
|
|
"class": "PrivateInterfacePrivateCompanion$Companion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "constructor Companion()", "name": "<init>", "desc": "()V"},
|
|
{"visibility": "private", "declaration": "companion object", "name": "$$INSTANCE", "desc": "LPrivateInterfacePrivateCompanion$Companion;"},
|
|
{"visibility": "private", "declaration": "companion object", "name": "<clinit>", "desc": "()V"}
|
|
]
|
|
},
|
|
{
|
|
"declaration": "interface PrivateInterfacePrivateCompanion defined in root package",
|
|
"visibility": "private",
|
|
"class": "PrivateInterfacePrivateCompanion",
|
|
"members": [
|
|
{"visibility": "private", "declaration": "interface PrivateInterfacePrivateCompanion", "name": "<clinit>", "desc": "()V"},
|
|
{"name": "Companion", "desc": "LPrivateInterfacePrivateCompanion$Companion;"}
|
|
]
|
|
}
|
|
]
|