Stubs: reduce the amount of boilerplate code

Extract a common type for placeholder stub elements
This commit is contained in:
Pavel V. Talanov
2014-03-24 19:57:18 +04:00
parent 512d1c05df
commit eb27020340
53 changed files with 171 additions and 837 deletions
@@ -1,4 +1,4 @@
PsiJetFileStubImpl[package=]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
ANNOTATION_ENTRY:PsiJetAnnotationStubImpl[shortName=Deprecated]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
ANNOTATION_ENTRY:PsiJetAnnotationStubImpl[shortName=Deprecated]
VALUE_PARAMETER_LIST
@@ -1,3 +1,3 @@
PsiJetFileStubImpl[package=]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
+3 -3
View File
@@ -1,7 +1,7 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=C fqn=C superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
OBJECT_DECLARATION:PsiJetObjectStubImpl[class-object name=null fqName=null superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
FUN:PsiJetFunctionStubImpl[name=foo]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
+1 -1
View File
@@ -1,4 +1,4 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=More fqn=More superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
PROPERTY:PsiJetPropertyStubImpl[val name=test typeText=Int bodyText=11]
@@ -1,5 +1,5 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=C fqn=C superNames=[]]
TYPE_PARAMETER_LIST:PsiJetTypeParameterListStubImpl
TYPE_PARAMETER_LIST
TYPE_PARAMETER:PsiJetTypeParameterStubImpl[name=T extendText=null]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
@@ -1,5 +1,5 @@
PsiJetFileStubImpl[package=]
OBJECT_DECLARATION:PsiJetObjectStubImpl[top name=null fqName=<no name> superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
FUN:PsiJetFunctionStubImpl[name=testing]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
@@ -1,5 +1,5 @@
PsiJetFileStubImpl[package=]
FUN:PsiJetFunctionStubImpl[top fqName=some name=some]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
VALUE_PARAMETER:PsiJetParameterStubImpl[val name=t typeText=Int defaultValue=null]
VALUE_PARAMETER:PsiJetParameterStubImpl[val name=other typeText=String defaultValue="hello"]
+2 -2
View File
@@ -1,5 +1,5 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=A fqn=A superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
CLASS:PsiJetClassStubImpl[inner name=B fqn=A.B superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
+1 -1
View File
@@ -2,5 +2,5 @@ PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=A fqn=A superNames=[]]
CLASS:PsiJetClassStubImpl[trait name=T fqn=T superNames=[]]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
CLASS:PsiJetClassStubImpl[local name=Test fqn=null superNames=[AT]]
@@ -2,5 +2,5 @@ PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=A fqn=A superNames=[]]
CLASS:PsiJetClassStubImpl[trait name=T fqn=T superNames=[]]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
CLASS:PsiJetClassStubImpl[local name=Test fqn=null superNames=[AT]]
@@ -2,5 +2,5 @@ PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=A fqn=A superNames=[]]
CLASS:PsiJetClassStubImpl[trait name=T fqn=T superNames=[]]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
OBJECT_DECLARATION:PsiJetObjectStubImpl[local name=O fqName=null superNames=[AT]]
+1 -1
View File
@@ -2,4 +2,4 @@ PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=A fqn=A superNames=[]]
CLASS:PsiJetClassStubImpl[trait name=T fqn=T superNames=[]]
OBJECT_DECLARATION:PsiJetObjectStubImpl[top name=Test fqName=Test superNames=[AT]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
@@ -1,7 +1,7 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[name=Test fqn=Test superNames=[]]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
CLASS_BODY:PsiJetClassBodyStubImpl
VALUE_PARAMETER_LIST
CLASS_BODY
PROPERTY:PsiJetPropertyStubImpl[val name=test typeText=null bodyText=12]
FUN:PsiJetFunctionStubImpl[name=more]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
@@ -1,3 +1,3 @@
PsiJetFileStubImpl[package=]
FUN:PsiJetFunctionStubImpl[top fqName=some ext name=some]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
@@ -1,7 +1,7 @@
PsiJetFileStubImpl[package=test]
CLASS:PsiJetClassStubImpl[name=A fqn=test.A superNames=[]]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
VALUE_PARAMETER:PsiJetParameterStubImpl[val name=b fqName=test.A.b typeText=Int defaultValue=null]
VALUE_PARAMETER:PsiJetParameterStubImpl[var name=c fqName=test.A.c typeText=String defaultValue=null]
VALUE_PARAMETER:PsiJetParameterStubImpl[val name=justParam typeText=Int defaultValue=null]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
@@ -1,4 +1,4 @@
PsiJetFileStubImpl[package=]
FUN:PsiJetFunctionStubImpl[top fqName=foo name=foo]
ANNOTATION_ENTRY:PsiJetAnnotationStubImpl[shortName=Deprecated]
VALUE_PARAMETER_LIST:PsiJetParameterListStubImpl
VALUE_PARAMETER_LIST
+1 -1
View File
@@ -1,5 +1,5 @@
PsiJetFileStubImpl[package=]
CLASS:PsiJetClassStubImpl[enumClass name=Test fqn=Test superNames=[]]
CLASS_BODY:PsiJetClassBodyStubImpl
CLASS_BODY
ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=First fqn=Test.First superNames=[]]
ENUM_ENTRY:PsiJetClassStubImpl[enumEntry name=Second fqn=Test.Second superNames=[]]
@@ -24,6 +24,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.lang.psi.JetFile;
import org.jetbrains.jet.lang.psi.stubs.elements.JetFileStubBuilder;
import org.jetbrains.jet.lang.psi.stubs.impl.PsiJetPlaceHolderStubImpl;
import org.jetbrains.jet.lang.resolve.lazy.ResolveSessionUtils;
import java.io.File;
@@ -35,7 +36,9 @@ public abstract class AbstractStubBuilderTest extends LightCodeInsightFixtureTes
JetFile file = (JetFile) myFixture.configureByFile(sourcePath);
JetFileStubBuilder jetStubBuilder = new JetFileStubBuilder();
StubElement lighterTree = jetStubBuilder.buildStubTree(file);
String stubTree = DebugUtil.stubTreeToString(lighterTree).replace(NO_NAME_FOR_LAZY_RESOLVE.asString(), "<no name>");
String stubTree = DebugUtil.stubTreeToString(lighterTree)
.replace(NO_NAME_FOR_LAZY_RESOLVE.asString(), "<no name>")
.replace(":" + PsiJetPlaceHolderStubImpl.class.getSimpleName(), "");
String expectedFile = sourcePath.replace(".kt", ".expected");
JetTestUtils.assertEqualsToFile(new File(expectedFile), stubTree);
}