Add hasDelegate(), hasDelegateExpression() and hasInitializer() to PsiJetPropertyStub
This commit is contained in:
@@ -21,4 +21,7 @@ import org.jetbrains.jet.lang.psi.JetProperty;
|
||||
public interface PsiJetPropertyStub extends PsiJetStubWithFqName<JetProperty> {
|
||||
boolean isVar();
|
||||
boolean isTopLevel();
|
||||
boolean hasDelegate();
|
||||
boolean hasDelegateExpression();
|
||||
boolean hasInitializer();
|
||||
}
|
||||
|
||||
+13
-3
@@ -54,8 +54,12 @@ public class JetPropertyElementType extends JetStubElementType<PsiJetPropertyStu
|
||||
String.format("Should not store local property: %s, parent %s",
|
||||
psi.getText(), psi.getParent() != null ? psi.getParent().getText() : "<no parent>");
|
||||
|
||||
return new PsiJetPropertyStubImpl(parentStub, StringRef.fromString(psi.getName()),
|
||||
psi.isVar(), psi.isTopLevel(), ResolveSessionUtils.safeFqNameForLazyResolve(psi));
|
||||
return new PsiJetPropertyStubImpl(
|
||||
parentStub, StringRef.fromString(psi.getName()),
|
||||
psi.isVar(), psi.isTopLevel(), psi.hasDelegate(),
|
||||
psi.hasDelegateExpression(), psi.hasInitializer(),
|
||||
ResolveSessionUtils.safeFqNameForLazyResolve(psi)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -63,6 +67,9 @@ public class JetPropertyElementType extends JetStubElementType<PsiJetPropertyStu
|
||||
dataStream.writeName(stub.getName());
|
||||
dataStream.writeBoolean(stub.isVar());
|
||||
dataStream.writeBoolean(stub.isTopLevel());
|
||||
dataStream.writeBoolean(stub.hasDelegate());
|
||||
dataStream.writeBoolean(stub.hasDelegateExpression());
|
||||
dataStream.writeBoolean(stub.hasInitializer());
|
||||
|
||||
FqName fqName = stub.getFqName();
|
||||
dataStream.writeName(fqName != null ? fqName.asString() : null);
|
||||
@@ -74,11 +81,14 @@ public class JetPropertyElementType extends JetStubElementType<PsiJetPropertyStu
|
||||
StringRef name = dataStream.readName();
|
||||
boolean isVar = dataStream.readBoolean();
|
||||
boolean isTopLevel = dataStream.readBoolean();
|
||||
boolean hasDelegate = dataStream.readBoolean();
|
||||
boolean hasDelegateExpression = dataStream.readBoolean();
|
||||
boolean hasInitializer = dataStream.readBoolean();
|
||||
|
||||
StringRef fqNameAsString = dataStream.readName();
|
||||
FqName fqName = fqNameAsString != null ? new FqName(fqNameAsString.toString()) : null;
|
||||
|
||||
return new PsiJetPropertyStubImpl(parentStub, name, isVar, isTopLevel, fqName);
|
||||
return new PsiJetPropertyStubImpl(parentStub, name, isVar, isTopLevel, hasDelegate, hasDelegateExpression, hasInitializer, fqName);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+34
-1
@@ -29,18 +29,36 @@ public class PsiJetPropertyStubImpl extends StubBase<JetProperty> implements Psi
|
||||
private final StringRef name;
|
||||
private final boolean isVar;
|
||||
private final boolean isTopLevel;
|
||||
private final boolean hasDelegate;
|
||||
private final boolean hasDelegateExpression;
|
||||
private final boolean hasInitializer;
|
||||
private final FqName fqName;
|
||||
|
||||
public PsiJetPropertyStubImpl( StubElement parent, StringRef name, boolean isVar, boolean isTopLevel, @Nullable FqName fqName) {
|
||||
public PsiJetPropertyStubImpl(
|
||||
StubElement parent,
|
||||
StringRef name,
|
||||
boolean isVar,
|
||||
boolean isTopLevel,
|
||||
boolean hasDelegate,
|
||||
boolean hasDelegateExpression,
|
||||
boolean hasInitializer,
|
||||
@Nullable FqName fqName
|
||||
) {
|
||||
super(parent, JetStubElementTypes.PROPERTY);
|
||||
|
||||
if (isTopLevel && fqName == null) {
|
||||
throw new IllegalArgumentException("fqName shouldn't be null for top level properties");
|
||||
}
|
||||
if (hasDelegateExpression && !hasDelegate) {
|
||||
throw new IllegalArgumentException("Can't have delegate expression without delegate");
|
||||
}
|
||||
|
||||
this.name = name;
|
||||
this.isVar = isVar;
|
||||
this.isTopLevel = isTopLevel;
|
||||
this.hasDelegate = hasDelegate;
|
||||
this.hasDelegateExpression = hasDelegateExpression;
|
||||
this.hasInitializer = hasInitializer;
|
||||
this.fqName = fqName;
|
||||
}
|
||||
|
||||
@@ -54,6 +72,21 @@ public class PsiJetPropertyStubImpl extends StubBase<JetProperty> implements Psi
|
||||
return isTopLevel;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasDelegate() {
|
||||
return hasDelegate;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasDelegateExpression() {
|
||||
return hasDelegateExpression;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasInitializer() {
|
||||
return hasInitializer;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public FqName getFqName() {
|
||||
|
||||
Reference in New Issue
Block a user