mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-14 18:05:27 +07:00
API dump: don't include synthetic bridges in the dump
These methods exist to support - covariant return type overrides; - generic overrides; - overrides of `void` methods with methods returning `java/lang/Void` in Kotlin. Such methods are called only through supertype invocations, and supertypes are already listed in the dump. The main reason for avoiding these in dumps: Java allows extending a public class `B` from a package-local class `A`. `B` can override a method of `A` with a covariant return type. In this case, a synthetic bridge is generated in `B` with the return type from method in `A`. If the method return type in `A` is also a package-local class `C`, this would mean `C` is leaked by the API surface of `B`. Instead, we consider such bridges not a part of the API. For a concrete example, see: `com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPackageLocalClass.packagePrivateMethodWithPackagePrivateReturnType`. Another reason has the same root cause: Java allows such class inheritance. A public class `B` which extends package-local class `A` "opens" up _all_ public/protected methods of `A` to the outer world. In subsequent commits, this is going to be reflected in the dump by copying the API methods of package-local `A` into public `B`. We don't want to copy the bridges, which a part of `A` and can be only accessed through supertype of `A`, to avoid false positive leaking API errors. GitOrigin-RevId: 2aecf62ad18f4ed6458927ccbd86f8066bea4751
This commit is contained in:
committed by
intellij-monorepo-bot
parent
f5ca12a94b
commit
57896efa7e
@@ -96,7 +96,6 @@ f:com.intellij.openapi.util.text.NaturalComparator
|
||||
- java.util.Comparator
|
||||
- sf:INSTANCE:java.util.Comparator
|
||||
- <init>():V
|
||||
- b:compare(java.lang.Object,java.lang.Object):I
|
||||
- compare(java.lang.String,java.lang.String):I
|
||||
f:com.intellij.openapi.util.text.Strings
|
||||
- sf:EMPTY_CHAR_SEQUENCE:java.lang.CharSequence
|
||||
@@ -522,7 +521,6 @@ f:com.intellij.util.containers.SoftArrayHashMap
|
||||
- <init>():V
|
||||
- clear():V
|
||||
- clone():com.intellij.util.containers.SoftArrayHashMap
|
||||
- b:clone():java.lang.Object
|
||||
- containsKey(java.lang.Object[]):Z
|
||||
- get(java.lang.Object[]):java.lang.Object
|
||||
- processLeafEntries(java.util.function.BiPredicate):Z
|
||||
@@ -680,7 +678,6 @@ f:com.intellij.util.text.SemVer
|
||||
- <init>(java.lang.String,I,I,I):V
|
||||
- <init>(java.lang.String,I,I,I,java.lang.String):V
|
||||
- compareTo(com.intellij.util.text.SemVer):I
|
||||
- b:compareTo(java.lang.Object):I
|
||||
- equals(java.lang.Object):Z
|
||||
- getMajor():I
|
||||
- getMinor():I
|
||||
|
||||
@@ -93,26 +93,18 @@ f:org.apache.commons.lang.builder.EqualsBuilder
|
||||
- org.apache.commons.lang3.builder.EqualsBuilder
|
||||
- <init>():V
|
||||
- append(I,I):org.apache.commons.lang.builder.EqualsBuilder
|
||||
- b:append(I,I):org.apache.commons.lang3.builder.EqualsBuilder
|
||||
- append(java.lang.Object,java.lang.Object):org.apache.commons.lang.builder.EqualsBuilder
|
||||
- b:append(java.lang.Object,java.lang.Object):org.apache.commons.lang3.builder.EqualsBuilder
|
||||
- append(Z,Z):org.apache.commons.lang.builder.EqualsBuilder
|
||||
- b:append(Z,Z):org.apache.commons.lang3.builder.EqualsBuilder
|
||||
- appendSuper(Z):org.apache.commons.lang.builder.EqualsBuilder
|
||||
- b:appendSuper(Z):org.apache.commons.lang3.builder.EqualsBuilder
|
||||
- s:reflectionEquals(java.lang.Object,java.lang.Object):Z
|
||||
f:org.apache.commons.lang.builder.HashCodeBuilder
|
||||
- org.apache.commons.lang3.builder.HashCodeBuilder
|
||||
- <init>():V
|
||||
- <init>(I,I):V
|
||||
- append(I):org.apache.commons.lang.builder.HashCodeBuilder
|
||||
- b:append(I):org.apache.commons.lang3.builder.HashCodeBuilder
|
||||
- append(java.lang.Object):org.apache.commons.lang.builder.HashCodeBuilder
|
||||
- b:append(java.lang.Object):org.apache.commons.lang3.builder.HashCodeBuilder
|
||||
- append(Z):org.apache.commons.lang.builder.HashCodeBuilder
|
||||
- b:append(Z):org.apache.commons.lang3.builder.HashCodeBuilder
|
||||
- appendSuper(I):org.apache.commons.lang.builder.HashCodeBuilder
|
||||
- b:appendSuper(I):org.apache.commons.lang3.builder.HashCodeBuilder
|
||||
- s:reflectionHashCode(java.lang.Object):I
|
||||
f:org.apache.commons.lang.builder.ReflectionToStringBuilder
|
||||
- org.apache.commons.lang3.builder.ReflectionToStringBuilder
|
||||
@@ -135,11 +127,8 @@ f:org.apache.commons.lang.text.StrBuilder
|
||||
- <init>(I):V
|
||||
- <init>(java.lang.String):V
|
||||
- append(I):org.apache.commons.lang.text.StrBuilder
|
||||
- b:append(I):org.apache.commons.lang3.text.StrBuilder
|
||||
- append(java.lang.String):org.apache.commons.lang.text.StrBuilder
|
||||
- b:append(java.lang.String):org.apache.commons.lang3.text.StrBuilder
|
||||
- appendNewLine():org.apache.commons.lang.text.StrBuilder
|
||||
- b:appendNewLine():org.apache.commons.lang3.text.StrBuilder
|
||||
f:org.apache.commons.lang.text.StrSubstitutor
|
||||
- org.apache.commons.lang3.text.StrSubstitutor
|
||||
- <init>():V
|
||||
|
||||
@@ -12,7 +12,6 @@ c:org.jdom.Attribute
|
||||
- <init>(java.lang.String,java.lang.String,org.jdom.AttributeType):V
|
||||
- <init>(java.lang.String,java.lang.String,org.jdom.AttributeType,org.jdom.Namespace):V
|
||||
- <init>(java.lang.String,java.lang.String,org.jdom.Namespace):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.Attribute
|
||||
- detach():org.jdom.Attribute
|
||||
- getAttributeType():org.jdom.AttributeType
|
||||
@@ -60,27 +59,16 @@ c:org.jdom.CDATA
|
||||
- <init>(Z,java.lang.String):V
|
||||
- append(java.lang.String):V
|
||||
- append(org.jdom.Text):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.CDATA
|
||||
- b:clone():org.jdom.Content
|
||||
- b:clone():org.jdom.Text
|
||||
- detach():org.jdom.CDATA
|
||||
- b:detach():org.jdom.Content
|
||||
- b:detach():org.jdom.Text
|
||||
- p:setParent(org.jdom.Parent):org.jdom.CDATA
|
||||
- bp:setParent(org.jdom.Parent):org.jdom.Content
|
||||
- bp:setParent(org.jdom.Parent):org.jdom.Text
|
||||
- setText(java.lang.String):org.jdom.CDATA
|
||||
- b:setText(java.lang.String):org.jdom.Text
|
||||
- toString():java.lang.String
|
||||
f:org.jdom.Comment
|
||||
- org.jdom.Content
|
||||
- <init>(java.lang.String):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.Comment
|
||||
- b:clone():org.jdom.Content
|
||||
- detach():org.jdom.Comment
|
||||
- b:detach():org.jdom.Content
|
||||
- getText():java.lang.String
|
||||
- getValue():java.lang.String
|
||||
- setText(java.lang.String):org.jdom.Comment
|
||||
@@ -90,7 +78,6 @@ a:org.jdom.Content
|
||||
- pf:ctype:org.jdom.Content$CType
|
||||
- p:parent:org.jdom.Parent
|
||||
- p:<init>(org.jdom.Content$CType):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.Content
|
||||
- detach():org.jdom.Content
|
||||
- f:getCType():org.jdom.Content$CType
|
||||
@@ -154,15 +141,11 @@ f:org.jdom.DocType
|
||||
- <init>(java.lang.String):V
|
||||
- <init>(java.lang.String,java.lang.String):V
|
||||
- <init>(java.lang.String,java.lang.String,java.lang.String):V
|
||||
- b:clone():java.lang.Object
|
||||
- b:clone():org.jdom.Content
|
||||
- clone():org.jdom.DocType
|
||||
- b:detach():org.jdom.Content
|
||||
- detach():org.jdom.DocType
|
||||
- getElementName():java.lang.String
|
||||
- getInternalSubset():java.lang.String
|
||||
- getParent():org.jdom.Document
|
||||
- b:getParent():org.jdom.Parent
|
||||
- getPublicID():java.lang.String
|
||||
- getSystemID():java.lang.String
|
||||
- getValue():java.lang.String
|
||||
@@ -180,17 +163,11 @@ f:org.jdom.Document
|
||||
- <init>(org.jdom.Element,org.jdom.DocType):V
|
||||
- <init>(org.jdom.Element,org.jdom.DocType,java.lang.String):V
|
||||
- addContent(I,java.util.Collection):org.jdom.Document
|
||||
- b:addContent(I,java.util.Collection):org.jdom.Parent
|
||||
- addContent(I,org.jdom.Content):org.jdom.Document
|
||||
- b:addContent(I,org.jdom.Content):org.jdom.Parent
|
||||
- addContent(java.util.Collection):org.jdom.Document
|
||||
- b:addContent(java.util.Collection):org.jdom.Parent
|
||||
- addContent(org.jdom.Content):org.jdom.Document
|
||||
- b:addContent(org.jdom.Content):org.jdom.Parent
|
||||
- canContainContent(org.jdom.Content,I,Z):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.Document
|
||||
- b:clone():org.jdom.Parent
|
||||
- cloneContent():java.util.List
|
||||
- detachRootElement():org.jdom.Element
|
||||
- equals(java.lang.Object):Z
|
||||
@@ -231,23 +208,15 @@ c:org.jdom.Element
|
||||
- <init>(java.lang.String,java.lang.String,java.lang.String):V
|
||||
- <init>(java.lang.String,org.jdom.Namespace):V
|
||||
- addContent(I,java.util.Collection):org.jdom.Element
|
||||
- b:addContent(I,java.util.Collection):org.jdom.Parent
|
||||
- addContent(I,org.jdom.Content):org.jdom.Element
|
||||
- b:addContent(I,org.jdom.Content):org.jdom.Parent
|
||||
- addContent(java.lang.String):org.jdom.Element
|
||||
- addContent(java.util.Collection):org.jdom.Element
|
||||
- b:addContent(java.util.Collection):org.jdom.Parent
|
||||
- addContent(org.jdom.Content):org.jdom.Element
|
||||
- b:addContent(org.jdom.Content):org.jdom.Parent
|
||||
- addContent(org.jdom.Element):org.jdom.Element
|
||||
- addNamespaceDeclaration(org.jdom.Namespace):V
|
||||
- canContainContent(org.jdom.Content,I,Z):V
|
||||
- b:clone():java.lang.Object
|
||||
- b:clone():org.jdom.Content
|
||||
- clone():org.jdom.Element
|
||||
- b:clone():org.jdom.Parent
|
||||
- cloneContent():java.util.List
|
||||
- b:detach():org.jdom.Content
|
||||
- detach():org.jdom.Element
|
||||
- getAdditionalNamespaces():java.util.List
|
||||
- getAttribute(java.lang.String):org.jdom.Attribute
|
||||
@@ -324,14 +293,10 @@ f:org.jdom.EntityRef
|
||||
- <init>(java.lang.String):V
|
||||
- <init>(java.lang.String,java.lang.String):V
|
||||
- <init>(java.lang.String,java.lang.String,java.lang.String):V
|
||||
- b:clone():java.lang.Object
|
||||
- b:clone():org.jdom.Content
|
||||
- clone():org.jdom.EntityRef
|
||||
- b:detach():org.jdom.Content
|
||||
- detach():org.jdom.EntityRef
|
||||
- getName():java.lang.String
|
||||
- getParent():org.jdom.Element
|
||||
- b:getParent():org.jdom.Parent
|
||||
- getValue():java.lang.String
|
||||
- setName(java.lang.String):org.jdom.EntityRef
|
||||
- setPublicID(java.lang.String):org.jdom.EntityRef
|
||||
@@ -429,10 +394,7 @@ f:org.jdom.ProcessingInstruction
|
||||
- <init>(java.lang.String):V
|
||||
- <init>(java.lang.String,java.lang.String):V
|
||||
- <init>(java.lang.String,java.util.Map):V
|
||||
- b:clone():java.lang.Object
|
||||
- b:clone():org.jdom.Content
|
||||
- clone():org.jdom.ProcessingInstruction
|
||||
- b:detach():org.jdom.Content
|
||||
- detach():org.jdom.ProcessingInstruction
|
||||
- getData():java.lang.String
|
||||
- getTarget():java.lang.String
|
||||
@@ -447,19 +409,14 @@ c:org.jdom.Text
|
||||
- p:<init>(org.jdom.Content$CType):V
|
||||
- append(java.lang.String):V
|
||||
- append(org.jdom.Text):V
|
||||
- b:clone():java.lang.Object
|
||||
- b:clone():org.jdom.Content
|
||||
- clone():org.jdom.Text
|
||||
- b:detach():org.jdom.Content
|
||||
- detach():org.jdom.Text
|
||||
- getParent():org.jdom.Element
|
||||
- b:getParent():org.jdom.Parent
|
||||
- getText():java.lang.String
|
||||
- getTextNormalize():java.lang.String
|
||||
- getTextTrim():java.lang.String
|
||||
- getValue():java.lang.String
|
||||
- s:normalizeString(java.lang.String):java.lang.String
|
||||
- bp:setParent(org.jdom.Parent):org.jdom.Content
|
||||
- p:setParent(org.jdom.Parent):org.jdom.Text
|
||||
- setText(java.lang.String):org.jdom.Text
|
||||
- toString():java.lang.String
|
||||
@@ -507,7 +464,6 @@ f:org.jdom.filter2.ElementFilter
|
||||
- <init>(java.lang.String,org.jdom.Namespace):V
|
||||
- <init>(org.jdom.Namespace):V
|
||||
- equals(java.lang.Object):Z
|
||||
- b:filter(java.lang.Object):java.lang.Object
|
||||
- filter(java.lang.Object):org.jdom.Element
|
||||
- hashCode():I
|
||||
- toString():java.lang.String
|
||||
@@ -663,7 +619,6 @@ org.jdom.output.EscapeStrategy
|
||||
- a:shouldEscape(C):Z
|
||||
f:org.jdom.output.Format
|
||||
- java.lang.Cloneable
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.output.Format
|
||||
- s:compact(java.lang.String):java.lang.String
|
||||
- s:getCompactFormat():org.jdom.output.Format
|
||||
@@ -793,7 +748,6 @@ f:org.jdom.xpath.jaxen.JaxenXPathFactory
|
||||
a:org.jdom.xpath.util.AbstractXPathCompiled
|
||||
- org.jdom.xpath.XPathExpression
|
||||
- <init>(java.lang.String,org.jdom.filter2.Filter,java.util.Map,org.jdom.Namespace[]):V
|
||||
- b:clone():java.lang.Object
|
||||
- clone():org.jdom.xpath.XPathExpression
|
||||
- diagnose(java.lang.Object,Z):org.jdom.xpath.XPathDiagnostic
|
||||
- evaluate(java.lang.Object):java.util.List
|
||||
|
||||
@@ -2,10 +2,7 @@
|
||||
package com.intellij.tools.apiDump
|
||||
|
||||
import kotlinx.metadata.jvm.JvmFieldSignature
|
||||
import kotlinx.validation.api.ClassBinarySignature
|
||||
import kotlinx.validation.api.MEMBER_SORT_ORDER
|
||||
import kotlinx.validation.api.MemberBinarySignature
|
||||
import kotlinx.validation.api.loadApiFromJvmClasses
|
||||
import kotlinx.validation.api.*
|
||||
import org.objectweb.asm.Opcodes
|
||||
import org.objectweb.asm.Type
|
||||
import org.objectweb.asm.tree.AnnotationNode
|
||||
@@ -30,6 +27,7 @@ class ApiIndex {
|
||||
val signatures: List<ClassBinarySignature> = classFilePaths
|
||||
.map { it.inputStream() }
|
||||
.loadApiFromJvmClasses()
|
||||
.map { it.removeSyntheticBridges() }
|
||||
discoverClasses(signatures)
|
||||
|
||||
handleAnnotationsAndVisibility(signatures)
|
||||
@@ -134,28 +132,8 @@ class ApiIndex {
|
||||
member.access.isStatic
|
||||
}
|
||||
}
|
||||
val privateSignatures = privateSupertypes.flatMap { superType ->
|
||||
superType.memberSignatures
|
||||
.filter {
|
||||
val flags = it.access.access
|
||||
!flags.isSet(Opcodes.ACC_STATIC)
|
||||
&& !flags.isSet(Opcodes.ACC_BRIDGE)
|
||||
&& !flags.isSet(Opcodes.ACC_SYNTHETIC)
|
||||
}
|
||||
.map {
|
||||
it.jvmMember
|
||||
}
|
||||
}.toSet()
|
||||
val withoutBridges = memberSignatures
|
||||
.filter { signature ->
|
||||
val flags = signature.access.access
|
||||
flags.isSet(Opcodes.ACC_STATIC)
|
||||
|| !flags.isSet(Opcodes.ACC_BRIDGE)
|
||||
|| !flags.isSet(Opcodes.ACC_SYNTHETIC)
|
||||
|| signature.jvmMember !in privateSignatures
|
||||
}
|
||||
return this.copy(
|
||||
memberSignatures = withoutBridges + inheritedStaticSignatures,
|
||||
memberSignatures = memberSignatures + inheritedStaticSignatures,
|
||||
supertypes = supertypes - privateSupertypes.map { it.name }.toSet()
|
||||
)
|
||||
}
|
||||
@@ -236,6 +214,26 @@ private fun List<AnnotationNode>?.isExperimental(): Boolean {
|
||||
|
||||
private typealias ClassResolver = (String) -> ClassBinarySignature?
|
||||
|
||||
private fun ClassBinarySignature.removeSyntheticBridges(): ClassBinarySignature {
|
||||
val withoutBridges = memberSignatures.filterNot {
|
||||
it is MethodBinarySignature && it.isSyntheticBridge()
|
||||
}
|
||||
if (withoutBridges.size == memberSignatures.size) {
|
||||
return this
|
||||
}
|
||||
else {
|
||||
return copy(memberSignatures = withoutBridges)
|
||||
}
|
||||
}
|
||||
|
||||
private fun MethodBinarySignature.isSyntheticBridge(): Boolean {
|
||||
return access.access.let { flags ->
|
||||
!flags.isSet(Opcodes.ACC_STATIC)
|
||||
&& flags.isSet(Opcodes.ACC_BRIDGE)
|
||||
&& flags.isSet(Opcodes.ACC_SYNTHETIC)
|
||||
}
|
||||
}
|
||||
|
||||
private fun ClassBinarySignature.supertypes(classResolver: ClassResolver): Sequence<ClassBinarySignature> = sequence {
|
||||
val stack = ArrayDeque<ClassBinarySignature>()
|
||||
stack.addLast(this@supertypes)
|
||||
|
||||
@@ -89,7 +89,6 @@ c:com.intellij.tools.apiDump.testData.JPublicClassInternalInterface
|
||||
c:com.intellij.tools.apiDump.testData.JPublicClassInternalSuper
|
||||
- <init>():V
|
||||
- clone():com.intellij.tools.apiDump.testData.JPublicClassInternalSuper
|
||||
- b:clone():java.lang.Object
|
||||
- psf:protectedStaticFinalMethod():V
|
||||
- ps:protectedStaticMethod():V
|
||||
- sf:publicStaticFinalMethod():V
|
||||
@@ -135,7 +134,6 @@ f:com.intellij.tools.apiDump.testData.defaultParameters.KtChildClass
|
||||
- <init>():V
|
||||
- function(I,I,I):V
|
||||
- genericFunction(I,D,I):java.lang.Double
|
||||
- b:genericFunction(I,java.lang.Object,I):java.lang.Object
|
||||
com.intellij.tools.apiDump.testData.defaultParameters.KtInterface
|
||||
- a:function(I,I,I):V
|
||||
- bs:function$default(com.intellij.tools.apiDump.testData.defaultParameters.KtInterface,I,I,I,I,java.lang.Object):V
|
||||
@@ -159,19 +157,11 @@ c:com.intellij.tools.apiDump.testData.generics.JGenericChildClass
|
||||
- com.intellij.tools.apiDump.testData.generics.JGenericMiddleClass
|
||||
- <init>():V
|
||||
- acceptingAT(java.lang.Double[]):V
|
||||
- b:acceptingAT(java.lang.Number[]):V
|
||||
- b:acceptingAT(java.lang.Object[]):V
|
||||
- acceptingLT(java.util.List):V
|
||||
- acceptingT(java.lang.Double):V
|
||||
- b:acceptingT(java.lang.Number):V
|
||||
- b:acceptingT(java.lang.Object):V
|
||||
- returningAT():java.lang.Double[]
|
||||
- b:returningAT():java.lang.Number[]
|
||||
- b:returningAT():java.lang.Object[]
|
||||
- returningLT():java.lang.Iterable
|
||||
- returningT():java.lang.Double
|
||||
- b:returningT():java.lang.Number
|
||||
- b:returningT():java.lang.Object
|
||||
com.intellij.tools.apiDump.testData.generics.JGenericInterface
|
||||
- a:acceptingAT(java.lang.Object[]):V
|
||||
- a:acceptingLT(java.util.List):V
|
||||
@@ -183,22 +173,16 @@ a:com.intellij.tools.apiDump.testData.generics.JGenericMiddleClass
|
||||
- com.intellij.tools.apiDump.testData.generics.JGenericInterface
|
||||
- <init>():V
|
||||
- acceptingAT(java.lang.Number[]):V
|
||||
- b:acceptingAT(java.lang.Object[]):V
|
||||
- acceptingLT(java.util.List):V
|
||||
- a:acceptingT(java.lang.Number):V
|
||||
- b:acceptingT(java.lang.Object):V
|
||||
- returningAT():java.lang.Number[]
|
||||
- b:returningAT():java.lang.Object[]
|
||||
- returningLT():java.lang.Iterable
|
||||
- returningT():java.lang.Number
|
||||
- b:returningT():java.lang.Object
|
||||
f:com.intellij.tools.apiDump.testData.generics2.JChildClasses
|
||||
c:com.intellij.tools.apiDump.testData.generics2.JChildClasses$JChildClassFromMiddleWithAbstractOverride
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClassWithAbstractOverride
|
||||
- <init>():V
|
||||
- genericMethod(java.lang.Double):java.lang.Double
|
||||
- b:genericMethod(java.lang.Number):java.lang.Number
|
||||
- b:genericMethod(java.lang.Object):java.lang.Object
|
||||
c:com.intellij.tools.apiDump.testData.generics2.JChildClasses$JChildClassFromMiddleWithOverride
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClassWithOverride
|
||||
- <init>():V
|
||||
@@ -206,13 +190,10 @@ c:com.intellij.tools.apiDump.testData.generics2.JChildClasses$JChildClassFromMid
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClass
|
||||
- <init>():V
|
||||
- genericMethod(java.lang.Double):java.lang.Double
|
||||
- b:genericMethod(java.lang.Object):java.lang.Object
|
||||
c:com.intellij.tools.apiDump.testData.generics2.JChildClasses$JChildClassWithOverrideFromMiddleWithOverride
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClassWithOverride
|
||||
- <init>():V
|
||||
- genericMethod(java.lang.Double):java.lang.Double
|
||||
- b:genericMethod(java.lang.Number):java.lang.Number
|
||||
- b:genericMethod(java.lang.Object):java.lang.Object
|
||||
com.intellij.tools.apiDump.testData.generics2.JGenericInterface
|
||||
- a:genericMethod(java.lang.Object):java.lang.Object
|
||||
a:com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClass
|
||||
@@ -222,24 +203,20 @@ a:com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClassWithAbstractO
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericInterface
|
||||
- <init>():V
|
||||
- a:genericMethod(java.lang.Number):java.lang.Number
|
||||
- b:genericMethod(java.lang.Object):java.lang.Object
|
||||
a:com.intellij.tools.apiDump.testData.generics2.JGenericMiddleClassWithOverride
|
||||
- com.intellij.tools.apiDump.testData.generics2.JGenericInterface
|
||||
- <init>():V
|
||||
- genericMethod(java.lang.Number):java.lang.Number
|
||||
- b:genericMethod(java.lang.Object):java.lang.Object
|
||||
c:com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPublicClassFromPackageLocalRunnable
|
||||
- <init>():V
|
||||
f:com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPublicFinalInheritor
|
||||
- <init>():V
|
||||
- b:packagePrivateMethodWithPackagePrivateReturnType():com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPackageLocalClass
|
||||
- packagePrivateMethodWithPackagePrivateReturnType():com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPublicFinalInheritor
|
||||
- ps:protectedStaticMethod():V
|
||||
- s:publicStaticMethod():V
|
||||
c:com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPublicInheritor
|
||||
- <init>():V
|
||||
- p:<init>(B):V
|
||||
- b:packagePrivateMethodWithPackagePrivateReturnType():com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPackageLocalClass
|
||||
- packagePrivateMethodWithPackagePrivateReturnType():com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPublicInheritor
|
||||
- ps:protectedStaticMethod():V
|
||||
- s:publicStaticMethod():V
|
||||
|
||||
Reference in New Issue
Block a user