Add PsiJetParameterStub#hasDefaultValue

This commit is contained in:
Pavel V. Talanov
2014-03-27 21:01:05 +04:00
parent f8d9a69aa9
commit e8d065a80f
3 changed files with 15 additions and 5 deletions
@@ -22,4 +22,5 @@ public interface PsiJetParameterStub extends PsiJetStubWithFqName<JetParameter>
boolean isMutable(); boolean isMutable();
boolean isVarArg(); boolean isVarArg();
boolean hasValOrValNode(); boolean hasValOrValNode();
boolean hasDefaultValue();
} }
@@ -24,9 +24,7 @@ import com.intellij.psi.stubs.StubOutputStream;
import com.intellij.util.io.StringRef; import com.intellij.util.io.StringRef;
import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.psi.JetExpression;
import org.jetbrains.jet.lang.psi.JetParameter; import org.jetbrains.jet.lang.psi.JetParameter;
import org.jetbrains.jet.lang.psi.JetTypeReference;
import org.jetbrains.jet.lang.psi.stubs.PsiJetParameterStub; import org.jetbrains.jet.lang.psi.stubs.PsiJetParameterStub;
import org.jetbrains.jet.lang.psi.stubs.impl.PsiJetParameterStubImpl; import org.jetbrains.jet.lang.psi.stubs.impl.PsiJetParameterStubImpl;
import org.jetbrains.jet.lang.resolve.name.FqName; import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -41,7 +39,8 @@ public class JetParameterElementType extends JetStubElementType<PsiJetParameterS
@Override @Override
public PsiJetParameterStub createStub(@NotNull JetParameter psi, StubElement parentStub) { public PsiJetParameterStub createStub(@NotNull JetParameter psi, StubElement parentStub) {
return new PsiJetParameterStubImpl(parentStub, psi.getFqName(), StringRef.fromString(psi.getName()), return new PsiJetParameterStubImpl(parentStub, psi.getFqName(), StringRef.fromString(psi.getName()),
psi.isMutable(), psi.isVarArg(), psi.getValOrVarNode() != null); psi.isMutable(), psi.isVarArg(), psi.getValOrVarNode() != null,
psi.getDefaultValue() != null);
} }
@Override @Override
@@ -59,6 +58,7 @@ public class JetParameterElementType extends JetStubElementType<PsiJetParameterS
dataStream.writeBoolean(stub.isMutable()); dataStream.writeBoolean(stub.isMutable());
dataStream.writeBoolean(stub.isVarArg()); dataStream.writeBoolean(stub.isVarArg());
dataStream.writeBoolean(stub.hasValOrValNode()); dataStream.writeBoolean(stub.hasValOrValNode());
dataStream.writeBoolean(stub.hasDefaultValue());
FqName name = stub.getFqName(); FqName name = stub.getFqName();
dataStream.writeName(name != null ? name.asString() : null); dataStream.writeName(name != null ? name.asString() : null);
} }
@@ -70,9 +70,10 @@ public class JetParameterElementType extends JetStubElementType<PsiJetParameterS
boolean isMutable = dataStream.readBoolean(); boolean isMutable = dataStream.readBoolean();
boolean isVarArg = dataStream.readBoolean(); boolean isVarArg = dataStream.readBoolean();
boolean hasValOrValNode = dataStream.readBoolean(); boolean hasValOrValNode = dataStream.readBoolean();
boolean hasDefaultValue = dataStream.readBoolean();
StringRef fqNameAsString = dataStream.readName(); StringRef fqNameAsString = dataStream.readName();
FqName fqName = fqNameAsString != null ? new FqName(fqNameAsString.toString()) : null; FqName fqName = fqNameAsString != null ? new FqName(fqNameAsString.toString()) : null;
return new PsiJetParameterStubImpl(parentStub, fqName, name, isMutable, isVarArg, hasValOrValNode); return new PsiJetParameterStubImpl(parentStub, fqName, name, isMutable, isVarArg, hasValOrValNode, hasDefaultValue);
} }
} }
@@ -32,13 +32,15 @@ public class PsiJetParameterStubImpl extends StubBase<JetParameter> implements P
//TODO: store as StringRef //TODO: store as StringRef
private final FqName fqName; private final FqName fqName;
private final boolean hasValOrValNode; private final boolean hasValOrValNode;
private final boolean hasDefaultValue;
public PsiJetParameterStubImpl( public PsiJetParameterStubImpl(
StubElement parent, StubElement parent,
FqName fqName, StringRef name, FqName fqName, StringRef name,
boolean isMutable, boolean isMutable,
boolean isVarArg, boolean isVarArg,
boolean hasValOrValNode boolean hasValOrValNode,
boolean hasDefaultValue
) { ) {
super(parent, JetStubElementTypes.VALUE_PARAMETER); super(parent, JetStubElementTypes.VALUE_PARAMETER);
this.name = name; this.name = name;
@@ -46,6 +48,7 @@ public class PsiJetParameterStubImpl extends StubBase<JetParameter> implements P
this.isVarArg = isVarArg; this.isVarArg = isVarArg;
this.fqName = fqName; this.fqName = fqName;
this.hasValOrValNode = hasValOrValNode; this.hasValOrValNode = hasValOrValNode;
this.hasDefaultValue = hasDefaultValue;
} }
@Override @Override
@@ -68,6 +71,11 @@ public class PsiJetParameterStubImpl extends StubBase<JetParameter> implements P
return hasValOrValNode; return hasValOrValNode;
} }
@Override
public boolean hasDefaultValue() {
return hasDefaultValue;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();