/** Shortcut */ @Override public void writeAsmType(Type asmType) { if (asmType.getSort() != Type.OBJECT && asmType.getSort() != Type.ARRAY) { signatureVisitor().visitBaseType(asmType.getDescriptor().charAt(0)); } super.writeAsmType(asmType); }
@Override public void writeParameterType(JvmMethodParameterKind parameterKind) { // This magic mimics the behavior of javac that enum constructor have these synthetic parameters // in erased signature, but doesn't // have them in generic signature. IDEA, javac and their friends rely on this behavior. if (parameterKind.isSkippedInGenericSignature()) { generic = true; // pushing dummy visitor, because we don't want these parameters to appear in generic JVM // signature push(new SignatureWriter()); } else { push(signatureVisitor().visitParameterType()); } super.writeParameterType(parameterKind); }
@Override public void writeSuperclassEnd() { pop(); super.writeSuperclassEnd(); }
@Override public void writeSuperclass() { push(signatureVisitor().visitSuperclass()); super.writeSuperclass(); }
@Override public void writeReturnTypeEnd() { pop(); super.writeReturnTypeEnd(); }
@Override public void writeTypeArgument(@NotNull Variance projectionKind) { push(signatureVisitor().visitTypeArgument(toJvmVariance(projectionKind))); generic = true; super.writeTypeArgument(projectionKind); }
@Override public void writeClassEnd() { signatureVisitor().visitEnd(); super.writeClassEnd(); }
@Override public void writeOuterClassBegin(Type resultingAsmType, String outerInternalName) { signatureVisitor().visitClassType(outerInternalName); super.writeOuterClassBegin(resultingAsmType, outerInternalName); }
@Override public void writeClassBoundEnd() { pop(); super.writeClassBoundEnd(); }
@Override public void writeClassBound() { push(signatureVisitor().visitClassBound()); super.writeClassBound(); }
@Override public void writeFormalTypeParameter(String name) { signatureVisitor().visitFormalTypeParameter(name); generic = true; super.writeFormalTypeParameter(name); }
@Override public void writeTypeVariable(Name name, Type asmType) { signatureVisitor().visitTypeVariable(name.asString()); generic = true; super.writeTypeVariable(name, asmType); }
@Override public void writeTypeArgumentEnd() { pop(); super.writeTypeArgumentEnd(); }
@Override public void writeUnboundedWildcard() { signatureVisitor().visitTypeArgument(); generic = true; super.writeUnboundedWildcard(); }
@Override public void writeInterface() { push(signatureVisitor().visitInterface()); super.writeInterface(); }
@Override public void writeInterfaceEnd() { pop(); super.writeInterfaceEnd(); }
@Override public void writeParametersStart() { super.writeParametersStart(); }
@Override public void writeClassBegin(Type asmType) { signatureVisitor().visitClassType(asmType.getInternalName()); super.writeClassBegin(asmType); }
@Override public void writeParameterTypeEnd() { pop(); super.writeParameterTypeEnd(); }
@Override public void writeInnerClass(String name) { signatureVisitor().visitInnerClassType(name); super.writeInnerClass(name); }
@Override public void writeReturnType() { push(signatureVisitor().visitReturnType()); super.writeReturnType(); }
@Override public void writeArrayType() { push(signatureVisitor().visitArrayType()); super.writeArrayType(); }
@Override public void writeArrayEnd() { pop(); super.writeArrayEnd(); }