diff --git a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/MethodTypeVarsAttr.java b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/MethodTypeVarsAttr.java index 646f5ddea..e03a04633 100644 --- a/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/MethodTypeVarsAttr.java +++ b/jadx-core/src/main/java/jadx/core/dex/attributes/nodes/MethodTypeVarsAttr.java @@ -1,19 +1,30 @@ package jadx.core.dex.attributes.nodes; +import java.util.Collections; import java.util.Set; import jadx.core.dex.attributes.AType; import jadx.core.dex.attributes.IAttribute; import jadx.core.dex.instructions.args.ArgType; +import static jadx.core.utils.Utils.isEmpty; + /** * Set of known type variables at current method */ public class MethodTypeVarsAttr implements IAttribute { + private static final MethodTypeVarsAttr EMPTY = new MethodTypeVarsAttr(Collections.emptySet()); + + public static MethodTypeVarsAttr build(Set typeVars) { + if (isEmpty(typeVars)) { + return EMPTY; + } + return new MethodTypeVarsAttr(typeVars); + } private final Set typeVars; - public MethodTypeVarsAttr(Set typeVars) { + private MethodTypeVarsAttr(Set typeVars) { this.typeVars = typeVars; } diff --git a/jadx-core/src/main/java/jadx/core/dex/nodes/utils/TypeUtils.java b/jadx-core/src/main/java/jadx/core/dex/nodes/utils/TypeUtils.java index b0912e95a..3cb27ae16 100644 --- a/jadx-core/src/main/java/jadx/core/dex/nodes/utils/TypeUtils.java +++ b/jadx-core/src/main/java/jadx/core/dex/nodes/utils/TypeUtils.java @@ -92,8 +92,9 @@ public class TypeUtils { return typeVarsAttr.getTypeVars(); } Set typeVars = collectKnownTypeVarsAtMethod(mth); - mth.addAttr(new MethodTypeVarsAttr(typeVars)); - return typeVars; + MethodTypeVarsAttr varsAttr = MethodTypeVarsAttr.build(typeVars); + mth.addAttr(varsAttr); + return varsAttr.getTypeVars(); } private static Set collectKnownTypeVarsAtMethod(MethodNode mth) {