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