Stubs for JetClassObject
This commit is contained in:
@@ -36,7 +36,7 @@ public interface JetNodeTypes {
|
|||||||
IElementType OBJECT_DECLARATION = JetStubElementTypes.OBJECT_DECLARATION;
|
IElementType OBJECT_DECLARATION = JetStubElementTypes.OBJECT_DECLARATION;
|
||||||
JetNodeType OBJECT_DECLARATION_NAME = new JetNodeType("OBJECT_DECLARATION_NAME", JetObjectDeclarationName.class);
|
JetNodeType OBJECT_DECLARATION_NAME = new JetNodeType("OBJECT_DECLARATION_NAME", JetObjectDeclarationName.class);
|
||||||
|
|
||||||
JetNodeType CLASS_OBJECT = new JetNodeType("CLASS_OBJECT", JetClassObject.class);
|
IElementType CLASS_OBJECT = JetStubElementTypes.CLASS_OBJECT;
|
||||||
IElementType ENUM_ENTRY = JetStubElementTypes.ENUM_ENTRY;
|
IElementType ENUM_ENTRY = JetStubElementTypes.ENUM_ENTRY;
|
||||||
JetNodeType ANONYMOUS_INITIALIZER = new JetNodeType("ANONYMOUS_INITIALIZER", JetClassInitializer.class);
|
JetNodeType ANONYMOUS_INITIALIZER = new JetNodeType("ANONYMOUS_INITIALIZER", JetClassInitializer.class);
|
||||||
|
|
||||||
|
|||||||
@@ -803,7 +803,7 @@ public class JetParsing extends AbstractJetParsing {
|
|||||||
* : modifiers "class" object
|
* : modifiers "class" object
|
||||||
* ;
|
* ;
|
||||||
*/
|
*/
|
||||||
private JetNodeType parseClassObject() {
|
private IElementType parseClassObject() {
|
||||||
assert _at(CLASS_KEYWORD) && lookahead(1) == OBJECT_KEYWORD;
|
assert _at(CLASS_KEYWORD) && lookahead(1) == OBJECT_KEYWORD;
|
||||||
|
|
||||||
advance(); // CLASS_KEYWORD
|
advance(); // CLASS_KEYWORD
|
||||||
|
|||||||
@@ -21,13 +21,19 @@ import com.intellij.psi.PsiElement;
|
|||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.JetNodeTypes;
|
import org.jetbrains.jet.JetNodeTypes;
|
||||||
|
import org.jetbrains.jet.lang.psi.stubs.PsiJetPlaceHolderStub;
|
||||||
|
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
public class JetClassObject extends JetDeclarationImpl implements JetStatementExpression {
|
public class JetClassObject extends JetDeclarationStub<PsiJetPlaceHolderStub<JetClassObject>> implements JetStatementExpression {
|
||||||
public JetClassObject(@NotNull ASTNode node) {
|
public JetClassObject(@NotNull ASTNode node) {
|
||||||
super(node);
|
super(node);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public JetClassObject(@NotNull PsiJetPlaceHolderStub<JetClassObject> stub) {
|
||||||
|
super(stub, JetStubElementTypes.CLASS_OBJECT);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||||
return visitor.visitClassObject(this, data);
|
return visitor.visitClassObject(this, data);
|
||||||
|
|||||||
+2
@@ -26,6 +26,8 @@ public interface JetStubElementTypes {
|
|||||||
JetPropertyElementType PROPERTY = new JetPropertyElementType("PROPERTY");
|
JetPropertyElementType PROPERTY = new JetPropertyElementType("PROPERTY");
|
||||||
JetClassElementType ENUM_ENTRY = new JetClassElementType("ENUM_ENTRY");
|
JetClassElementType ENUM_ENTRY = new JetClassElementType("ENUM_ENTRY");
|
||||||
JetObjectElementType OBJECT_DECLARATION = new JetObjectElementType("OBJECT_DECLARATION");
|
JetObjectElementType OBJECT_DECLARATION = new JetObjectElementType("OBJECT_DECLARATION");
|
||||||
|
JetPlaceHolderStubElementType<JetClassObject> CLASS_OBJECT =
|
||||||
|
new JetPlaceHolderStubElementType<JetClassObject>("CLASS_OBJECT", JetClassObject.class);
|
||||||
|
|
||||||
JetParameterElementType VALUE_PARAMETER = new JetParameterElementType("VALUE_PARAMETER");
|
JetParameterElementType VALUE_PARAMETER = new JetParameterElementType("VALUE_PARAMETER");
|
||||||
JetPlaceHolderStubElementType<JetParameterList> VALUE_PARAMETER_LIST =
|
JetPlaceHolderStubElementType<JetParameterList> VALUE_PARAMETER_LIST =
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ public class StubIndexServiceImpl implements StubIndexService {
|
|||||||
FqName fqName = stub.getFqName();
|
FqName fqName = stub.getFqName();
|
||||||
|
|
||||||
if (stub.isClassObject()) {
|
if (stub.isClassObject()) {
|
||||||
StubElement parentClassStub = stub.getParentStub().getParentStub();
|
StubElement parentClassStub = stub.getParentStub().getParentStub().getParentStub();
|
||||||
assert parentClassStub instanceof PsiJetStubWithFqName<?>
|
assert parentClassStub instanceof PsiJetStubWithFqName<?>
|
||||||
: "Something but a class/object is a parent to class object stub: " + parentClassStub;
|
: "Something but a class/object is a parent to class object stub: " + parentClassStub;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user