omit generic signature for simple methods

This commit is contained in:
Stepan Koltsov
2012-01-03 21:15:21 +04:00
parent 526df9ca80
commit a7a1bd2102
2 changed files with 8 additions and 3 deletions
@@ -61,6 +61,8 @@ public class BothSignatureWriter {
private final Mode mode; private final Mode mode;
private State state = State.START; private State state = State.START;
private boolean generic = false;
public BothSignatureWriter(Mode mode) { public BothSignatureWriter(Mode mode) {
this.mode = mode; this.mode = mode;
if (DEBUG_SIGNATURE_WRITER) { if (DEBUG_SIGNATURE_WRITER) {
@@ -174,6 +176,7 @@ public class BothSignatureWriter {
public void writeTypeArgument(char c) { public void writeTypeArgument(char c) {
push(signatureVisitor().visitTypeArgument(c)); push(signatureVisitor().visitTypeArgument(c));
jetSignatureWriter.visitTypeArgument(c); jetSignatureWriter.visitTypeArgument(c);
generic = true;
} }
public void writeTypeArgumentEnd() { public void writeTypeArgumentEnd() {
@@ -183,6 +186,7 @@ public class BothSignatureWriter {
public void writeTypeVariable(final String name, boolean nullable) { public void writeTypeVariable(final String name, boolean nullable) {
signatureVisitor().visitTypeVariable(name); signatureVisitor().visitTypeVariable(name);
jetSignatureWriter.visitTypeVariable(name, nullable); jetSignatureWriter.visitTypeVariable(name, nullable);
generic = true;
} }
public void writeFormalTypeParameter(final String name, Variance variance) { public void writeFormalTypeParameter(final String name, Variance variance) {
@@ -190,6 +194,8 @@ public class BothSignatureWriter {
signatureVisitor().visitFormalTypeParameter(name); signatureVisitor().visitFormalTypeParameter(name);
jetSignatureWriter.visitFormalTypeParameter(name, JetSignatureUtils.translateVariance(variance)); jetSignatureWriter.visitFormalTypeParameter(name, JetSignatureUtils.translateVariance(variance));
generic = true;
} }
public void writeFormalTypeParameterEnd() { public void writeFormalTypeParameterEnd() {
@@ -334,8 +340,7 @@ public class BothSignatureWriter {
throw new IllegalStateException(); throw new IllegalStateException();
} }
checkTopLevel(); checkTopLevel();
// TODO: return null if not generic return generic ? signatureWriter.toString() : null;
return signatureWriter.toString();
} }
@NotNull @NotNull
@@ -2,5 +2,5 @@ fun foo() = 1
// method: namespace::foo // method: namespace::foo
// jvm signature: ()I // jvm signature: ()I
// generic signature: ()I // TODO: need to skip generic signature // generic signature: null
// kotlin signature: ()I // TODO: need to skip kotlin signature // kotlin signature: ()I // TODO: need to skip kotlin signature