mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-03-29 15:51:41 +00:00
Compare commits
234 Commits
idea12
...
android_st
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ef3add1005 | ||
|
|
4c57aa9f23 | ||
|
|
f8a8bbe9b0 | ||
|
|
6c77ea91c5 | ||
|
|
00cbd11b84 | ||
|
|
1ab4c2763f | ||
|
|
73dd8a051a | ||
|
|
b37c57cf2b | ||
|
|
5a1f98041e | ||
|
|
aeade9e68d | ||
|
|
846ee2c8ac | ||
|
|
8b918ef1aa | ||
|
|
320c23494f | ||
|
|
0b08d03bd6 | ||
|
|
a98434263b | ||
|
|
35c7c4afd8 | ||
|
|
7bf26283b2 | ||
|
|
70374ea9be | ||
|
|
2ebe8fd6a2 | ||
|
|
4c1c9f8407 | ||
|
|
9063b3803e | ||
|
|
9832676701 | ||
|
|
791fa22abb | ||
|
|
aa713ef1f6 | ||
|
|
1c4db84d92 | ||
|
|
b51e3dc464 | ||
|
|
9d493b6f7b | ||
|
|
9ed57a5767 | ||
|
|
5ef320173c | ||
|
|
f74fbf9f8b | ||
|
|
1446feff20 | ||
|
|
cfb97bf0b9 | ||
|
|
64e13114e2 | ||
|
|
8868da8c5f | ||
|
|
e95e505b5d | ||
|
|
c5d9757b94 | ||
|
|
45abab2a2c | ||
|
|
aca21f78d5 | ||
|
|
80183c88cf | ||
|
|
eab7f5539b | ||
|
|
4a3ccc4eac | ||
|
|
4501adf5f1 | ||
|
|
e3ae7afac3 | ||
|
|
e4a0221abc | ||
|
|
cd6a71ef81 | ||
|
|
00a5e7ab15 | ||
|
|
16a2a5cd62 | ||
|
|
2fe2a50b14 | ||
|
|
18d088cb71 | ||
|
|
737f538ea7 | ||
|
|
4153182fd2 | ||
|
|
37154e42d2 | ||
|
|
40eaf49a8c | ||
|
|
0e451bd35e | ||
|
|
d549257bfc | ||
|
|
8b6bd8a184 | ||
|
|
64f67f30f0 | ||
|
|
9ce40cd17b | ||
|
|
85c46019d3 | ||
|
|
815ca2fe57 | ||
|
|
7429cc8819 | ||
|
|
420a08167b | ||
|
|
cb2733a0ae | ||
|
|
9229062926 | ||
|
|
e0ca1abe4b | ||
|
|
7b07b748cb | ||
|
|
1d884912a0 | ||
|
|
10dec22feb | ||
|
|
876040cb53 | ||
|
|
3b3f9f7022 | ||
|
|
e46c19b3f8 | ||
|
|
e36c0130a0 | ||
|
|
3ceed45c09 | ||
|
|
a7eb143cff | ||
|
|
5d4cb1e065 | ||
|
|
7f8c17d6af | ||
|
|
e9b1ae7cb1 | ||
|
|
47ed126aa4 | ||
|
|
a4436806f7 | ||
|
|
97955776c4 | ||
|
|
5a343841d9 | ||
|
|
4d287c96d6 | ||
|
|
257d13e90b | ||
|
|
f268f69cbf | ||
|
|
5c9bda0f6e | ||
|
|
ae6fdcc673 | ||
|
|
2f1b44ed9e | ||
|
|
2d50858289 | ||
|
|
39f3a6ec4c | ||
|
|
4e9187779d | ||
|
|
7a0f359aa0 | ||
|
|
46a045f969 | ||
|
|
42437eb755 | ||
|
|
4bffff43aa | ||
|
|
75dd459bdf | ||
|
|
4617e730d6 | ||
|
|
a1edc0368a | ||
|
|
31668406cd | ||
|
|
402a9f6c81 | ||
|
|
4527c56f6d | ||
|
|
392da838ca | ||
|
|
083e789692 | ||
|
|
740307e94a | ||
|
|
16f97d5c97 | ||
|
|
ee54e50138 | ||
|
|
21f56365b8 | ||
|
|
a500925945 | ||
|
|
ce7e0a7457 | ||
|
|
2d31d62163 | ||
|
|
0812dc8731 | ||
|
|
bdce3412e3 | ||
|
|
bc273ddd75 | ||
|
|
2fe5f63924 | ||
|
|
77277ce197 | ||
|
|
8dc9aecbf8 | ||
|
|
aa0dde3a78 | ||
|
|
9f918d48b5 | ||
|
|
76c722b81c | ||
|
|
e119ca27ca | ||
|
|
aed1ccf771 | ||
|
|
3d1f2c25e2 | ||
|
|
6aca05023a | ||
|
|
ab3b8d63df | ||
|
|
6c96d235ec | ||
|
|
7e1c9194f1 | ||
|
|
c6c1389144 | ||
|
|
ccaf87bc17 | ||
|
|
61153c87e0 | ||
|
|
2f55959578 | ||
|
|
41f9dcba91 | ||
|
|
f06cef684e | ||
|
|
cdc6e1b5ba | ||
|
|
8e19ba9851 | ||
|
|
b7e6717936 | ||
|
|
11c1e29287 | ||
|
|
7daf7374f8 | ||
|
|
4638806d11 | ||
|
|
30f49f3c9a | ||
|
|
e60bd514fa | ||
|
|
364182e3f0 | ||
|
|
2da51a49dc | ||
|
|
a90dbc48ef | ||
|
|
950e8d521b | ||
|
|
2ea1a89e4c | ||
|
|
c251e2dfcb | ||
|
|
2d72f60f04 | ||
|
|
60fb461842 | ||
|
|
7c1e28a748 | ||
|
|
bfbcaba0b0 | ||
|
|
a43404d7eb | ||
|
|
ac984b0566 | ||
|
|
ec4c83dc91 | ||
|
|
a4d6fd9cd5 | ||
|
|
0ee950f428 | ||
|
|
bfa2b9ba35 | ||
|
|
f526129ca4 | ||
|
|
b8ddb658fb | ||
|
|
36d5e580b4 | ||
|
|
9aac846798 | ||
|
|
45be6b081d | ||
|
|
5f71511788 | ||
|
|
540a06d45d | ||
|
|
284124569d | ||
|
|
640dac834f | ||
|
|
2b382ef719 | ||
|
|
420349bb95 | ||
|
|
d7f0e02b16 | ||
|
|
95187cd035 | ||
|
|
fbb1c2921b | ||
|
|
775baf1faf | ||
|
|
7f74ea5081 | ||
|
|
f80fa8515a | ||
|
|
e52da4fce0 | ||
|
|
a6697a52ef | ||
|
|
460babbd6f | ||
|
|
374682e404 | ||
|
|
8a1ffeea70 | ||
|
|
5c0eeb59f6 | ||
|
|
1f1da542b7 | ||
|
|
95084f9e0e | ||
|
|
0cb016b187 | ||
|
|
b8559744b0 | ||
|
|
529d7374b8 | ||
|
|
edb930fd76 | ||
|
|
ceab4347ec | ||
|
|
15a727c6ed | ||
|
|
a37f5f57e6 | ||
|
|
0374ce96b7 | ||
|
|
0af1ae360f | ||
|
|
1e9defaad3 | ||
|
|
fa552859be | ||
|
|
5d94c7e83c | ||
|
|
ca4d347658 | ||
|
|
c77a1b0fb9 | ||
|
|
1f17b55c27 | ||
|
|
25c43e7bfc | ||
|
|
9e97f9615b | ||
|
|
948827aa06 | ||
|
|
1c3c2b2f77 | ||
|
|
24c9d802c2 | ||
|
|
a993dfa177 | ||
|
|
c60523c0c6 | ||
|
|
7cf587c493 | ||
|
|
1107ae9a11 | ||
|
|
320a583de8 | ||
|
|
e28819b42e | ||
|
|
c39338798b | ||
|
|
1538191c66 | ||
|
|
4a0bfa5434 | ||
|
|
7edc4b0ff7 | ||
|
|
71d956a568 | ||
|
|
1f15e57918 | ||
|
|
1c9d614137 | ||
|
|
877d9f2220 | ||
|
|
75ab8ac5ec | ||
|
|
9b01f01e17 | ||
|
|
1832973491 | ||
|
|
eb2f3eee4d | ||
|
|
2bcedf45df | ||
|
|
9a6ac60a5f | ||
|
|
7546a6dc41 | ||
|
|
d3d2209452 | ||
|
|
7a6657d2e8 | ||
|
|
0f4994f8b0 | ||
|
|
26ecf7666d | ||
|
|
210827b1d5 | ||
|
|
d0787795b6 | ||
|
|
5378bded1e | ||
|
|
836077916b | ||
|
|
8212d591c4 | ||
|
|
abf352cebd | ||
|
|
a2a6d987a4 | ||
|
|
60694b2627 | ||
|
|
3f785bdc31 |
2
.idea/artifacts/KotlinPlugin.xml
generated
2
.idea/artifacts/KotlinPlugin.xml
generated
@@ -45,7 +45,7 @@
|
||||
<element id="module-output" name="util.runtime" />
|
||||
</element>
|
||||
</element>
|
||||
<element id="library" level="project" name="kotlin-runtime" />
|
||||
<element id="file-copy" path="$PROJECT_DIR$/dist/kotlinc/lib/kotlin-runtime.jar" />
|
||||
</element>
|
||||
<element id="directory" name="kotlinc">
|
||||
<element id="dir-copy" path="$PROJECT_DIR$/dist/kotlinc" />
|
||||
|
||||
4
.idea/codeStyleSettings.xml
generated
4
.idea/codeStyleSettings.xml
generated
@@ -246,6 +246,10 @@
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
<codeStyleSettings language="jet">
|
||||
<option name="ELSE_ON_NEW_LINE" value="true" />
|
||||
<option name="WHILE_ON_NEW_LINE" value="true" />
|
||||
<option name="CATCH_ON_NEW_LINE" value="true" />
|
||||
<option name="FINALLY_ON_NEW_LINE" value="true" />
|
||||
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
|
||||
<option name="PARENT_SETTINGS_INSTALLED" value="true" />
|
||||
</codeStyleSettings>
|
||||
|
||||
1
.idea/dictionaries/Nikolay_Krasko.xml
generated
1
.idea/dictionaries/Nikolay_Krasko.xml
generated
@@ -4,6 +4,7 @@
|
||||
<w>accessors</w>
|
||||
<w>goto</w>
|
||||
<w>kdoc</w>
|
||||
<w>memoized</w>
|
||||
<w>redeclarations</w>
|
||||
<w>subclassed</w>
|
||||
<w>subgraph</w>
|
||||
|
||||
2
.idea/dictionaries/geevee.xml
generated
2
.idea/dictionaries/geevee.xml
generated
@@ -3,6 +3,8 @@
|
||||
<words>
|
||||
<w>builtins</w>
|
||||
<w>klass</w>
|
||||
<w>protoc</w>
|
||||
<w>ubuntu</w>
|
||||
</words>
|
||||
</dictionary>
|
||||
</component>
|
||||
4
.idea/libraries/guava.xml
generated
4
.idea/libraries/guava.xml
generated
@@ -4,11 +4,11 @@
|
||||
<root url="file://$PROJECT_DIR$/annotations" />
|
||||
</ANNOTATIONS>
|
||||
<CLASSES>
|
||||
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/guava-12.0.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/guava-14.0.1.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$PROJECT_DIR$/dependencies/guava-12.0-sources.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/dependencies/guava-14.0.1-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
4
.idea/libraries/protobuf_java.xml
generated
4
.idea/libraries/protobuf_java.xml
generated
@@ -1,11 +1,11 @@
|
||||
<component name="libraryTable">
|
||||
<library name="protobuf-java">
|
||||
<CLASSES>
|
||||
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/protobuf-2.4.1.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/ideaSDK/lib/protobuf-2.5.0.jar!/" />
|
||||
</CLASSES>
|
||||
<JAVADOC />
|
||||
<SOURCES>
|
||||
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-java-2.4.1-sources.jar!/" />
|
||||
<root url="jar://$PROJECT_DIR$/dependencies/protobuf-java-2.5.0-sources.jar!/" />
|
||||
</SOURCES>
|
||||
</library>
|
||||
</component>
|
||||
17
.idea/runConfigurations/Generate_Injectors.xml
generated
Normal file
17
.idea/runConfigurations/Generate_Injectors.xml
generated
Normal file
@@ -0,0 +1,17 @@
|
||||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="Generate Injectors" type="JetRunConfigurationType" factoryName="Kotlin">
|
||||
<extension name="coverage" enabled="false" merge="false" sample_coverage="true" runner="idea" />
|
||||
<option name="MAIN_CLASS_NAME" value="org.jetbrains.jet.generators.injectors.InjectorsPackage" />
|
||||
<option name="VM_PARAMETERS" value="" />
|
||||
<option name="PROGRAM_PARAMETERS" value="" />
|
||||
<option name="WORKING_DIRECTORY" value="" />
|
||||
<option name="ALTERNATIVE_JRE_PATH_ENABLED" value="false" />
|
||||
<option name="ALTERNATIVE_JRE_PATH" />
|
||||
<option name="PASS_PARENT_ENVS" value="true" />
|
||||
<module name="generators" />
|
||||
<envs />
|
||||
<RunnerSettings RunnerId="Run" />
|
||||
<ConfigurationWrapper RunnerId="Run" />
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
||||
@@ -1,11 +0,0 @@
|
||||
<root>
|
||||
<item name='com.intellij.CommonBundle java.lang.String getNoButtonText()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.CommonBundle java.lang.String getOkButtonText()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.CommonBundle java.lang.String getYesButtonText()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -0,0 +1,118 @@
|
||||
<root>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor T collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor T collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor T collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor T collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 3'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor T extractTransferableData(java.awt.datatransfer.Transferable) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, T) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, T) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, T) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, T) 4'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPastePostProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, T) 5'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor TRef[] findReferencesToRestore(com.intellij.psi.PsiFile, com.intellij.openapi.editor.RangeMarker, com.intellij.codeInsight.editorActions.ReferenceData[])'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor TRef[] findReferencesToRestore(com.intellij.psi.PsiFile, com.intellij.openapi.editor.RangeMarker, com.intellij.codeInsight.editorActions.ReferenceData[]) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor TRef[] findReferencesToRestore(com.intellij.psi.PsiFile, com.intellij.openapi.editor.RangeMarker, com.intellij.codeInsight.editorActions.ReferenceData[]) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor TRef[] findReferencesToRestore(com.intellij.psi.PsiFile, com.intellij.openapi.editor.RangeMarker, com.intellij.codeInsight.editorActions.ReferenceData[]) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor com.intellij.codeInsight.editorActions.ReferenceTransferableData collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[])'>
|
||||
<annotation name='org.jetbrains.annotations.Nullable'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor com.intellij.codeInsight.editorActions.ReferenceTransferableData collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor com.intellij.codeInsight.editorActions.ReferenceTransferableData collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor com.intellij.codeInsight.editorActions.ReferenceTransferableData collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor com.intellij.codeInsight.editorActions.ReferenceTransferableData collectTransferableData(com.intellij.psi.PsiFile, com.intellij.openapi.editor.Editor, int[], int[]) 3'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void addReferenceData(com.intellij.psi.PsiFile, int, com.intellij.psi.PsiElement, java.util.ArrayList<com.intellij.codeInsight.editorActions.ReferenceData>) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void addReferenceData(com.intellij.psi.PsiFile, int, com.intellij.psi.PsiElement, java.util.ArrayList<com.intellij.codeInsight.editorActions.ReferenceData>) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void addReferenceData(com.intellij.psi.PsiFile, int, com.intellij.psi.PsiElement, java.util.ArrayList<com.intellij.codeInsight.editorActions.ReferenceData>) 3'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, com.intellij.codeInsight.editorActions.ReferenceTransferableData) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, com.intellij.codeInsight.editorActions.ReferenceTransferableData) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, com.intellij.codeInsight.editorActions.ReferenceTransferableData) 2'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, com.intellij.codeInsight.editorActions.ReferenceTransferableData) 4'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void processTransferableData(com.intellij.openapi.project.Project, com.intellij.openapi.editor.Editor, com.intellij.openapi.editor.RangeMarker, int, com.intellij.openapi.util.Ref<java.lang.Boolean>, com.intellij.codeInsight.editorActions.ReferenceTransferableData) 5'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void restoreReferences(com.intellij.codeInsight.editorActions.ReferenceData[], TRef[]) 0'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.codeInsight.editorActions.CopyPasteReferenceProcessor void restoreReferences(com.intellij.codeInsight.editorActions.ReferenceData[], TRef[]) 1'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -1,5 +0,0 @@
|
||||
<root>
|
||||
<item name='com.intellij.openapi.components.ComponentManager com.intellij.util.messages.MessageBus getMessageBus()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -1,4 +1,8 @@
|
||||
<root>
|
||||
<item
|
||||
name='com.intellij.openapi.util.Conditions com.intellij.openapi.util.Condition<T> or(com.intellij.openapi.util.Condition<T>, com.intellij.openapi.util.Condition<T>)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.openapi.util.Key com.intellij.openapi.util.Key<T> create(java.lang.String)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
<item name='com.intellij.psi.PsiElement com.intellij.psi.PsiElement replace(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.psi.PsiReference com.intellij.psi.PsiElement getElement()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.PsiReferenceService java.util.List<com.intellij.psi.PsiReference> getReferences(com.intellij.psi.PsiElement, com.intellij.psi.PsiReferenceService.Hints)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
|
||||
@@ -1,18 +1,47 @@
|
||||
<root>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.AllClassesSearch com.intellij.util.Query<com.intellij.psi.PsiClass> search(com.intellij.psi.search.SearchScope, com.intellij.openapi.project.Project)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ClassInheritorsSearch com.intellij.util.Query<com.intellij.psi.PsiClass> search(com.intellij.psi.PsiClass, com.intellij.psi.search.SearchScope, boolean, boolean, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ClassInheritorsSearch com.intellij.util.Query<com.intellij.psi.PsiClass> search(com.intellij.psi.search.searches.ClassInheritorsSearch.SearchParameters)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.DirectClassInheritorsSearch com.intellij.util.Query<com.intellij.psi.PsiClass> search(com.intellij.psi.PsiClass, com.intellij.psi.search.SearchScope, boolean, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.OverridingMethodsSearch com.intellij.util.Query<com.intellij.psi.PsiMethod> search(com.intellij.psi.PsiMethod)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.OverridingMethodsSearch com.intellij.util.Query<com.intellij.psi.PsiMethod> search(com.intellij.psi.PsiMethod, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.OverridingMethodsSearch com.intellij.util.Query<com.intellij.psi.PsiMethod> search(com.intellij.psi.PsiMethod, com.intellij.psi.search.SearchScope, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ReferencesSearch com.intellij.util.Query<com.intellij.psi.PsiReference> search(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun search(element: PsiElement): Query<PsiReference>""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ReferencesSearch com.intellij.util.Query<com.intellij.psi.PsiReference> search(com.intellij.psi.PsiElement, com.intellij.psi.search.SearchScope)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun search(element: PsiElement, searchScope: SearchScope): Query<PsiReference>""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ReferencesSearch com.intellij.util.Query<com.intellij.psi.PsiReference> search(com.intellij.psi.PsiElement, com.intellij.psi.search.SearchScope, boolean)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun search(element: PsiElement, searchScope: SearchScope, ignoreAccessScope: Boolean): Query<PsiReference>""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.psi.search.searches.ReferencesSearch com.intellij.util.Query<com.intellij.psi.PsiReference> search(com.intellij.psi.search.searches.ReferencesSearch.SearchParameters)'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
@@ -0,0 +1,98 @@
|
||||
<root>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.JavaSafeDeleteDelegate void createUsageInfoForParameter(com.intellij.psi.PsiReference, java.util.List<com.intellij.usageView.UsageInfo>, com.intellij.psi.PsiParameter, com.intellij.psi.PsiMethod)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun createUsageInfoForParameter(reference: PsiReference, usages: MutableList<UsageInfo>, parameter: PsiParameter, method: PsiMethod): Unit""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.JavaSafeDeleteProcessor java.util.Collection<? extends com.intellij.psi.PsiElement> getElementsToSearch(com.intellij.psi.PsiElement, com.intellij.openapi.module.Module, java.util.Collection<com.intellij.psi.PsiElement>)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun getElementsToSearch(element: PsiElement, module: Module?, allElementsToDelete: Collection<PsiElement>): Collection<out PsiElement>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate boolean handlesElement(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun handlesElement(element: PsiElement): Boolean""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate boolean isToSearchForTextOccurrences(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun isToSearchForTextOccurrences(element: PsiElement): Boolean""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate boolean isToSearchInComments(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun isToSearchInComments(element: PsiElement): Boolean""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate com.intellij.refactoring.safeDelete.NonCodeUsageSearchInfo findUsages(com.intellij.psi.PsiElement, com.intellij.psi.PsiElement[], java.util.List<com.intellij.usageView.UsageInfo>)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun findUsages(element: PsiElement, allElementsToDelete: Array<out PsiElement>, result: MutableList<UsageInfo>): NonCodeUsageSearchInfo?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate com.intellij.usageView.UsageInfo[] preprocessUsages(com.intellij.openapi.project.Project, com.intellij.usageView.UsageInfo[])'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun preprocessUsages(project: Project, usages: Array<out UsageInfo>): Array<UsageInfo>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate java.util.Collection<? extends com.intellij.psi.PsiElement> getElementsToSearch(com.intellij.psi.PsiElement, java.util.Collection<com.intellij.psi.PsiElement>)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun getElementsToSearch(element: PsiElement, allElementsToDelete: Collection<PsiElement>): Collection<out PsiElement>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate java.util.Collection<com.intellij.psi.PsiElement> getAdditionalElementsToDelete(com.intellij.psi.PsiElement, java.util.Collection<com.intellij.psi.PsiElement>, boolean)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun getAdditionalElementsToDelete(element: PsiElement, allElementsToDelete: Collection<PsiElement>, askUser: Boolean): MutableCollection<PsiElement>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate java.util.Collection<java.lang.String> findConflicts(com.intellij.psi.PsiElement, com.intellij.psi.PsiElement[])'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun findConflicts(element: PsiElement, allElementsToDelete: Array<out PsiElement>): MutableCollection<String>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate void prepareForDeletion(com.intellij.psi.PsiElement)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun prepareForDeletion(element: PsiElement): Unit""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate void setToSearchForTextOccurrences(com.intellij.psi.PsiElement, boolean)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun setToSearchForTextOccurrences(element: PsiElement, enabled: Boolean): Unit""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegate void setToSearchInComments(com.intellij.psi.PsiElement, boolean)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value" val=""fun setToSearchInComments(element: PsiElement, enabled: Boolean): Unit""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegateBase java.util.Collection<? extends com.intellij.psi.PsiElement> getElementsToSearch(com.intellij.psi.PsiElement, com.intellij.openapi.module.Module, java.util.Collection<com.intellij.psi.PsiElement>)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun getElementsToSearch(element: PsiElement, module: Module?, allElementsToDelete: Collection<PsiElement>): Collection<out PsiElement>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
<item
|
||||
name='com.intellij.refactoring.safeDelete.SafeDeleteProcessorDelegateBase java.util.Collection<? extends com.intellij.psi.PsiElement> getElementsToSearch(com.intellij.psi.PsiElement, java.util.Collection<com.intellij.psi.PsiElement>)'>
|
||||
<annotation name='jet.runtime.typeinfo.KotlinSignature'>
|
||||
<val name="value"
|
||||
val=""fun getElementsToSearch(element: PsiElement, allElementsToDelete: Collection<PsiElement>): Collection<out PsiElement>?""/>
|
||||
</annotation>
|
||||
</item>
|
||||
</root>
|
||||
@@ -0,0 +1,8 @@
|
||||
<root>
|
||||
<item name='com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteUsageInfo com.intellij.psi.PsiElement getReferencedElement()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.refactoring.safeDelete.usageInfo.SafeDeleteUsageInfo myReferencedElement'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
8
annotations/com/intellij/usageView/annotations.xml
Normal file
8
annotations/com/intellij/usageView/annotations.xml
Normal file
@@ -0,0 +1,8 @@
|
||||
<root>
|
||||
<item name='com.intellij.usageView.UsageInfo com.intellij.psi.SmartPsiElementPointer<?> getSmartPointer()'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
<item name='com.intellij.usageView.UsageInfo mySmartPointer'>
|
||||
<annotation name='org.jetbrains.annotations.NotNull'/>
|
||||
</item>
|
||||
</root>
|
||||
12
build.xml
12
build.xml
@@ -29,7 +29,7 @@
|
||||
<path id="classpath">
|
||||
<file file="${bootstrap.runtime}"/>
|
||||
<fileset dir="${idea.sdk}" includes="core/*.jar"/>
|
||||
<fileset dir="${idea.sdk}" includes="lib/protobuf-2.4.1.jar"/>
|
||||
<fileset dir="${idea.sdk}" includes="lib/protobuf-2.5.0.jar"/>
|
||||
|
||||
<fileset dir="${basedir}/lib" includes="**/*.jar"/>
|
||||
<fileset dir="${dependencies.dir}" includes="jline.jar"/>
|
||||
@@ -272,11 +272,14 @@
|
||||
|
||||
<target name="builtins">
|
||||
<cleandir dir="${output}/builtins"/>
|
||||
<java classname="org.jetbrains.jet.utils.builtinsSerializer.BuiltinsSerializerPackage">
|
||||
<java classname="org.jetbrains.jet.utils.builtinsSerializer.BuiltinsSerializerPackage" failonerror="true" fork="true">
|
||||
<classpath>
|
||||
<path refid="classpath"/>
|
||||
<pathelement location="${bootstrap.compiler.home}/lib/kotlin-compiler.jar"/>
|
||||
</classpath>
|
||||
<assertions>
|
||||
<enable/>
|
||||
</assertions>
|
||||
<arg value="${output}/builtins"/>
|
||||
<arg value="core/builtins/native"/>
|
||||
<arg value="core/builtins/src"/>
|
||||
@@ -297,7 +300,7 @@
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/core" includes="*.jar" excludes="util.jar"/>
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/lib" includes="jna-utils.jar"/>
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/lib" includes="oromatcher.jar"/>
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/lib" includes="protobuf-2.4.1.jar"/>
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/lib" includes="protobuf-2.5.0.jar"/>
|
||||
<zipgroupfileset dir="${basedir}/ideaSDK/jps" includes="jps-model.jar"/>
|
||||
<zipgroupfileset dir="${dependencies.dir}" includes="jline.jar"/>
|
||||
<zipgroupfileset dir="${dependencies.dir}" includes="cli-parser-1.1.1.jar"/>
|
||||
@@ -539,6 +542,9 @@
|
||||
<path refid="classpath"/>
|
||||
<pathelement location="${kotlin-home}/lib/kotlin-compiler.jar"/>
|
||||
</classpath>
|
||||
<assertions>
|
||||
<enable/>
|
||||
</assertions>
|
||||
<arg value="-src"/>
|
||||
<arg value="@{src}"/>
|
||||
<arg value="-output"/>
|
||||
|
||||
@@ -25,7 +25,6 @@ import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.Annotated;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationArgumentVisitor;
|
||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||
import org.jetbrains.jet.lang.evaluate.EvaluatePackage;
|
||||
import org.jetbrains.jet.lang.psi.JetAnnotationEntry;
|
||||
import org.jetbrains.jet.lang.psi.JetClass;
|
||||
import org.jetbrains.jet.lang.psi.JetModifierList;
|
||||
@@ -36,6 +35,7 @@ import org.jetbrains.jet.lang.resolve.constants.*;
|
||||
import org.jetbrains.jet.lang.resolve.constants.StringValue;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.TypeUtils;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -123,6 +123,14 @@ public abstract class AnnotationCodegen {
|
||||
private void generateNullabilityAnnotation(@Nullable JetType type, @NotNull Set<String> annotationDescriptorsAlreadyPresent) {
|
||||
if (type == null) return;
|
||||
|
||||
if (isBareTypeParameterWithNullableUpperBound(type)) {
|
||||
// This is to account for the case of, say
|
||||
// class Function<R> { fun invoke(): R }
|
||||
// it would be a shame to put @Nullable on the return type of the function, and force all callers to check for null,
|
||||
// so we put no annotations
|
||||
return;
|
||||
}
|
||||
|
||||
boolean isNullableType = CodegenUtil.isNullableType(type);
|
||||
if (!isNullableType && KotlinBuiltIns.getInstance().isPrimitiveType(type)) return;
|
||||
|
||||
@@ -134,6 +142,11 @@ public abstract class AnnotationCodegen {
|
||||
}
|
||||
}
|
||||
|
||||
private static boolean isBareTypeParameterWithNullableUpperBound(@NotNull JetType type) {
|
||||
ClassifierDescriptor classifier = type.getConstructor().getDeclarationDescriptor();
|
||||
return !type.isNullable() && classifier instanceof TypeParameterDescriptor && TypeUtils.hasNullableSuperType(type);
|
||||
}
|
||||
|
||||
private static boolean isVolatile(@NotNull AnnotationDescriptor annotationDescriptor) {
|
||||
ClassifierDescriptor classDescriptor = annotationDescriptor.getType().getConstructor().getDeclarationDescriptor();
|
||||
return KotlinBuiltIns.getInstance().getVolatileAnnotationClass().equals(classDescriptor);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -116,8 +116,7 @@ public abstract class ClassBodyCodegen extends MemberCodegen {
|
||||
genFunctionOrProperty(context, (JetTypeParameterListOwner) declaration, v);
|
||||
}
|
||||
else if (declaration instanceof JetClassOrObject) {
|
||||
if (declaration instanceof JetEnumEntry && !enumEntryNeedSubclass(
|
||||
state.getBindingContext(), (JetEnumEntry) declaration)) {
|
||||
if (declaration instanceof JetEnumEntry && !enumEntryNeedSubclass(state.getBindingContext(), (JetEnumEntry) declaration)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,6 @@ import org.jetbrains.jet.lang.evaluate.EvaluatePackage;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastReceiver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.*;
|
||||
import org.jetbrains.jet.lang.resolve.calls.util.CallMaker;
|
||||
import org.jetbrains.jet.lang.resolve.calls.util.ExpressionAsFunctionDescriptor;
|
||||
@@ -81,7 +80,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
|
||||
private static final String CLASS_NO_PATTERN_MATCHED_EXCEPTION = "jet/NoPatternMatchedException";
|
||||
private static final String CLASS_TYPE_CAST_EXCEPTION = "jet/TypeCastException";
|
||||
public static final Set<DeclarationDescriptor> INTEGRAL_RANGES = KotlinBuiltIns.getInstance().getIntegralRanges();
|
||||
private static final Set<DeclarationDescriptor> INTEGRAL_RANGES = KotlinBuiltIns.getInstance().getIntegralRanges();
|
||||
|
||||
private int myLastLineNumber = -1;
|
||||
|
||||
@@ -294,7 +293,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
|
||||
@Override
|
||||
public StackValue visitSuperExpression(@NotNull JetSuperExpression expression, StackValue data) {
|
||||
return StackValue.thisOrOuter(this, getSuperCallLabelTarget(expression), true);
|
||||
return StackValue.thisOrOuter(this, getSuperCallLabelTarget(expression), true, true);
|
||||
}
|
||||
|
||||
private ClassDescriptor getSuperCallLabelTarget(JetSuperExpression expression) {
|
||||
@@ -1528,6 +1527,15 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
}
|
||||
}
|
||||
|
||||
private boolean hasFinallyBLocks() {
|
||||
for (BlockStackElement element : blockStackElements) {
|
||||
if (element instanceof FinallyBlockStackElement) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void genFinallyBlockOrGoto(
|
||||
@Nullable FinallyBlockStackElement finallyBlockStackElement,
|
||||
@Nullable Label tryCatchBlockEnd
|
||||
@@ -1566,7 +1574,14 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
JetExpression returnedExpression = expression.getReturnedExpression();
|
||||
if (returnedExpression != null) {
|
||||
gen(returnedExpression, returnType);
|
||||
doFinallyOnReturn();
|
||||
boolean hasFinallyBLocks = hasFinallyBLocks();
|
||||
if (hasFinallyBLocks) {
|
||||
int returnValIndex = myFrameMap.enterTemp(returnType);
|
||||
StackValue.local(returnValIndex, returnType).store(returnType, v);
|
||||
doFinallyOnReturn();
|
||||
StackValue.local(returnValIndex, returnType).put(returnType, v);
|
||||
myFrameMap.leaveTemp(returnType);
|
||||
}
|
||||
v.areturn(returnType);
|
||||
}
|
||||
else {
|
||||
@@ -1705,7 +1720,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
Type scriptClassType = asmTypeForScriptDescriptor(bindingContext, scriptDescriptor);
|
||||
ValueParameterDescriptor valueParameterDescriptor = (ValueParameterDescriptor) descriptor;
|
||||
ClassDescriptor scriptClass = bindingContext.get(CLASS_FOR_SCRIPT, scriptDescriptor);
|
||||
StackValue script = StackValue.thisOrOuter(this, scriptClass, false);
|
||||
StackValue script = StackValue.thisOrOuter(this, scriptClass, false, false);
|
||||
script.put(script.type, v);
|
||||
Type fieldType = typeMapper.mapType(valueParameterDescriptor);
|
||||
return StackValue.field(fieldType, scriptClassType, valueParameterDescriptor.getName().getIdentifier(), false);
|
||||
@@ -2137,7 +2152,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
StackValue.onStack(exprType).put(type, v);
|
||||
}
|
||||
else {
|
||||
StackValue.thisOrOuter(this, classReceiverDeclarationDescriptor, false).put(type, v);
|
||||
StackValue.thisOrOuter(this, classReceiverDeclarationDescriptor, false, false).put(type, v);
|
||||
}
|
||||
}
|
||||
else if (descriptor instanceof ScriptReceiver) {
|
||||
@@ -2152,12 +2167,6 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
JetExpression expr = expressionReceiver.getExpression();
|
||||
gen(expr, type);
|
||||
}
|
||||
else if (descriptor instanceof AutoCastReceiver) {
|
||||
AutoCastReceiver autoCastReceiver = (AutoCastReceiver) descriptor;
|
||||
Type originalType = asmType(autoCastReceiver.getOriginal().getType());
|
||||
generateFromResolvedCall(autoCastReceiver.getOriginal(), originalType);
|
||||
StackValue.onStack(originalType).put(type, v);
|
||||
}
|
||||
else {
|
||||
throw new UnsupportedOperationException("Unsupported receiver type: " + descriptor);
|
||||
}
|
||||
@@ -2656,7 +2665,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
return generateElvis(expression);
|
||||
}
|
||||
else if (opToken == JetTokens.IN_KEYWORD || opToken == JetTokens.NOT_IN) {
|
||||
return generateIn(expression);
|
||||
return generateIn(StackValue.expression(Type.INT_TYPE, expression.getLeft(), this), expression.getRight(), reference);
|
||||
}
|
||||
else {
|
||||
ResolvedCall<? extends CallableDescriptor> resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, reference);
|
||||
@@ -2678,23 +2687,21 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
}
|
||||
}
|
||||
|
||||
private StackValue generateIn(JetBinaryExpression expression) {
|
||||
boolean inverted = expression.getOperationReference().getReferencedNameElementType() == JetTokens.NOT_IN;
|
||||
if (isIntRangeExpr(expression.getRight())) {
|
||||
StackValue leftValue = StackValue.expression(Type.INT_TYPE, expression.getLeft(), this);
|
||||
JetBinaryExpression rangeExpression = (JetBinaryExpression) expression.getRight();
|
||||
getInIntRange(leftValue, rangeExpression, inverted);
|
||||
private StackValue generateIn(StackValue leftValue, JetExpression rangeExpression, JetSimpleNameExpression operationReference) {
|
||||
JetExpression deparenthesized = JetPsiUtil.deparenthesize(rangeExpression);
|
||||
if (isIntRangeExpr(deparenthesized)) {
|
||||
genInIntRange(leftValue, (JetBinaryExpression) deparenthesized);
|
||||
}
|
||||
else {
|
||||
invokeFunctionByReference(expression.getOperationReference());
|
||||
if (inverted) {
|
||||
genInvertBoolean(v);
|
||||
}
|
||||
invokeFunctionByReference(operationReference);
|
||||
}
|
||||
if (operationReference.getReferencedNameElementType() == JetTokens.NOT_IN) {
|
||||
genInvertBoolean(v);
|
||||
}
|
||||
return StackValue.onStack(Type.BOOLEAN_TYPE);
|
||||
}
|
||||
|
||||
private void getInIntRange(StackValue leftValue, JetBinaryExpression rangeExpression, boolean inverted) {
|
||||
private void genInIntRange(StackValue leftValue, JetBinaryExpression rangeExpression) {
|
||||
v.iconst(1);
|
||||
// 1
|
||||
leftValue.put(Type.INT_TYPE, v);
|
||||
@@ -2728,9 +2735,6 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
// c c
|
||||
|
||||
v.and(Type.INT_TYPE);
|
||||
if (inverted) {
|
||||
genInvertBoolean(v);
|
||||
}
|
||||
}
|
||||
|
||||
private StackValue generateBooleanAnd(JetBinaryExpression expression) {
|
||||
@@ -3414,7 +3418,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> implem
|
||||
public StackValue visitThisExpression(@NotNull JetThisExpression expression, StackValue receiver) {
|
||||
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, expression.getInstanceReference());
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
return StackValue.thisOrOuter(this, (ClassDescriptor) descriptor, false);
|
||||
return StackValue.thisOrOuter(this, (ClassDescriptor) descriptor, false, true);
|
||||
}
|
||||
else {
|
||||
if (descriptor instanceof CallableDescriptor) {
|
||||
@@ -3746,27 +3750,9 @@ The "returned" value of try expression with no finally is either the last expres
|
||||
private StackValue generateWhenCondition(Type subjectType, int subjectLocal, JetWhenCondition condition) {
|
||||
if (condition instanceof JetWhenConditionInRange) {
|
||||
JetWhenConditionInRange conditionInRange = (JetWhenConditionInRange) condition;
|
||||
JetExpression rangeExpression = conditionInRange.getRangeExpression();
|
||||
while (rangeExpression instanceof JetParenthesizedExpression) {
|
||||
rangeExpression = ((JetParenthesizedExpression) rangeExpression).getExpression();
|
||||
}
|
||||
JetSimpleNameExpression operationReference = conditionInRange.getOperationReference();
|
||||
boolean inverted = operationReference.getReferencedNameElementType() == JetTokens.NOT_IN;
|
||||
if (isIntRangeExpr(rangeExpression)) {
|
||||
getInIntRange(new StackValue.Local(subjectLocal, subjectType), (JetBinaryExpression) rangeExpression, inverted);
|
||||
}
|
||||
else {
|
||||
//FunctionDescriptor op =
|
||||
// (FunctionDescriptor) bindingContext.get(BindingContext.REFERENCE_TARGET, conditionInRange.getOperationReference());
|
||||
//genToJVMStack(rangeExpression);
|
||||
//new StackValue.Local(subjectLocal, subjectType).put(OBJECT_TYPE, v);
|
||||
//invokeFunctionNoParams(op, Type.BOOLEAN_TYPE, v);
|
||||
invokeFunctionByReference(operationReference);
|
||||
if (inverted) {
|
||||
genInvertBoolean(v);
|
||||
}
|
||||
}
|
||||
return StackValue.onStack(Type.BOOLEAN_TYPE);
|
||||
return generateIn(StackValue.local(subjectLocal, subjectType),
|
||||
conditionInRange.getRangeExpression(),
|
||||
conditionInRange.getOperationReference());
|
||||
}
|
||||
StackValue.Local match = subjectLocal == -1 ? null : StackValue.local(subjectLocal, subjectType);
|
||||
if (condition instanceof JetWhenConditionIsPattern) {
|
||||
|
||||
@@ -145,7 +145,7 @@ public class FunctionCodegen extends ParentCodegenAwareImpl {
|
||||
|
||||
generateBridgeIfNeeded(owner, state, v, functionDescriptor);
|
||||
|
||||
methodContext.recordSyntheticAccessorIfNeeded(functionDescriptor, typeMapper);
|
||||
methodContext.recordSyntheticAccessorIfNeeded(functionDescriptor, bindingContext);
|
||||
}
|
||||
|
||||
private void generateParameterAnnotations(
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -41,7 +41,6 @@ import org.jetbrains.jet.descriptors.serialization.ClassData;
|
||||
import org.jetbrains.jet.descriptors.serialization.DescriptorSerializer;
|
||||
import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.MutableClassDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
|
||||
@@ -53,6 +52,7 @@ import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAnnotationNames;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.types.*;
|
||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||
@@ -349,21 +349,40 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
}
|
||||
sw.writeSuperclassEnd();
|
||||
|
||||
LinkedHashSet<String> superInterfaces = new LinkedHashSet<String>();
|
||||
superInterfaces.add(JvmAbi.JET_OBJECT.getInternalName());
|
||||
List<JetType> interfaceSupertypes = Lists.newArrayList();
|
||||
FqNameUnsafe jetObjectFqName = JvmAbi.JET_OBJECT.getFqNameForClassNameWithoutDollars().toUnsafe();
|
||||
boolean explicitJetObject = false;
|
||||
|
||||
for (JetDelegationSpecifier specifier : myClass.getDelegationSpecifiers()) {
|
||||
JetType superType = bindingContext.get(BindingContext.TYPE, specifier.getTypeReference());
|
||||
assert superType != null : "No supertype for class: " + myClass.getText();
|
||||
ClassDescriptor superClassDescriptor = (ClassDescriptor) superType.getConstructor().getDeclarationDescriptor();
|
||||
if (isInterface(superClassDescriptor)) {
|
||||
sw.writeInterface();
|
||||
Type jvmName = typeMapper.mapSupertype(superType, sw);
|
||||
sw.writeInterfaceEnd();
|
||||
superInterfaces.add(jvmName.getInternalName());
|
||||
interfaceSupertypes.add(superType);
|
||||
|
||||
assert superClassDescriptor != null : "should be already checked by isInterface()";
|
||||
if (jetObjectFqName.equals(DescriptorUtils.getFqName(superClassDescriptor))) {
|
||||
explicitJetObject = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LinkedHashSet<String> superInterfaces = new LinkedHashSet<String>();
|
||||
if (!explicitJetObject) {
|
||||
sw.writeInterface();
|
||||
sw.writeClassBegin(Type.getObjectType(JvmAbi.JET_OBJECT.getInternalName()));
|
||||
sw.writeClassEnd();
|
||||
sw.writeInterfaceEnd();
|
||||
superInterfaces.add(JvmAbi.JET_OBJECT.getInternalName());
|
||||
}
|
||||
|
||||
for (JetType supertype : interfaceSupertypes) {
|
||||
sw.writeInterface();
|
||||
Type jvmName = typeMapper.mapSupertype(supertype, sw);
|
||||
sw.writeInterfaceEnd();
|
||||
superInterfaces.add(jvmName.getInternalName());
|
||||
}
|
||||
|
||||
return new JvmClassSignature(classAsmType.getInternalName(), superClassAsmType.getInternalName(),
|
||||
new ArrayList<String>(superInterfaces),
|
||||
sw.makeJavaGenericSignature());
|
||||
@@ -386,7 +405,9 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
for (JetDelegationSpecifier specifier : delegationSpecifiers) {
|
||||
if (specifier instanceof JetDelegatorToSuperClass || specifier instanceof JetDelegatorToSuperCall) {
|
||||
JetType superType = bindingContext.get(BindingContext.TYPE, specifier.getTypeReference());
|
||||
assert superType != null;
|
||||
assert superType != null :
|
||||
String.format("No type recorded for \n---\n%s\n---\n", JetPsiUtil.getElementTextWithContext(specifier));
|
||||
|
||||
ClassDescriptor superClassDescriptor = (ClassDescriptor) superType.getConstructor().getDeclarationDescriptor();
|
||||
assert superClassDescriptor != null;
|
||||
if (!isInterface(superClassDescriptor)) {
|
||||
@@ -1136,7 +1157,7 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
FunctionCodegen.generateConstructorWithoutParametersIfNeeded(state, callableMethod, constructorDescriptor, v);
|
||||
|
||||
if (isClassObject(descriptor)) {
|
||||
context.recordSyntheticAccessorIfNeeded(constructorDescriptor, typeMapper);
|
||||
context.recordSyntheticAccessorIfNeeded(constructorDescriptor, bindingContext);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1304,27 +1325,24 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
@Override
|
||||
public void visitSimpleNameExpression(@NotNull JetSimpleNameExpression expr) {
|
||||
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, expr);
|
||||
if (descriptor instanceof VariableDescriptor && !(descriptor instanceof PropertyDescriptor)) {
|
||||
|
||||
DeclarationDescriptor toLookup;
|
||||
if (isLocalNamedFun(descriptor)) {
|
||||
toLookup = descriptor;
|
||||
}
|
||||
else if (descriptor instanceof CallableMemberDescriptor) {
|
||||
toLookup = descriptor.getContainingDeclaration();
|
||||
}
|
||||
else if (descriptor instanceof VariableDescriptor) {
|
||||
ConstructorDescriptor constructorDescriptor = (ConstructorDescriptor) constructorContext.getContextDescriptor();
|
||||
for (ValueParameterDescriptor parameterDescriptor : constructorDescriptor.getValueParameters()) {
|
||||
//noinspection ConstantConditions
|
||||
if (descriptor.equals(parameterDescriptor)) {
|
||||
return;
|
||||
}
|
||||
if (descriptor.equals(parameterDescriptor)) return;
|
||||
}
|
||||
constructorContext.lookupInContext(descriptor, null, state, true);
|
||||
} else if (isLocalNamedFun(descriptor)) {
|
||||
assert descriptor != null;
|
||||
MutableClassDescriptor classDescriptor =
|
||||
(MutableClassDescriptor) constructorContext.getParentContext().getContextDescriptor();
|
||||
|
||||
for (CallableMemberDescriptor memberDescriptor : classDescriptor.getAllCallableMembers()) {
|
||||
if (descriptor.equals(memberDescriptor)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
constructorContext.lookupInContext(descriptor, null, state, true);
|
||||
toLookup = descriptor;
|
||||
}
|
||||
else return;
|
||||
|
||||
constructorContext.lookupInContext(toLookup, null, state, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -101,7 +101,7 @@ public class PropertyCodegen extends GenerationStateAware {
|
||||
generateGetter(p, propertyDescriptor, p.getGetter());
|
||||
generateSetter(p, propertyDescriptor, p.getSetter());
|
||||
|
||||
context.recordSyntheticAccessorIfNeeded(propertyDescriptor, typeMapper);
|
||||
context.recordSyntheticAccessorIfNeeded(propertyDescriptor, bindingContext);
|
||||
}
|
||||
|
||||
public void generatePrimaryConstructorProperty(JetParameter p, PropertyDescriptor descriptor) {
|
||||
|
||||
@@ -309,10 +309,11 @@ public abstract class StackValue {
|
||||
return new Composed(prefix, suffix);
|
||||
}
|
||||
|
||||
public static StackValue thisOrOuter(ExpressionCodegen codegen, ClassDescriptor descriptor, boolean isSuper) {
|
||||
// Coerce this/super for traits to support traits with required classes
|
||||
// Do not coerce for other classes due to the 'protected' access issues (JVMS 7, 4.9.2 Structural Constraints)
|
||||
boolean coerceType = descriptor.getKind() == ClassKind.TRAIT;
|
||||
public static StackValue thisOrOuter(ExpressionCodegen codegen, ClassDescriptor descriptor, boolean isSuper, boolean isExplicit) {
|
||||
// Coerce this/super for traits to support traits with required classes.
|
||||
// Coerce explicit 'this' for the case when it is smartcasted.
|
||||
// Do not coerce for other classes due to the 'protected' access issues (JVMS 7, 4.9.2 Structural Constraints).
|
||||
boolean coerceType = descriptor.getKind() == ClassKind.TRAIT || (isExplicit && !isSuper);
|
||||
return new ThisOuter(codegen, descriptor, isSuper, coerceType);
|
||||
}
|
||||
|
||||
@@ -366,7 +367,7 @@ public abstract class StackValue {
|
||||
public static class Local extends StackValue {
|
||||
final int index;
|
||||
|
||||
public Local(int index, Type type) {
|
||||
private Local(int index, Type type) {
|
||||
super(type);
|
||||
this.index = index;
|
||||
|
||||
|
||||
@@ -154,7 +154,8 @@ class CodegenAnnotatingVisitor extends JetVisitorVoid {
|
||||
@Override
|
||||
public void visitEnumEntry(@NotNull JetEnumEntry enumEntry) {
|
||||
ClassDescriptor descriptor = bindingContext.get(CLASS, enumEntry);
|
||||
assert descriptor != null;
|
||||
assert descriptor != null :
|
||||
String.format("No descriptor for enum entry \n---\n%s\n---\n", JetPsiUtil.getElementTextWithContext(enumEntry));
|
||||
|
||||
boolean trivial = enumEntry.getDeclarations().isEmpty();
|
||||
if (!trivial) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -324,10 +324,7 @@ public class CodegenBinding {
|
||||
return closure != null && closure.getCaptureThis() != null;
|
||||
}
|
||||
|
||||
private static JetDelegatorToSuperCall findSuperCall(
|
||||
BindingContext bindingContext,
|
||||
JetElement classOrObject
|
||||
) {
|
||||
private static JetDelegatorToSuperCall findSuperCall(BindingContext bindingContext, JetElement classOrObject) {
|
||||
if (!(classOrObject instanceof JetClassOrObject)) {
|
||||
return null;
|
||||
}
|
||||
@@ -335,6 +332,7 @@ public class CodegenBinding {
|
||||
if (classOrObject instanceof JetClass && ((JetClass) classOrObject).isTrait()) {
|
||||
return null;
|
||||
}
|
||||
|
||||
for (JetDelegationSpecifier specifier : ((JetClassOrObject) classOrObject).getDelegationSpecifiers()) {
|
||||
if (specifier instanceof JetDelegatorToSuperCall) {
|
||||
JetTypeReference typeReference = specifier.getTypeReference();
|
||||
|
||||
@@ -61,7 +61,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
|
||||
public final MutableClosure closure;
|
||||
|
||||
private HashMap<DeclarationDescriptor, DeclarationDescriptor> accessors;
|
||||
private Map<DeclarationDescriptor, DeclarationDescriptor> accessors;
|
||||
|
||||
private Map<DeclarationDescriptor, CodegenContext> childContexts;
|
||||
|
||||
@@ -134,14 +134,15 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
|
||||
private StackValue getOuterExpression(@Nullable StackValue prefix, boolean ignoreNoOuter, boolean captureThis) {
|
||||
if (lazyOuterExpression == null || lazyOuterExpression.invoke() == null) {
|
||||
if (ignoreNoOuter) {
|
||||
return null;
|
||||
}
|
||||
else {
|
||||
throw new UnsupportedOperationException();
|
||||
if (!ignoreNoOuter) {
|
||||
throw new UnsupportedOperationException("Don't know how to generate outer expression for " + getContextDescriptor());
|
||||
}
|
||||
return null;
|
||||
}
|
||||
if (captureThis) {
|
||||
if (closure == null) {
|
||||
throw new IllegalStateException("Can't capture this for context without closure: " + getContextDescriptor());
|
||||
}
|
||||
closure.setCaptureThis();
|
||||
}
|
||||
return prefix != null ? StackValue.composed(prefix, lazyOuterExpression.invoke()) : lazyOuterExpression.invoke();
|
||||
@@ -173,18 +174,13 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public ClassContext intoAnonymousClass(
|
||||
@NotNull ClassDescriptor descriptor,
|
||||
@NotNull ExpressionCodegen expressionCodegen
|
||||
) {
|
||||
JetTypeMapper typeMapper = expressionCodegen.getState().getTypeMapper();
|
||||
return new AnonymousClassContext(typeMapper, descriptor, OwnerKind.IMPLEMENTATION, this,
|
||||
expressionCodegen);
|
||||
public ClassContext intoAnonymousClass(@NotNull ClassDescriptor descriptor, @NotNull ExpressionCodegen codegen) {
|
||||
return new AnonymousClassContext(codegen.getState().getTypeMapper(), descriptor, OwnerKind.IMPLEMENTATION, this, codegen);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MethodContext intoFunction(FunctionDescriptor descriptor) {
|
||||
return new MethodContext(descriptor, getContextKind(), this);
|
||||
return new MethodContext(descriptor, getContextKind(), this, null);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -212,7 +208,8 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
return new ClosureContext(typeMapper, funDescriptor, classDescriptor, this, localLookup);
|
||||
}
|
||||
|
||||
public FrameMap prepareFrame(JetTypeMapper mapper) {
|
||||
@NotNull
|
||||
public FrameMap prepareFrame(@NotNull JetTypeMapper typeMapper) {
|
||||
FrameMap frameMap = new FrameMap();
|
||||
|
||||
if (getContextKind() != OwnerKind.PACKAGE) {
|
||||
@@ -221,7 +218,8 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
|
||||
CallableDescriptor receiverDescriptor = getCallableDescriptorWithReceiver();
|
||||
if (receiverDescriptor != null) {
|
||||
Type type = mapper.mapType(receiverDescriptor.getReceiverParameter().getType());
|
||||
//noinspection ConstantConditions
|
||||
Type type = typeMapper.mapType(receiverDescriptor.getReceiverParameter().getType());
|
||||
frameMap.enterTemp(type); // Next slot for receiver
|
||||
}
|
||||
|
||||
@@ -323,7 +321,7 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
}
|
||||
|
||||
for (LocalLookup.LocalLookupCase aCase : LocalLookup.LocalLookupCase.values()) {
|
||||
if (aCase.isCase(d, state)) {
|
||||
if (aCase.isCase(d)) {
|
||||
Type classType = state.getBindingContext().get(ASM_TYPE, getThisDescriptor());
|
||||
StackValue innerValue = aCase.innerValue(d, enclosingLocalLookup, state, closure, classType);
|
||||
if (innerValue == null) {
|
||||
@@ -367,27 +365,26 @@ public abstract class CodegenContext<T extends DeclarationDescriptor> {
|
||||
return (FunctionDescriptor) accessibleDescriptorIfNeeded(fd, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public void recordSyntheticAccessorIfNeeded(@NotNull FunctionDescriptor fd, @NotNull JetTypeMapper typeMapper) {
|
||||
if (fd instanceof ConstructorDescriptor || needSyntheticAccessorInBindingTrace(fd, typeMapper)) {
|
||||
public void recordSyntheticAccessorIfNeeded(@NotNull FunctionDescriptor fd, @NotNull BindingContext bindingContext) {
|
||||
if (fd instanceof ConstructorDescriptor || needSyntheticAccessorInBindingTrace(fd, bindingContext)) {
|
||||
accessibleDescriptorIfNeeded(fd, false);
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public void recordSyntheticAccessorIfNeeded(PropertyDescriptor propertyDescriptor, JetTypeMapper typeMapper) {
|
||||
public void recordSyntheticAccessorIfNeeded(@NotNull PropertyDescriptor propertyDescriptor, @NotNull BindingContext typeMapper) {
|
||||
if (needSyntheticAccessorInBindingTrace(propertyDescriptor, typeMapper)) {
|
||||
accessibleDescriptorIfNeeded(propertyDescriptor, false);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean needSyntheticAccessorInBindingTrace(@NotNull CallableMemberDescriptor descriptor, @NotNull JetTypeMapper typeMapper) {
|
||||
Boolean result = typeMapper.getBindingContext().get(BindingContext.NEED_SYNTHETIC_ACCESSOR, descriptor);
|
||||
return result == null ? false : result.booleanValue();
|
||||
private static boolean needSyntheticAccessorInBindingTrace(
|
||||
@NotNull CallableMemberDescriptor descriptor,
|
||||
@NotNull BindingContext bindingContext
|
||||
) {
|
||||
return Boolean.TRUE.equals(bindingContext.get(BindingContext.NEED_SYNTHETIC_ACCESSOR, descriptor));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private int getAccessFlags(CallableMemberDescriptor descriptor) {
|
||||
private static int getAccessFlags(@NotNull CallableMemberDescriptor descriptor) {
|
||||
int flag = getVisibilityAccessFlag(descriptor);
|
||||
if (descriptor instanceof PropertyDescriptor) {
|
||||
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) descriptor;
|
||||
|
||||
@@ -26,7 +26,7 @@ import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
||||
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
|
||||
|
||||
public class ConstructorContext extends MethodContext {
|
||||
private static final StackValue local1 = StackValue.local(1, OBJECT_TYPE);
|
||||
private static final StackValue LOCAL_1 = StackValue.local(1, OBJECT_TYPE);
|
||||
|
||||
public ConstructorContext(
|
||||
@NotNull ConstructorDescriptor contextDescriptor,
|
||||
@@ -39,16 +39,16 @@ public class ConstructorContext extends MethodContext {
|
||||
|
||||
@Override
|
||||
public StackValue getOuterExpression(StackValue prefix, boolean ignoreNoOuter) {
|
||||
StackValue stackValue = closure != null && closure.getCaptureThis() != null ? local1 : null;
|
||||
StackValue stackValue = closure != null && closure.getCaptureThis() != null ? LOCAL_1 : null;
|
||||
if (!ignoreNoOuter && stackValue == null) {
|
||||
throw new UnsupportedOperationException("Don't know how to generate outer expression for " + getContextDescriptor().getContainingDeclaration());
|
||||
throw new UnsupportedOperationException("Don't know how to generate outer expression for " + getContextDescriptor());
|
||||
}
|
||||
return stackValue;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Constructor: " + getContextDescriptor().getName();
|
||||
return "Constructor: " + getContextDescriptor();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -48,7 +48,7 @@ public final class EnclosedValueDescriptor {
|
||||
public StackValue getOuterValue(ExpressionCodegen expressionCodegen) {
|
||||
GenerationState state = expressionCodegen.getState();
|
||||
for (LocalLookup.LocalLookupCase aCase : LocalLookup.LocalLookupCase.values()) {
|
||||
if (aCase.isCase(descriptor, state)) {
|
||||
if (aCase.isCase(descriptor)) {
|
||||
return aCase.outerValue(this, expressionCodegen);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,8 @@ public interface LocalLookup {
|
||||
enum LocalLookupCase {
|
||||
VAR {
|
||||
@Override
|
||||
public boolean isCase(DeclarationDescriptor d, GenerationState state) {
|
||||
return (d instanceof VariableDescriptor) && !(d instanceof PropertyDescriptor);
|
||||
public boolean isCase(DeclarationDescriptor d) {
|
||||
return d instanceof VariableDescriptor && !(d instanceof PropertyDescriptor);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -69,7 +69,7 @@ public interface LocalLookup {
|
||||
|
||||
LOCAL_NAMED_FUNCTION {
|
||||
@Override
|
||||
public boolean isCase(DeclarationDescriptor d, GenerationState state) {
|
||||
public boolean isCase(DeclarationDescriptor d) {
|
||||
return isLocalNamedFun(d);
|
||||
}
|
||||
|
||||
@@ -100,7 +100,7 @@ public interface LocalLookup {
|
||||
|
||||
RECEIVER {
|
||||
@Override
|
||||
public boolean isCase(DeclarationDescriptor d, GenerationState state) {
|
||||
public boolean isCase(DeclarationDescriptor d) {
|
||||
return d instanceof CallableDescriptor;
|
||||
}
|
||||
|
||||
@@ -129,7 +129,7 @@ public interface LocalLookup {
|
||||
}
|
||||
};
|
||||
|
||||
public abstract boolean isCase(DeclarationDescriptor d, GenerationState state);
|
||||
public abstract boolean isCase(DeclarationDescriptor d);
|
||||
|
||||
public abstract StackValue innerValue(
|
||||
DeclarationDescriptor d,
|
||||
|
||||
@@ -19,37 +19,29 @@ package org.jetbrains.jet.codegen.context;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.asm4.Label;
|
||||
import org.jetbrains.jet.codegen.binding.MutableClosure;
|
||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||
import org.jetbrains.jet.codegen.OwnerKind;
|
||||
import org.jetbrains.jet.codegen.StackValue;
|
||||
import org.jetbrains.jet.codegen.binding.MutableClosure;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PropertyAccessorDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||
|
||||
public class MethodContext extends CodegenContext {
|
||||
public class MethodContext extends CodegenContext<CallableMemberDescriptor> {
|
||||
|
||||
private Label methodStartLabel;
|
||||
|
||||
public MethodContext(
|
||||
@NotNull FunctionDescriptor contextType,
|
||||
@NotNull OwnerKind contextKind,
|
||||
@NotNull CodegenContext parentContext
|
||||
) {
|
||||
this(contextType, contextKind, parentContext, null);
|
||||
}
|
||||
|
||||
protected MethodContext(
|
||||
@NotNull FunctionDescriptor contextType,
|
||||
@NotNull FunctionDescriptor contextDescriptor,
|
||||
@NotNull OwnerKind contextKind,
|
||||
@NotNull CodegenContext parentContext,
|
||||
@Nullable MutableClosure closure
|
||||
) {
|
||||
super(contextType instanceof PropertyAccessorDescriptor
|
||||
? ((PropertyAccessorDescriptor) contextType).getCorrespondingProperty()
|
||||
: contextType, contextKind, parentContext, closure,
|
||||
super(contextDescriptor instanceof PropertyAccessorDescriptor
|
||||
? ((PropertyAccessorDescriptor) contextDescriptor).getCorrespondingProperty()
|
||||
: contextDescriptor, contextKind, parentContext, closure,
|
||||
parentContext.hasThisDescriptor() ? parentContext.getThisDescriptor() : null, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -19,10 +19,12 @@ package org.jetbrains.jet.codegen.state;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.codegen.*;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactory;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderMode;
|
||||
import org.jetbrains.jet.codegen.ClassFileFactory;
|
||||
import org.jetbrains.jet.codegen.SamWrapperClasses;
|
||||
import org.jetbrains.jet.codegen.binding.CodegenBinding;
|
||||
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
|
||||
import org.jetbrains.jet.di.InjectorForJvmCodegen;
|
||||
import org.jetbrains.jet.lang.descriptors.ScriptDescriptor;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
@@ -107,10 +109,10 @@ public class GenerationState {
|
||||
|
||||
this.typeMapper = new JetTypeMapper(bindingTrace, classBuilderMode);
|
||||
|
||||
InjectorForJvmCodegen injector = new InjectorForJvmCodegen(typeMapper, this, builderFactory, project);
|
||||
|
||||
this.intrinsics = injector.getIntrinsics();
|
||||
this.classFileFactory = injector.getClassFileFactory();
|
||||
this.intrinsics = new IntrinsicMethods();
|
||||
this.classFileFactory = new ClassFileFactory(this);
|
||||
this.classFileFactory.setBuilderFactory(builderFactory);
|
||||
this.intrinsics.init();
|
||||
|
||||
this.generateNotNullAssertions = generateNotNullAssertions;
|
||||
this.generateNotNullParamAssertions = generateNotNullParamAssertions;
|
||||
|
||||
@@ -40,7 +40,8 @@ import org.jetbrains.jet.lang.resolve.calls.util.ExpressionAsFunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.AsmTypeConstants;
|
||||
import org.jetbrains.jet.lang.resolve.java.JvmAbi;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.descriptor.JavaClassStaticsPackageFragmentDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.java.mapping.KotlinToJavaTypesMap;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.lang.types.*;
|
||||
@@ -58,7 +59,6 @@ import static org.jetbrains.jet.codegen.binding.CodegenBinding.*;
|
||||
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isAnnotationClass;
|
||||
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.isAnonymousObject;
|
||||
import static org.jetbrains.jet.lang.resolve.java.AsmTypeConstants.OBJECT_TYPE;
|
||||
import static org.jetbrains.jet.lang.resolve.java.descriptor.JavaPackageFragmentDescriptor.Kind.CLASS_STATICS;
|
||||
|
||||
public class JetTypeMapper extends BindingTraceAware {
|
||||
|
||||
@@ -122,14 +122,9 @@ public class JetTypeMapper extends BindingTraceAware {
|
||||
@NotNull DeclarationDescriptor descriptor,
|
||||
boolean insideModule
|
||||
) {
|
||||
if (packageFragment instanceof JavaPackageFragmentDescriptor) {
|
||||
JavaPackageFragmentDescriptor javaPackageFragment = (JavaPackageFragmentDescriptor) packageFragment;
|
||||
if (javaPackageFragment.getKind() == CLASS_STATICS) {
|
||||
ClassDescriptor classDescriptor =
|
||||
javaPackageFragment.getJavaDescriptorResolver().resolveClass(javaPackageFragment.getFqName());
|
||||
assert classDescriptor != null : "Class not found while a package fragment exists: " + packageFragment;
|
||||
return mapType(classDescriptor.getDefaultType()).getInternalName();
|
||||
}
|
||||
if (packageFragment instanceof JavaClassStaticsPackageFragmentDescriptor) {
|
||||
JavaClassStaticsPackageFragmentDescriptor javaPackageFragment = (JavaClassStaticsPackageFragmentDescriptor) packageFragment;
|
||||
return mapClass(javaPackageFragment.getCorrespondingClass()).getInternalName();
|
||||
}
|
||||
|
||||
// It's not a package created for Java class statics
|
||||
@@ -282,7 +277,7 @@ public class JetTypeMapper extends BindingTraceAware {
|
||||
|
||||
if (descriptor instanceof TypeParameterDescriptor) {
|
||||
TypeParameterDescriptor typeParameterDescriptor = (TypeParameterDescriptor) descriptor;
|
||||
Type type = mapType(typeParameterDescriptor.getUpperBoundsAsType(), kind);
|
||||
Type type = mapType(typeParameterDescriptor.getUpperBounds().iterator().next(), kind);
|
||||
if (signatureVisitor != null) {
|
||||
signatureVisitor.writeTypeVariable(typeParameterDescriptor.getName(), type);
|
||||
}
|
||||
|
||||
@@ -1,90 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import org.jetbrains.jet.codegen.state.JetTypeMapper;
|
||||
import org.jetbrains.jet.codegen.state.GenerationState;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderFactory;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.codegen.ClassBuilderMode;
|
||||
import org.jetbrains.jet.codegen.intrinsics.IntrinsicMethods;
|
||||
import org.jetbrains.jet.codegen.ClassFileFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
public class InjectorForJvmCodegen {
|
||||
|
||||
private final JetTypeMapper jetTypeMapper;
|
||||
private final GenerationState generationState;
|
||||
private final ClassBuilderFactory classBuilderFactory;
|
||||
private final Project project;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final BindingContext bindingContext;
|
||||
private final ClassBuilderMode classBuilderMode;
|
||||
private final IntrinsicMethods intrinsics;
|
||||
private final ClassFileFactory classFileFactory;
|
||||
|
||||
public InjectorForJvmCodegen(
|
||||
@NotNull JetTypeMapper jetTypeMapper,
|
||||
@NotNull GenerationState generationState,
|
||||
@NotNull ClassBuilderFactory classBuilderFactory,
|
||||
@NotNull Project project
|
||||
) {
|
||||
this.jetTypeMapper = jetTypeMapper;
|
||||
this.generationState = generationState;
|
||||
this.classBuilderFactory = classBuilderFactory;
|
||||
this.project = project;
|
||||
this.bindingTrace = jetTypeMapper.getBindingTrace();
|
||||
this.bindingContext = bindingTrace.getBindingContext();
|
||||
this.classBuilderMode = classBuilderFactory.getClassBuilderMode();
|
||||
this.intrinsics = new IntrinsicMethods();
|
||||
this.classFileFactory = new ClassFileFactory(getGenerationState());
|
||||
|
||||
this.classFileFactory.setBuilderFactory(classBuilderFactory);
|
||||
|
||||
intrinsics.init();
|
||||
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() {
|
||||
}
|
||||
|
||||
public JetTypeMapper getJetTypeMapper() {
|
||||
return this.jetTypeMapper;
|
||||
}
|
||||
|
||||
public GenerationState getGenerationState() {
|
||||
return this.generationState;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return this.project;
|
||||
}
|
||||
|
||||
public IntrinsicMethods getIntrinsics() {
|
||||
return this.intrinsics;
|
||||
}
|
||||
|
||||
public ClassFileFactory getClassFileFactory() {
|
||||
return this.classFileFactory;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -22,7 +22,6 @@ import com.intellij.openapi.util.Disposer
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import org.jetbrains.jet.config.CompilerConfiguration
|
||||
import org.jetbrains.jet.cli.jvm.compiler.JetCoreEnvironment
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns
|
||||
import org.jetbrains.jet.descriptors.serialization.DescriptorSerializer
|
||||
import org.jetbrains.jet.descriptors.serialization.SerializerExtension
|
||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor
|
||||
@@ -41,6 +40,9 @@ import org.jetbrains.jet.cli.common.messages.MessageCollector
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM
|
||||
import org.jetbrains.jet.lang.resolve.BindingTraceContext
|
||||
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName
|
||||
import com.intellij.util.containers.ContainerUtil
|
||||
|
||||
public class BuiltInsSerializer(val out: PrintStream?) {
|
||||
private var totalSize = 0
|
||||
@@ -73,12 +75,6 @@ public class BuiltInsSerializer(val out: PrintStream?) {
|
||||
InjectorForJavaDescriptorResolverUtil.create(project, trace), false)
|
||||
val module = session.getModuleDescriptor() ?: error("No module resolved for $sourceRoots")
|
||||
|
||||
val fqName = KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME
|
||||
val packageView = module.getPackage(fqName) ?: error("No package resolved in $module")
|
||||
|
||||
// TODO: perform some kind of validation? At the moment not possible because DescriptorValidator is in compiler-tests
|
||||
// DescriptorValidator.validate(packageView)
|
||||
|
||||
if (!FileUtil.delete(destDir)) {
|
||||
System.err.println("Could not delete: " + destDir)
|
||||
}
|
||||
@@ -86,6 +82,19 @@ public class BuiltInsSerializer(val out: PrintStream?) {
|
||||
System.err.println("Could not make directories: " + destDir)
|
||||
}
|
||||
|
||||
for (fqName in ContainerUtil.mapNotNull(files) { it?.getPackageName() }.toSet()) {
|
||||
serializePackage(module, FqName(fqName), destDir)
|
||||
}
|
||||
|
||||
out?.println("Total bytes written: $totalSize to $totalFiles files")
|
||||
}
|
||||
|
||||
fun serializePackage(module: ModuleDescriptor, fqName: FqName, destDir: File) {
|
||||
val packageView = module.getPackage(fqName) ?: error("No package resolved in $module")
|
||||
|
||||
// TODO: perform some kind of validation? At the moment not possible because DescriptorValidator is in compiler-tests
|
||||
// DescriptorValidator.validate(packageView)
|
||||
|
||||
val serializer = DescriptorSerializer(object : SerializerExtension() {
|
||||
private val set = setOf("Any", "Nothing")
|
||||
|
||||
@@ -122,8 +131,6 @@ public class BuiltInsSerializer(val out: PrintStream?) {
|
||||
val nameStream = ByteArrayOutputStream()
|
||||
NameSerializationUtil.serializeNameTable(nameStream, serializer.getNameTable())
|
||||
write(destDir, BuiltInsSerializationUtil.getNameTableFilePath(fqName), nameStream)
|
||||
|
||||
out?.println("Total bytes written: $totalSize to $totalFiles files")
|
||||
}
|
||||
|
||||
fun writeClassNames(serializer: DescriptorSerializer, classNames: List<Name>, stream: ByteArrayOutputStream) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -209,7 +209,7 @@ public class CliLightClassGenerationSupport extends LightClassGenerationSupport
|
||||
@Nullable
|
||||
@Override
|
||||
public PsiClass getPsiClass(@NotNull JetClassOrObject classOrObject) {
|
||||
return KotlinLightClassForExplicitDeclaration.create(classOrObject.getManager(), classOrObject);
|
||||
return KotlinLightClassForExplicitDeclaration.create(classOrObject.getManager(), classOrObject);
|
||||
}
|
||||
|
||||
public static class BindingTraceContextWithoutScopeRecording extends BindingTraceContext {
|
||||
|
||||
@@ -42,7 +42,7 @@ import org.jetbrains.jet.config.CommonConfigurationKeys;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.lang.resolve.java.PackageClassUtils;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
import org.jetbrains.jet.utils.KotlinPaths;
|
||||
import org.jetbrains.jet.utils.PathUtil;
|
||||
|
||||
@@ -206,10 +206,10 @@ public class CompileEnvironmentUtil {
|
||||
throw new CompileEnvironmentException("Invalid jar path " + jarPath, e);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
finally {
|
||||
ExceptionUtils.closeQuietly(outputStream);
|
||||
UtilsPackage.closeQuietly(outputStream);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ import com.intellij.openapi.fileTypes.PlainTextFileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Disposer;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiElementFinder;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
@@ -198,6 +199,8 @@ public class JetCoreEnvironment {
|
||||
configuration.getList(CommonConfigurationKeys.SCRIPT_DEFINITIONS_KEY));
|
||||
|
||||
project.registerService(VirtualFileFinder.class, new CliVirtualFileFinder(classPath));
|
||||
|
||||
project.registerService(PsiDocumentManager.class, new MockPsiDocumentManager());
|
||||
}
|
||||
|
||||
public CompilerConfiguration getConfiguration() {
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
/*
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.cli.jvm.compiler;
|
||||
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.fileEditor.FileDocumentManager;
|
||||
import com.intellij.openapi.util.Computable;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiDocumentManager;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
// copied from com.intellij.mock.MockPsiDocumentManager
|
||||
public class MockPsiDocumentManager extends PsiDocumentManager {
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiFile getPsiFile(@NotNull Document document) {
|
||||
throw new UnsupportedOperationException("Method getPsiFile is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiFile getCachedPsiFile(@NotNull Document document) {
|
||||
throw new UnsupportedOperationException("Method getCachedPsiFile is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Document getDocument(@NotNull PsiFile file) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public Document getCachedDocument(@NotNull PsiFile file) {
|
||||
VirtualFile vFile = file.getViewProvider().getVirtualFile();
|
||||
return FileDocumentManager.getInstance().getCachedDocument(vFile);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commitAllDocuments() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void performForCommittedDocument(@NotNull final Document document, @NotNull final Runnable action) {
|
||||
action.run();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commitDocument(@NotNull Document document) {
|
||||
}
|
||||
|
||||
public CharSequence getLastCommittedText(@NotNull Document document) {
|
||||
return document.getText();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NotNull
|
||||
public Document[] getUncommittedDocuments() {
|
||||
throw new UnsupportedOperationException("Method getUncommittedDocuments is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isUncommited(@NotNull Document document) {
|
||||
throw new UnsupportedOperationException("Method isUncommited is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isCommitted(@NotNull Document document) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUncommitedDocuments() {
|
||||
throw new UnsupportedOperationException("Method hasUncommitedDocuments is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void commitAndRunReadAction(@NotNull Runnable runnable) {
|
||||
throw new UnsupportedOperationException("Method commitAndRunReadAction is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T> T commitAndRunReadAction(@NotNull Computable<T> computation) {
|
||||
throw new UnsupportedOperationException("Method commitAndRunReadAction is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener(@NotNull Listener listener) {
|
||||
throw new UnsupportedOperationException("Method addListener is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener(@NotNull Listener listener) {
|
||||
throw new UnsupportedOperationException("Method removeListener is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDocumentBlockedByPsi(@NotNull Document doc) {
|
||||
throw new UnsupportedOperationException("Method isDocumentBlockedByPsi is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doPostponedOperationsAndUnblockDocument(@NotNull Document doc) {
|
||||
throw new UnsupportedOperationException(
|
||||
"Method doPostponedOperationsAndUnblockDocument is not yet implemented in " + getClass().getName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean performWhenAllCommitted(@NotNull Runnable action) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reparseFiles(@NotNull Collection<VirtualFile> files, boolean includeOpenFiles) {
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
}
|
||||
@@ -22,7 +22,7 @@ import jline.console.ConsoleReader;
|
||||
import jline.console.history.FileHistory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.config.CompilerConfiguration;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintWriter;
|
||||
@@ -59,7 +59,7 @@ public class ReplFromTerminal {
|
||||
consoleReader.setHistoryEnabled(true);
|
||||
consoleReader.setHistory(new FileHistory(new File(new File(System.getProperty("user.home")), ".kotlin_history")));
|
||||
} catch (Exception e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,13 +72,13 @@ public class ReplFromTerminal {
|
||||
try {
|
||||
waitRepl.wait();
|
||||
} catch (Throwable e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
if (replInterpreter != null) {
|
||||
return replInterpreter;
|
||||
}
|
||||
throw ExceptionUtils.rethrow(replInitializationFailed);
|
||||
throw UtilsPackage.rethrow(replInitializationFailed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public class ReplFromTerminal {
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
} finally {
|
||||
try {
|
||||
((FileHistory) consoleReader.getHistory()).flush();
|
||||
@@ -132,7 +132,7 @@ public class ReplFromTerminal {
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -59,8 +59,9 @@ import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl;
|
||||
import org.jetbrains.jet.lang.types.lang.InlineUtil;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
import org.jetbrains.jet.storage.ExceptionTracker;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.PrintWriter;
|
||||
@@ -103,6 +104,7 @@ public class ReplInterpreter {
|
||||
module = AnalyzerFacadeForJVM.createJavaModule("<repl>");
|
||||
TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(
|
||||
new LockBasedStorageManager(),
|
||||
new ExceptionTracker(), // dummy
|
||||
Predicates.<PsiFile>alwaysTrue(),
|
||||
false,
|
||||
true,
|
||||
@@ -119,7 +121,7 @@ public class ReplInterpreter {
|
||||
classpath.add(file.toURI().toURL());
|
||||
}
|
||||
catch (MalformedURLException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -281,7 +283,7 @@ public class ReplInterpreter {
|
||||
PrintWriter writer = new PrintWriter(System.err);
|
||||
classLoader.dumpClasses(writer);
|
||||
writer.flush();
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
org.jetbrains.jet.lang.resolve.java.resolver.ProgressCheckerImpl
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -18,62 +18,45 @@ package org.jetbrains.jet.di;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.context.GlobalContextImpl;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedExternalSignatureResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProviderImpl;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForJavaDescriptorResolver {
|
||||
|
||||
private final Project project;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final GlobalContextImpl globalContext;
|
||||
private final LockBasedStorageManager lockBasedStorageManager;
|
||||
private final ModuleDescriptorImpl module;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
private final JavaClassFinderImpl javaClassFinder;
|
||||
private final TraceBasedExternalSignatureResolver traceBasedExternalSignatureResolver;
|
||||
private final TraceBasedJavaResolverCache traceBasedJavaResolverCache;
|
||||
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
private final JavaPackageFragmentProviderImpl javaPackageFragmentProvider;
|
||||
private final VirtualFileFinder virtualFileFinder;
|
||||
private final ModuleDescriptorImpl module;
|
||||
private final JavaAnnotationResolver javaAnnotationResolver;
|
||||
private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
|
||||
private final JavaClassResolver javaClassResolver;
|
||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||
private final JavaFunctionResolver javaFunctionResolver;
|
||||
private final JavaTypeParameterResolver javaTypeParameterResolver;
|
||||
private final JavaTypeTransformer javaTypeTransformer;
|
||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
||||
private final JavaMemberResolver javaMemberResolver;
|
||||
private final JavaConstructorResolver javaConstructorResolver;
|
||||
private final JavaPropertyResolver javaPropertyResolver;
|
||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
||||
|
||||
public InjectorForJavaDescriptorResolver(
|
||||
@NotNull Project project,
|
||||
@@ -81,128 +64,44 @@ public class InjectorForJavaDescriptorResolver {
|
||||
) {
|
||||
this.project = project;
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.lockBasedStorageManager = new LockBasedStorageManager();
|
||||
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
||||
this.lockBasedStorageManager = globalContext.getStorageManager();
|
||||
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
||||
this.javaClassFinder = new JavaClassFinderImpl();
|
||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||
this.javaDescriptorResolver = new JavaDescriptorResolver();
|
||||
this.javaPackageFragmentProvider = new JavaPackageFragmentProviderImpl();
|
||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||
this.module = org.jetbrains.jet.lang.resolve.java.AnalyzerFacadeForJVM.createJavaModule("<fake-jdr-module>");
|
||||
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
||||
this.javaClassResolver = new JavaClassResolver();
|
||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(getLockBasedStorageManager());
|
||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
||||
this.javaMemberResolver = new JavaMemberResolver();
|
||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||
this.globalJavaResolverContext = new GlobalJavaResolverContext(lockBasedStorageManager, getJavaClassFinder(), virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache);
|
||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModule());
|
||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModule());
|
||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(lockBasedStorageManager);
|
||||
|
||||
this.javaClassFinder.setProject(project);
|
||||
|
||||
traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
||||
|
||||
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
||||
|
||||
traceBasedErrorReporter.setTrace(bindingTrace);
|
||||
|
||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
||||
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
|
||||
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
|
||||
this.javaDescriptorResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
this.javaDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
this.javaDescriptorResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
this.javaDescriptorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
this.javaDescriptorResolver.setJavaClassFinder(javaClassFinder);
|
||||
this.javaDescriptorResolver.setJavaResolverCache(traceBasedJavaResolverCache);
|
||||
this.javaDescriptorResolver.setKotlinClassFinder(virtualFileFinder);
|
||||
this.javaDescriptorResolver.setModule(module);
|
||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||
this.javaDescriptorResolver.setStorageManager(lockBasedStorageManager);
|
||||
|
||||
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
||||
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
||||
javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
||||
javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
||||
javaPackageFragmentProvider.setModule(module);
|
||||
|
||||
javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
|
||||
javaAnnotationResolver.setClassResolver(javaClassResolver);
|
||||
javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
|
||||
javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
|
||||
javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaClassResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
||||
javaClassResolver.setJavaClassFinder(javaClassFinder);
|
||||
javaClassResolver.setKotlinClassFinder(virtualFileFinder);
|
||||
javaClassResolver.setMemberResolver(javaMemberResolver);
|
||||
javaClassResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
|
||||
javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
||||
|
||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(lazyJavaPackageFragmentProvider);
|
||||
deserializedDescriptorResolver.setStorageManager(lockBasedStorageManager);
|
||||
|
||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||
|
||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaFunctionResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||
javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
||||
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaTypeTransformer.setClassResolver(javaClassResolver);
|
||||
|
||||
javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaMemberResolver.setClassResolver(javaClassResolver);
|
||||
javaMemberResolver.setConstructorResolver(javaConstructorResolver);
|
||||
javaMemberResolver.setFunctionResolver(javaFunctionResolver);
|
||||
javaMemberResolver.setPropertyResolver(javaPropertyResolver);
|
||||
|
||||
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaPropertyResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
||||
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaClassFinder.initialize();
|
||||
|
||||
}
|
||||
@@ -211,20 +110,20 @@ public class InjectorForJavaDescriptorResolver {
|
||||
public void destroy() {
|
||||
}
|
||||
|
||||
public LockBasedStorageManager getLockBasedStorageManager() {
|
||||
return this.lockBasedStorageManager;
|
||||
}
|
||||
|
||||
public JavaClassFinderImpl getJavaClassFinder() {
|
||||
return this.javaClassFinder;
|
||||
}
|
||||
|
||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||
return this.javaDescriptorResolver;
|
||||
public GlobalContextImpl getGlobalContext() {
|
||||
return this.globalContext;
|
||||
}
|
||||
|
||||
public ModuleDescriptorImpl getModule() {
|
||||
return this.module;
|
||||
}
|
||||
|
||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||
return this.javaDescriptorResolver;
|
||||
}
|
||||
|
||||
public JavaClassFinderImpl getJavaClassFinder() {
|
||||
return this.javaClassFinder;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,18 +16,14 @@
|
||||
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.java.JavaClassFinderImpl;
|
||||
@@ -36,58 +32,49 @@ import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedJavaResolverCache;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.TraceBasedErrorReporter;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedMethodSignatureChecker;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.PsiBasedExternalAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPackageFragmentProviderImpl;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaClassResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationArgumentResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeTransformer;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.kotlin.AnnotationDescriptorDeserializer;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaFunctionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaTypeParameterResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaValueParameterResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaMemberResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaConstructorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnalyzer {
|
||||
|
||||
private final TopDownAnalyzer topDownAnalyzer;
|
||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final StorageManager storageManager;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final Project project;
|
||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||
private final StorageManager storageManager;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final ModuleDescriptorImpl moduleDescriptor;
|
||||
private final TopDownAnalyzer topDownAnalyzer;
|
||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||
private final JavaDescriptorResolver javaDescriptorResolver;
|
||||
private final JavaToKotlinClassMap javaToKotlinClassMap;
|
||||
private final JavaClassFinderImpl javaClassFinder;
|
||||
@@ -96,40 +83,34 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
private final TraceBasedErrorReporter traceBasedErrorReporter;
|
||||
private final PsiBasedMethodSignatureChecker psiBasedMethodSignatureChecker;
|
||||
private final PsiBasedExternalAnnotationResolver psiBasedExternalAnnotationResolver;
|
||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||
private final JavaPackageFragmentProviderImpl javaPackageFragmentProvider;
|
||||
private final VirtualFileFinder virtualFileFinder;
|
||||
private final DeclarationResolver declarationResolver;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final CallResolver callResolver;
|
||||
private final ArgumentTypeResolver argumentTypeResolver;
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final CallExpressionResolver callExpressionResolver;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final TypeResolver typeResolver;
|
||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final DeclarationResolver declarationResolver;
|
||||
private final ImportsResolver importsResolver;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||
private final OverloadResolver overloadResolver;
|
||||
private final OverrideResolver overrideResolver;
|
||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final JavaClassResolver javaClassResolver;
|
||||
private final JavaAnnotationResolver javaAnnotationResolver;
|
||||
private final JavaAnnotationArgumentResolver javaAnnotationArgumentResolver;
|
||||
private final JavaTypeTransformer javaTypeTransformer;
|
||||
private final LazyJavaPackageFragmentProvider lazyJavaPackageFragmentProvider;
|
||||
private final GlobalJavaResolverContext globalJavaResolverContext;
|
||||
private final DeserializedDescriptorResolver deserializedDescriptorResolver;
|
||||
private final AnnotationDescriptorDeserializer annotationDescriptorDeserializer;
|
||||
private final JavaFunctionResolver javaFunctionResolver;
|
||||
private final JavaTypeParameterResolver javaTypeParameterResolver;
|
||||
private final JavaValueParameterResolver javaValueParameterResolver;
|
||||
private final JavaMemberResolver javaMemberResolver;
|
||||
private final JavaConstructorResolver javaConstructorResolver;
|
||||
private final JavaPropertyResolver javaPropertyResolver;
|
||||
private final JavaSupertypeResolver javaSupertypeResolver;
|
||||
|
||||
public InjectorForTopDownAnalyzerForJvm(
|
||||
@NotNull Project project,
|
||||
@@ -137,60 +118,50 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
@NotNull BindingTrace bindingTrace,
|
||||
@NotNull ModuleDescriptorImpl moduleDescriptor
|
||||
) {
|
||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.project = project;
|
||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.javaDescriptorResolver = new JavaDescriptorResolver();
|
||||
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||
this.javaClassFinder = new JavaClassFinderImpl();
|
||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||
this.traceBasedExternalSignatureResolver = new TraceBasedExternalSignatureResolver();
|
||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||
this.traceBasedErrorReporter = new TraceBasedErrorReporter();
|
||||
this.psiBasedMethodSignatureChecker = new PsiBasedMethodSignatureChecker();
|
||||
this.psiBasedExternalAnnotationResolver = new PsiBasedExternalAnnotationResolver();
|
||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||
this.javaPackageFragmentProvider = new JavaPackageFragmentProviderImpl();
|
||||
this.virtualFileFinder = org.jetbrains.jet.lang.resolve.kotlin.VirtualFileFinder.SERVICE.getInstance(project);
|
||||
this.declarationResolver = new DeclarationResolver();
|
||||
this.traceBasedJavaResolverCache = new TraceBasedJavaResolverCache();
|
||||
this.globalJavaResolverContext = new GlobalJavaResolverContext(storageManager, javaClassFinder, virtualFileFinder, deserializedDescriptorResolver, psiBasedExternalAnnotationResolver, traceBasedExternalSignatureResolver, traceBasedErrorReporter, psiBasedMethodSignatureChecker, traceBasedJavaResolverCache);
|
||||
this.lazyJavaPackageFragmentProvider = new LazyJavaPackageFragmentProvider(globalJavaResolverContext, getModuleDescriptor());
|
||||
this.javaDescriptorResolver = new JavaDescriptorResolver(lazyJavaPackageFragmentProvider, getModuleDescriptor());
|
||||
this.javaToKotlinClassMap = org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap.getInstance();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.annotationResolver = new AnnotationResolver();
|
||||
this.callResolver = new CallResolver();
|
||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(storageManager, javaToKotlinClassMap);
|
||||
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), javaToKotlinClassMap);
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.typeResolver = new TypeResolver();
|
||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.candidateResolver = new CandidateResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.declarationResolver = new DeclarationResolver();
|
||||
this.importsResolver = new ImportsResolver();
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||
this.overloadResolver = new OverloadResolver();
|
||||
this.overrideResolver = new OverrideResolver();
|
||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.javaClassResolver = new JavaClassResolver();
|
||||
this.javaAnnotationResolver = new JavaAnnotationResolver();
|
||||
this.javaAnnotationArgumentResolver = new JavaAnnotationArgumentResolver();
|
||||
this.javaTypeTransformer = new JavaTypeTransformer();
|
||||
this.deserializedDescriptorResolver = new DeserializedDescriptorResolver();
|
||||
this.annotationDescriptorDeserializer = new AnnotationDescriptorDeserializer(storageManager);
|
||||
this.javaFunctionResolver = new JavaFunctionResolver();
|
||||
this.javaTypeParameterResolver = new JavaTypeParameterResolver();
|
||||
this.javaValueParameterResolver = new JavaValueParameterResolver();
|
||||
this.javaMemberResolver = new JavaMemberResolver();
|
||||
this.javaConstructorResolver = new JavaConstructorResolver();
|
||||
this.javaPropertyResolver = new JavaPropertyResolver();
|
||||
this.javaSupertypeResolver = new JavaSupertypeResolver();
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
@@ -205,68 +176,29 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
|
||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
this.bodyResolver.setAnnotationResolver(annotationResolver);
|
||||
this.bodyResolver.setCallResolver(callResolver);
|
||||
this.bodyResolver.setContext(topDownAnalysisContext);
|
||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||
this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.bodyResolver.setTrace(bindingTrace);
|
||||
|
||||
this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.controlFlowAnalyzer.setTrace(bindingTrace);
|
||||
|
||||
this.declarationsChecker.setTrace(bindingTrace);
|
||||
|
||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.descriptorResolver.setStorageManager(storageManager);
|
||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
this.javaDescriptorResolver.setClassResolver(javaClassResolver);
|
||||
this.javaDescriptorResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
this.javaDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
this.javaDescriptorResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
this.javaDescriptorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
this.javaDescriptorResolver.setJavaClassFinder(javaClassFinder);
|
||||
this.javaDescriptorResolver.setJavaResolverCache(traceBasedJavaResolverCache);
|
||||
this.javaDescriptorResolver.setKotlinClassFinder(virtualFileFinder);
|
||||
this.javaDescriptorResolver.setModule(moduleDescriptor);
|
||||
this.javaDescriptorResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
this.javaDescriptorResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||
this.javaDescriptorResolver.setStorageManager(storageManager);
|
||||
|
||||
javaClassFinder.setProject(project);
|
||||
|
||||
traceBasedExternalSignatureResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
traceBasedExternalSignatureResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
traceBasedExternalSignatureResolver.setTrace(bindingTrace);
|
||||
|
||||
traceBasedJavaResolverCache.setTrace(bindingTrace);
|
||||
|
||||
traceBasedErrorReporter.setTrace(bindingTrace);
|
||||
|
||||
psiBasedMethodSignatureChecker.setAnnotationResolver(javaAnnotationResolver);
|
||||
psiBasedMethodSignatureChecker.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
psiBasedMethodSignatureChecker.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
|
||||
javaPackageFragmentProvider.setCache(traceBasedJavaResolverCache);
|
||||
javaPackageFragmentProvider.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
javaPackageFragmentProvider.setJavaClassFinder(javaClassFinder);
|
||||
javaPackageFragmentProvider.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
javaPackageFragmentProvider.setKotlinClassFinder(virtualFileFinder);
|
||||
javaPackageFragmentProvider.setMemberResolver(javaMemberResolver);
|
||||
javaPackageFragmentProvider.setModule(moduleDescriptor);
|
||||
|
||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||
declarationResolver.setContext(topDownAnalysisContext);
|
||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||
declarationResolver.setImportsResolver(importsResolver);
|
||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
declarationResolver.setTrace(bindingTrace);
|
||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||
bodyResolver.setCallResolver(callResolver);
|
||||
bodyResolver.setContext(topDownAnalysisContext);
|
||||
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||
bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||
bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
bodyResolver.setTrace(bindingTrace);
|
||||
|
||||
annotationResolver.setCallResolver(callResolver);
|
||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
@@ -289,12 +221,38 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
|
||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
descriptorResolver.setStorageManager(storageManager);
|
||||
descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
typeResolver.setAnnotationResolver(annotationResolver);
|
||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
|
||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||
|
||||
controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
controlFlowAnalyzer.setTrace(bindingTrace);
|
||||
|
||||
declarationsChecker.setTrace(bindingTrace);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
scriptBodyResolver.setTrace(bindingTrace);
|
||||
|
||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||
declarationResolver.setContext(topDownAnalysisContext);
|
||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||
declarationResolver.setImportsResolver(importsResolver);
|
||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
declarationResolver.setTrace(bindingTrace);
|
||||
|
||||
importsResolver.setContext(topDownAnalysisContext);
|
||||
importsResolver.setImportsFactory(jetImportsFactory);
|
||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
||||
@@ -323,78 +281,16 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
typeHierarchyResolver.setTrace(bindingTrace);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
scriptBodyResolver.setTrace(bindingTrace);
|
||||
|
||||
javaClassResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaClassResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaClassResolver.setDeserializedDescriptorResolver(deserializedDescriptorResolver);
|
||||
javaClassResolver.setFunctionResolver(javaFunctionResolver);
|
||||
javaClassResolver.setJavaClassFinder(javaClassFinder);
|
||||
javaClassResolver.setKotlinClassFinder(virtualFileFinder);
|
||||
javaClassResolver.setMemberResolver(javaMemberResolver);
|
||||
javaClassResolver.setPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
javaClassResolver.setSupertypesResolver(javaSupertypeResolver);
|
||||
javaClassResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
||||
|
||||
javaAnnotationResolver.setArgumentResolver(javaAnnotationArgumentResolver);
|
||||
javaAnnotationResolver.setClassResolver(javaClassResolver);
|
||||
javaAnnotationResolver.setExternalAnnotationResolver(psiBasedExternalAnnotationResolver);
|
||||
|
||||
javaAnnotationArgumentResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaAnnotationArgumentResolver.setClassResolver(javaClassResolver);
|
||||
javaAnnotationArgumentResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaTypeTransformer.setClassResolver(javaClassResolver);
|
||||
|
||||
deserializedDescriptorResolver.setAnnotationDeserializer(annotationDescriptorDeserializer);
|
||||
deserializedDescriptorResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
deserializedDescriptorResolver.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(javaPackageFragmentProvider);
|
||||
deserializedDescriptorResolver.setJavaPackageFragmentProvider(lazyJavaPackageFragmentProvider);
|
||||
deserializedDescriptorResolver.setStorageManager(storageManager);
|
||||
|
||||
annotationDescriptorDeserializer.setErrorReporter(traceBasedErrorReporter);
|
||||
annotationDescriptorDeserializer.setJavaDescriptorResolver(javaDescriptorResolver);
|
||||
annotationDescriptorDeserializer.setKotlinClassFinder(virtualFileFinder);
|
||||
|
||||
javaFunctionResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaFunctionResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaFunctionResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
javaFunctionResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaFunctionResolver.setSignatureChecker(psiBasedMethodSignatureChecker);
|
||||
javaFunctionResolver.setTypeParameterResolver(javaTypeParameterResolver);
|
||||
javaFunctionResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaFunctionResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaTypeParameterResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaValueParameterResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaValueParameterResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaMemberResolver.setClassResolver(javaClassResolver);
|
||||
javaMemberResolver.setConstructorResolver(javaConstructorResolver);
|
||||
javaMemberResolver.setFunctionResolver(javaFunctionResolver);
|
||||
javaMemberResolver.setPropertyResolver(javaPropertyResolver);
|
||||
|
||||
javaConstructorResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaConstructorResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaConstructorResolver.setTypeTransformer(javaTypeTransformer);
|
||||
javaConstructorResolver.setValueParameterResolver(javaValueParameterResolver);
|
||||
|
||||
javaPropertyResolver.setAnnotationResolver(javaAnnotationResolver);
|
||||
javaPropertyResolver.setCache(traceBasedJavaResolverCache);
|
||||
javaPropertyResolver.setErrorReporter(traceBasedErrorReporter);
|
||||
javaPropertyResolver.setExternalSignatureResolver(traceBasedExternalSignatureResolver);
|
||||
javaPropertyResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaSupertypeResolver.setClassResolver(javaClassResolver);
|
||||
javaSupertypeResolver.setTypeTransformer(javaTypeTransformer);
|
||||
|
||||
javaClassFinder.initialize();
|
||||
|
||||
}
|
||||
@@ -403,6 +299,10 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
public void destroy() {
|
||||
}
|
||||
|
||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||
return this.moduleDescriptor;
|
||||
}
|
||||
|
||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
||||
return this.topDownAnalyzer;
|
||||
}
|
||||
@@ -411,38 +311,6 @@ public class InjectorForTopDownAnalyzerForJvm implements InjectorForTopDownAnaly
|
||||
return this.topDownAnalysisContext;
|
||||
}
|
||||
|
||||
public BodyResolver getBodyResolver() {
|
||||
return this.bodyResolver;
|
||||
}
|
||||
|
||||
public ControlFlowAnalyzer getControlFlowAnalyzer() {
|
||||
return this.controlFlowAnalyzer;
|
||||
}
|
||||
|
||||
public DeclarationsChecker getDeclarationsChecker() {
|
||||
return this.declarationsChecker;
|
||||
}
|
||||
|
||||
public DescriptorResolver getDescriptorResolver() {
|
||||
return this.descriptorResolver;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return this.project;
|
||||
}
|
||||
|
||||
public TopDownAnalysisParameters getTopDownAnalysisParameters() {
|
||||
return this.topDownAnalysisParameters;
|
||||
}
|
||||
|
||||
public BindingTrace getBindingTrace() {
|
||||
return this.bindingTrace;
|
||||
}
|
||||
|
||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||
return this.moduleDescriptor;
|
||||
}
|
||||
|
||||
public JavaDescriptorResolver getJavaDescriptorResolver() {
|
||||
return this.javaDescriptorResolver;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -25,8 +25,12 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.analyzer.AnalyzeExhaust;
|
||||
import org.jetbrains.jet.analyzer.AnalyzerFacade;
|
||||
import org.jetbrains.jet.analyzer.AnalyzerFacadeForEverything;
|
||||
import org.jetbrains.jet.context.ContextPackage;
|
||||
import org.jetbrains.jet.context.GlobalContext;
|
||||
import org.jetbrains.jet.context.GlobalContextImpl;
|
||||
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolver;
|
||||
import org.jetbrains.jet.di.InjectorForJavaDescriptorResolverUtil;
|
||||
import org.jetbrains.jet.di.InjectorForLazyResolve;
|
||||
import org.jetbrains.jet.di.InjectorForTopDownAnalyzerForJvm;
|
||||
import org.jetbrains.jet.lang.descriptors.DependencyKind;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
@@ -36,11 +40,9 @@ import org.jetbrains.jet.lang.resolve.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.mapping.JavaToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.FileBasedDeclarationProviderFactory;
|
||||
import org.jetbrains.jet.storage.LockBasedLazyResolveStorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
@@ -101,13 +103,16 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
||||
final JavaClassFinderImpl classFinder = injector.getJavaClassFinder();
|
||||
|
||||
// TODO: Replace with stub declaration provider
|
||||
LockBasedLazyResolveStorageManager storageManager = new LockBasedLazyResolveStorageManager(injector.getLockBasedStorageManager());
|
||||
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(storageManager, files, new Predicate<FqName>() {
|
||||
@Override
|
||||
public boolean apply(FqName fqName) {
|
||||
return classFinder.findPackage(fqName) != null || KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(fqName);
|
||||
}
|
||||
});
|
||||
GlobalContextImpl globalContext = injector.getGlobalContext();
|
||||
FileBasedDeclarationProviderFactory declarationProviderFactory = new FileBasedDeclarationProviderFactory(
|
||||
globalContext.getStorageManager(),
|
||||
files,
|
||||
new Predicate<FqName>() {
|
||||
@Override
|
||||
public boolean apply(FqName fqName) {
|
||||
return classFinder.findPackage(fqName) != null || KotlinBuiltIns.BUILT_INS_PACKAGE_FQ_NAME.equals(fqName);
|
||||
}
|
||||
});
|
||||
|
||||
ModuleDescriptorImpl module = injector.getModule();
|
||||
|
||||
@@ -115,7 +120,7 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
||||
module.addFragmentProvider(DependencyKind.BUILT_INS, KotlinBuiltIns.getInstance().getBuiltInsModule().getPackageFragmentProvider());
|
||||
}
|
||||
|
||||
return new ResolveSession(project, storageManager, module, declarationProviderFactory, trace);
|
||||
return new InjectorForLazyResolve(project, globalContext, module, declarationProviderFactory, trace).getResolveSession();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -199,9 +204,31 @@ public enum AnalyzerFacadeForJVM implements AnalyzerFacade {
|
||||
Predicate<PsiFile> filesToAnalyzeCompletely,
|
||||
boolean storeContextForBodiesResolve,
|
||||
ModuleDescriptorImpl module
|
||||
) {
|
||||
GlobalContext globalContext = ContextPackage.GlobalContext();
|
||||
return analyzeFilesWithJavaIntegrationInGlobalContext(project, files, trace, scriptParameters, filesToAnalyzeCompletely,
|
||||
storeContextForBodiesResolve, module, globalContext);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static AnalyzeExhaust analyzeFilesWithJavaIntegrationInGlobalContext(
|
||||
Project project,
|
||||
Collection<JetFile> files,
|
||||
BindingTrace trace,
|
||||
List<AnalyzerScriptParameter> scriptParameters,
|
||||
Predicate<PsiFile> filesToAnalyzeCompletely,
|
||||
boolean storeContextForBodiesResolve,
|
||||
ModuleDescriptorImpl module,
|
||||
GlobalContext globalContext
|
||||
) {
|
||||
TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(
|
||||
new LockBasedStorageManager(), filesToAnalyzeCompletely, false, false, scriptParameters);
|
||||
globalContext.getStorageManager(),
|
||||
globalContext.getExceptionTracker(),
|
||||
filesToAnalyzeCompletely,
|
||||
false,
|
||||
false,
|
||||
scriptParameters
|
||||
);
|
||||
|
||||
InjectorForTopDownAnalyzerForJvm injector = new InjectorForTopDownAnalyzerForJvm(project, topDownAnalysisParameters, trace, module);
|
||||
try {
|
||||
|
||||
@@ -19,7 +19,7 @@ package org.jetbrains.jet.lang.resolve.java.jetAsJava
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.jet.lang.psi.JetDeclaration
|
||||
|
||||
trait KotlinLightElement<T: JetDeclaration, D: PsiElement> {
|
||||
public trait KotlinLightElement<T: JetDeclaration, D: PsiElement> {
|
||||
val origin: T?
|
||||
val delegate: D
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.psi.JetProperty;
|
||||
import org.jetbrains.jet.lang.psi.JetPsiFactory;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaFieldImpl;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
|
||||
@@ -33,12 +33,12 @@ public class AlternativeFieldSignatureData extends ElementAlternativeSignatureDa
|
||||
private JetType altReturnType;
|
||||
|
||||
public AlternativeFieldSignatureData(
|
||||
@NotNull JavaAnnotationResolver annotationResolver,
|
||||
@NotNull ExternalAnnotationResolver externalAnnotationResolver,
|
||||
@NotNull JavaFieldImpl field,
|
||||
@NotNull JetType originalReturnType,
|
||||
boolean isVar
|
||||
) {
|
||||
String signature = SignaturesUtil.getKotlinSignature(annotationResolver, field);
|
||||
String signature = SignaturesUtil.getKotlinSignature(externalAnnotationResolver, field);
|
||||
|
||||
if (signature == null) {
|
||||
setAnnotated(false);
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.jetbrains.jet.lang.descriptors.impl.TypeParameterDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.descriptors.impl.ValueParameterDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaMethod;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
@@ -55,7 +55,7 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD
|
||||
private Map<TypeParameterDescriptor, TypeParameterDescriptorImpl> originalToAltTypeParameters;
|
||||
|
||||
public AlternativeMethodSignatureData(
|
||||
@NotNull JavaAnnotationResolver annotationResolver,
|
||||
@NotNull ExternalAnnotationResolver externalAnnotationResolver,
|
||||
@NotNull JavaMethodImpl method,
|
||||
@Nullable JetType receiverType,
|
||||
@NotNull List<ValueParameterDescriptor> valueParameters,
|
||||
@@ -63,7 +63,7 @@ public class AlternativeMethodSignatureData extends ElementAlternativeSignatureD
|
||||
@NotNull List<TypeParameterDescriptor> methodTypeParameters,
|
||||
boolean hasSuperMethods
|
||||
) {
|
||||
String signature = SignaturesUtil.getKotlinSignature(annotationResolver, method);
|
||||
String signature = SignaturesUtil.getKotlinSignature(externalAnnotationResolver, method);
|
||||
|
||||
if (signature == null) {
|
||||
setAnnotated(false);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@@ -27,7 +27,7 @@ import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.Visibilities;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaSupertypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.*;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaMethodImpl;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.impl.JavaTypeSubstitutorImpl;
|
||||
@@ -234,7 +234,7 @@ class PropagationHeuristics {
|
||||
return !method.isConstructor() &&
|
||||
!method.isStatic() &&
|
||||
method.getVisibility() != Visibilities.PRIVATE &&
|
||||
!JavaSupertypeResolver.OBJECT_FQ_NAME.equals(method.getContainingClass().getFqName());
|
||||
!DescriptorResolverUtils.OBJECT_FQ_NAME.equals(method.getContainingClass().getFqName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -20,11 +20,8 @@ import com.intellij.openapi.util.text.StringUtil;
|
||||
import jet.runtime.typeinfo.KotlinSignature;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.JavaAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotation;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaAnnotationArgument;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaLiteralAnnotationArgument;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaMember;
|
||||
import org.jetbrains.jet.lang.resolve.java.resolver.ExternalAnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.*;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
|
||||
@@ -38,8 +35,8 @@ public class SignaturesUtil {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static String getKotlinSignature(@NotNull JavaAnnotationResolver annotationResolver, @NotNull JavaMember member) {
|
||||
JavaAnnotation annotation = annotationResolver.findAnnotationWithExternal(member, KOTLIN_SIGNATURE);
|
||||
public static String getKotlinSignature(@NotNull ExternalAnnotationResolver externalAnnotationResolver, @NotNull JavaMember member) {
|
||||
JavaAnnotation annotation = findAnnotationWithExternal(externalAnnotationResolver, member, KOTLIN_SIGNATURE);
|
||||
|
||||
if (annotation != null) {
|
||||
JavaAnnotationArgument argument = annotation.findArgument(KOTLIN_SIGNATURE_VALUE_FIELD_NAME);
|
||||
@@ -53,4 +50,15 @@ public class SignaturesUtil {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static JavaAnnotation findAnnotationWithExternal(@NotNull ExternalAnnotationResolver externalAnnotationResolver, @NotNull JavaAnnotationOwner owner, @NotNull FqName name) {
|
||||
JavaAnnotation annotation = owner.findAnnotation(name);
|
||||
if (annotation != null) {
|
||||
return annotation;
|
||||
}
|
||||
|
||||
return externalAnnotationResolver.findExternalAnnotation(owner, name);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -46,12 +46,12 @@ import static org.jetbrains.jet.lang.resolve.OverridingUtil.isReturnTypeOkForOve
|
||||
public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker {
|
||||
private static final Logger LOG = Logger.getInstance(PsiBasedMethodSignatureChecker.class);
|
||||
|
||||
private JavaAnnotationResolver annotationResolver;
|
||||
private ExternalAnnotationResolver externalAnnotationResolver;
|
||||
private ExternalSignatureResolver externalSignatureResolver;
|
||||
|
||||
@Inject
|
||||
public void setAnnotationResolver(JavaAnnotationResolver annotationResolver) {
|
||||
this.annotationResolver = annotationResolver;
|
||||
public void setExternalAnnotationResolver(ExternalAnnotationResolver externalAnnotationResolver) {
|
||||
this.externalAnnotationResolver = externalAnnotationResolver;
|
||||
}
|
||||
|
||||
@Inject
|
||||
@@ -92,7 +92,7 @@ public class PsiBasedMethodSignatureChecker implements MethodSignatureChecker {
|
||||
+ "sub function = " + function + "\n"
|
||||
+ "sub class = " + function.getContainingDeclaration() + "\n"
|
||||
+ "sub method = " + JavaSignatureFormatter.getInstance().getExternalName(method) + "\n"
|
||||
+ "@KotlinSignature = " + SignaturesUtil.getKotlinSignature(annotationResolver, method));
|
||||
+ "@KotlinSignature = " + SignaturesUtil.getKotlinSignature(externalAnnotationResolver, method));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ import java.util.List;
|
||||
|
||||
public class TraceBasedExternalSignatureResolver implements ExternalSignatureResolver {
|
||||
private BindingTrace trace;
|
||||
private JavaAnnotationResolver annotationResolver;
|
||||
private ExternalAnnotationResolver externalAnnotationResolver;
|
||||
|
||||
@Inject
|
||||
public void setTrace(BindingTrace trace) {
|
||||
@@ -47,8 +47,8 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes
|
||||
}
|
||||
|
||||
@Inject
|
||||
public void setAnnotationResolver(JavaAnnotationResolver annotationResolver) {
|
||||
this.annotationResolver = annotationResolver;
|
||||
public void setExternalAnnotationResolver(ExternalAnnotationResolver externalAnnotationResolver) {
|
||||
this.externalAnnotationResolver = externalAnnotationResolver;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -80,7 +80,7 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes
|
||||
@NotNull List<TypeParameterDescriptor> typeParameters
|
||||
) {
|
||||
AlternativeMethodSignatureData data =
|
||||
new AlternativeMethodSignatureData(annotationResolver, (JavaMethodImpl) method, receiverType, valueParameters, returnType,
|
||||
new AlternativeMethodSignatureData(externalAnnotationResolver, (JavaMethodImpl) method, receiverType, valueParameters, returnType,
|
||||
typeParameters, hasSuperMethods);
|
||||
|
||||
if (data.isAnnotated() && !data.hasErrors()) {
|
||||
@@ -100,7 +100,7 @@ public class TraceBasedExternalSignatureResolver implements ExternalSignatureRes
|
||||
boolean isVar
|
||||
) {
|
||||
AlternativeFieldSignatureData data =
|
||||
new AlternativeFieldSignatureData(annotationResolver, (JavaFieldImpl) field, returnType, isVar);
|
||||
new AlternativeFieldSignatureData(externalAnnotationResolver, (JavaFieldImpl) field, returnType, isVar);
|
||||
|
||||
if (data.isAnnotated() && !data.hasErrors()) {
|
||||
return new AlternativeFieldSignature(data.getReturnType(), null);
|
||||
|
||||
@@ -25,9 +25,9 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.ConstructorDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
|
||||
import org.jetbrains.jet.lang.descriptors.SimpleFunctionDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.CompileTimeConstantUtils;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.CompileTimeConstantUtils;
|
||||
import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaElement;
|
||||
@@ -94,9 +94,10 @@ public class TraceBasedJavaResolverCache implements JavaResolverCache {
|
||||
PsiExpression initializer = psiField.getInitializer();
|
||||
Object evaluatedExpression = JavaConstantExpressionEvaluator.computeConstantExpression(initializer, false);
|
||||
if (evaluatedExpression != null) {
|
||||
CompileTimeConstant<?> constant = JavaAnnotationArgumentResolver.
|
||||
resolveCompileTimeConstantValue(evaluatedExpression, CompileTimeConstantUtils
|
||||
.isPropertyCompileTimeConstant(descriptor), descriptor.getType());
|
||||
CompileTimeConstant<?> constant =
|
||||
ResolverPackage.resolveCompileTimeConstantValue(evaluatedExpression,
|
||||
CompileTimeConstantUtils.isPropertyCompileTimeConstant(descriptor),
|
||||
descriptor.getType());
|
||||
if (constant != null) {
|
||||
trace.record(COMPILE_TIME_INITIALIZER, descriptor, constant);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.storage.NotNullLazyValue;
|
||||
import org.jetbrains.jet.storage.NullableLazyValue;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
@@ -81,7 +81,7 @@ public class VirtualFileKotlinClass implements KotlinJvmBinaryClass {
|
||||
}, SKIP_CODE | SKIP_DEBUG | SKIP_FRAMES);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
return classNameRef.get();
|
||||
}
|
||||
@@ -113,7 +113,7 @@ public class VirtualFileKotlinClass implements KotlinJvmBinaryClass {
|
||||
}, SKIP_CODE | SKIP_DEBUG | SKIP_FRAMES);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,7 +197,7 @@ public class VirtualFileKotlinClass implements KotlinJvmBinaryClass {
|
||||
}, SKIP_CODE | SKIP_DEBUG | SKIP_FRAMES);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ package org.jetbrains.jet.descriptors.serialization;
|
||||
|
||||
import com.google.protobuf.ExtensionRegistryLite;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -34,7 +34,7 @@ public final class ClassData {
|
||||
return new ClassData(nameResolver, classProto);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public final class ClassData {
|
||||
return result.toByteArray();
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
package org.jetbrains.jet.descriptors.serialization;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
@@ -35,7 +35,7 @@ public class NameSerializationUtil {
|
||||
return new NameResolver(simpleNames, qualifiedNames);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ public class NameSerializationUtil {
|
||||
qualifiedNameTable.writeDelimitedTo(out);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ package org.jetbrains.jet.descriptors.serialization;
|
||||
|
||||
import com.google.protobuf.ExtensionRegistryLite;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
import org.jetbrains.jet.utils.UtilsPackage;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
@@ -34,7 +34,7 @@ public final class PackageData {
|
||||
return new PackageData(nameResolver, packageProto);
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ public final class PackageData {
|
||||
return result.toByteArray();
|
||||
}
|
||||
catch (IOException e) {
|
||||
throw ExceptionUtils.rethrow(e);
|
||||
throw UtilsPackage.rethrow(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -60,37 +60,6 @@ public interface AnnotationDeserializer {
|
||||
}
|
||||
};
|
||||
|
||||
AnnotationDeserializer EMPTY = new AnnotationDeserializer() {
|
||||
@NotNull
|
||||
@Override
|
||||
public Annotations loadClassAnnotations(@NotNull ClassDescriptor descriptor, @NotNull ProtoBuf.Class classProto) {
|
||||
return Annotations.EMPTY;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Annotations loadCallableAnnotations(
|
||||
@NotNull ClassOrPackageFragmentDescriptor container,
|
||||
@NotNull ProtoBuf.Callable proto,
|
||||
@NotNull NameResolver nameResolver,
|
||||
@NotNull AnnotatedCallableKind kind
|
||||
) {
|
||||
return Annotations.EMPTY;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Annotations loadValueParameterAnnotations(
|
||||
@NotNull ClassOrPackageFragmentDescriptor container,
|
||||
@NotNull ProtoBuf.Callable callable,
|
||||
@NotNull NameResolver nameResolver,
|
||||
@NotNull AnnotatedCallableKind kind,
|
||||
@NotNull ProtoBuf.Callable.ValueParameter proto
|
||||
) {
|
||||
return Annotations.EMPTY;
|
||||
}
|
||||
};
|
||||
|
||||
enum AnnotatedCallableKind {
|
||||
FUNCTION,
|
||||
PROPERTY,
|
||||
|
||||
@@ -38,7 +38,13 @@ public class AnalyzerFacadeForEverything {
|
||||
@NotNull ModuleDescriptor module) {
|
||||
|
||||
TopDownAnalysisParameters topDownAnalysisParameters = new TopDownAnalysisParameters(
|
||||
bodiesResolveContext.getStorageManager(), filesToAnalyzeCompletely, false, false, scriptParameters);
|
||||
bodiesResolveContext.getStorageManager(),
|
||||
bodiesResolveContext.getExceptionTracker(),
|
||||
filesToAnalyzeCompletely,
|
||||
false,
|
||||
false,
|
||||
scriptParameters
|
||||
);
|
||||
|
||||
bodiesResolveContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
|
||||
36
compiler/frontend/src/org/jetbrains/jet/context/context.kt
Normal file
36
compiler/frontend/src/org/jetbrains/jet/context/context.kt
Normal file
@@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package org.jetbrains.jet.context
|
||||
|
||||
import org.jetbrains.jet.storage.StorageManager
|
||||
import org.jetbrains.jet.storage.ExceptionTracker
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager
|
||||
|
||||
trait GlobalContext {
|
||||
val storageManager: StorageManager
|
||||
val exceptionTracker: ExceptionTracker
|
||||
}
|
||||
|
||||
open class GlobalContextImpl(
|
||||
override val storageManager: LockBasedStorageManager,
|
||||
override val exceptionTracker: ExceptionTracker
|
||||
) : GlobalContext
|
||||
|
||||
fun GlobalContext(): GlobalContextImpl {
|
||||
val tracker = ExceptionTracker()
|
||||
return GlobalContextImpl(LockBasedStorageManager.createWithExceptionHandling(tracker), tracker)
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,16 +16,14 @@
|
||||
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.BodiesResolveContext;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||
@@ -35,27 +33,28 @@ import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForBodyResolve {
|
||||
|
||||
private final BodyResolver bodyResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final StorageManager storageManager;
|
||||
private final Project project;
|
||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||
private final StorageManager storageManager;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final BodiesResolveContext bodiesResolveContext;
|
||||
private final ModuleDescriptor moduleDescriptor;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final CallResolver callResolver;
|
||||
private final ArgumentTypeResolver argumentTypeResolver;
|
||||
@@ -65,9 +64,11 @@ public class InjectorForBodyResolve {
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final TypeResolver typeResolver;
|
||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||
|
||||
@@ -78,28 +79,28 @@ public class InjectorForBodyResolve {
|
||||
@NotNull BodiesResolveContext bodiesResolveContext,
|
||||
@NotNull ModuleDescriptor moduleDescriptor
|
||||
) {
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.project = project;
|
||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.bodiesResolveContext = bodiesResolveContext;
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.annotationResolver = new AnnotationResolver();
|
||||
this.callResolver = new CallResolver();
|
||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(storageManager, platformToKotlinClassMap);
|
||||
this.expressionTypingServices = new ExpressionTypingServices(bodiesResolveContext, platformToKotlinClassMap);
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.typeResolver = new TypeResolver();
|
||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.candidateResolver = new CandidateResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||
|
||||
@@ -115,8 +116,6 @@ public class InjectorForBodyResolve {
|
||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.bodyResolver.setTrace(bindingTrace);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
annotationResolver.setCallResolver(callResolver);
|
||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
@@ -157,6 +156,8 @@ public class InjectorForBodyResolve {
|
||||
|
||||
declarationsChecker.setTrace(bindingTrace);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
scriptBodyResolver.setTrace(bindingTrace);
|
||||
@@ -173,20 +174,4 @@ public class InjectorForBodyResolve {
|
||||
return this.bodyResolver;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return this.project;
|
||||
}
|
||||
|
||||
public TopDownAnalysisParameters getTopDownAnalysisParameters() {
|
||||
return this.topDownAnalysisParameters;
|
||||
}
|
||||
|
||||
public BindingTrace getBindingTrace() {
|
||||
return this.bindingTrace;
|
||||
}
|
||||
|
||||
public BodiesResolveContext getBodiesResolveContext() {
|
||||
return this.bodiesResolveContext;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -17,98 +17,93 @@
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.context.GlobalContextImpl;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.declarations.DeclarationProviderFactory;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ResolveSession;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||
import org.jetbrains.jet.lang.resolve.lazy.ScopeProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForLazyResolve {
|
||||
|
||||
private final Project project;
|
||||
private final ResolveSession resolveSession;
|
||||
private final ModuleDescriptor moduleDescriptor;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final TypeResolver typeResolver;
|
||||
private final ScopeProvider scopeProvider;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final GlobalContextImpl globalContext;
|
||||
private final LockBasedStorageManager lockBasedStorageManager;
|
||||
private final ModuleDescriptorImpl moduleDescriptor;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final StorageManager storageManager;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final CallExpressionResolver callExpressionResolver;
|
||||
private final DeclarationProviderFactory declarationProviderFactory;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final ResolveSession resolveSession;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final CallResolver callResolver;
|
||||
private final ArgumentTypeResolver argumentTypeResolver;
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final CallExpressionResolver callExpressionResolver;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final TypeResolver typeResolver;
|
||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScopeProvider scopeProvider;
|
||||
|
||||
public InjectorForLazyResolve(
|
||||
@NotNull Project project,
|
||||
@NotNull ResolveSession resolveSession,
|
||||
@NotNull ModuleDescriptor moduleDescriptor
|
||||
@NotNull GlobalContextImpl globalContext,
|
||||
@NotNull ModuleDescriptorImpl moduleDescriptor,
|
||||
@NotNull DeclarationProviderFactory declarationProviderFactory,
|
||||
@NotNull BindingTrace bindingTrace
|
||||
) {
|
||||
this.project = project;
|
||||
this.resolveSession = resolveSession;
|
||||
this.globalContext = globalContext;
|
||||
this.lockBasedStorageManager = globalContext.getStorageManager();
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.storageManager = resolveSession.getStorageManager();
|
||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(storageManager, platformToKotlinClassMap);
|
||||
this.typeResolver = new TypeResolver();
|
||||
this.scopeProvider = new ScopeProvider(resolveSession);
|
||||
this.declarationProviderFactory = declarationProviderFactory;
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.resolveSession = new ResolveSession(project, globalContext, moduleDescriptor, declarationProviderFactory, bindingTrace);
|
||||
this.annotationResolver = new AnnotationResolver();
|
||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.callResolver = new CallResolver();
|
||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.typeResolver = new TypeResolver();
|
||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.candidateResolver = new CandidateResolver();
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scopeProvider = new ScopeProvider(getResolveSession());
|
||||
|
||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.descriptorResolver.setStorageManager(storageManager);
|
||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
||||
this.resolveSession.setAnnotationResolve(annotationResolver);
|
||||
this.resolveSession.setDescriptorResolver(descriptorResolver);
|
||||
this.resolveSession.setJetImportFactory(jetImportsFactory);
|
||||
this.resolveSession.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
this.resolveSession.setScopeProvider(scopeProvider);
|
||||
this.resolveSession.setTypeResolver(typeResolver);
|
||||
|
||||
this.expressionTypingServices.setAnnotationResolver(annotationResolver);
|
||||
this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
|
||||
this.expressionTypingServices.setCallResolver(callResolver);
|
||||
this.expressionTypingServices.setDescriptorResolver(descriptorResolver);
|
||||
this.expressionTypingServices.setExtensionProvider(callResolverExtensionProvider);
|
||||
this.expressionTypingServices.setProject(project);
|
||||
this.expressionTypingServices.setTypeResolver(typeResolver);
|
||||
|
||||
this.typeResolver.setAnnotationResolver(annotationResolver);
|
||||
this.typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||
this.typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
|
||||
this.annotationResolver.setCallResolver(callResolver);
|
||||
this.annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
this.jetImportsFactory.setProject(project);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
annotationResolver.setCallResolver(callResolver);
|
||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
callResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||
callResolver.setCandidateResolver(candidateResolver);
|
||||
@@ -118,40 +113,40 @@ public class InjectorForLazyResolve {
|
||||
argumentTypeResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
argumentTypeResolver.setTypeResolver(typeResolver);
|
||||
|
||||
expressionTypingServices.setAnnotationResolver(annotationResolver);
|
||||
expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
|
||||
expressionTypingServices.setCallResolver(callResolver);
|
||||
expressionTypingServices.setDescriptorResolver(descriptorResolver);
|
||||
expressionTypingServices.setExtensionProvider(callResolverExtensionProvider);
|
||||
expressionTypingServices.setProject(project);
|
||||
expressionTypingServices.setTypeResolver(typeResolver);
|
||||
|
||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
descriptorResolver.setStorageManager(lockBasedStorageManager);
|
||||
descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
typeResolver.setAnnotationResolver(annotationResolver);
|
||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
|
||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||
|
||||
jetImportsFactory.setProject(project);
|
||||
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() {
|
||||
}
|
||||
|
||||
public DescriptorResolver getDescriptorResolver() {
|
||||
return this.descriptorResolver;
|
||||
}
|
||||
|
||||
public ExpressionTypingServices getExpressionTypingServices() {
|
||||
return this.expressionTypingServices;
|
||||
}
|
||||
|
||||
public TypeResolver getTypeResolver() {
|
||||
return this.typeResolver;
|
||||
}
|
||||
|
||||
public ScopeProvider getScopeProvider() {
|
||||
return this.scopeProvider;
|
||||
}
|
||||
|
||||
public AnnotationResolver getAnnotationResolver() {
|
||||
return this.annotationResolver;
|
||||
}
|
||||
|
||||
public QualifiedExpressionResolver getQualifiedExpressionResolver() {
|
||||
return this.qualifiedExpressionResolver;
|
||||
}
|
||||
|
||||
public JetImportsFactory getJetImportsFactory() {
|
||||
return this.jetImportsFactory;
|
||||
public ResolveSession getResolveSession() {
|
||||
return this.resolveSession;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,12 +16,12 @@
|
||||
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.storage.LockBasedStorageManager;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.context.GlobalContext;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||
@@ -31,18 +31,20 @@ import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForMacros {
|
||||
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final LockBasedStorageManager lockBasedStorageManager;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final Project project;
|
||||
private final ModuleDescriptor moduleDescriptor;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final GlobalContext globalContext;
|
||||
private final StorageManager storageManager;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final CallResolver callResolver;
|
||||
private final ArgumentTypeResolver argumentTypeResolver;
|
||||
@@ -52,17 +54,18 @@ public class InjectorForMacros {
|
||||
private final CallExpressionResolver callExpressionResolver;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
|
||||
public InjectorForMacros(
|
||||
@NotNull Project project,
|
||||
@NotNull ModuleDescriptor moduleDescriptor
|
||||
) {
|
||||
this.lockBasedStorageManager = new LockBasedStorageManager();
|
||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(lockBasedStorageManager, platformToKotlinClassMap);
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.project = project;
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.platformToKotlinClassMap = moduleDescriptor.getPlatformToKotlinClassMap();
|
||||
this.globalContext = org.jetbrains.jet.context.ContextPackage.GlobalContext();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(globalContext, platformToKotlinClassMap);
|
||||
this.storageManager = globalContext.getStorageManager();
|
||||
this.annotationResolver = new AnnotationResolver();
|
||||
this.callResolver = new CallResolver();
|
||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||
@@ -72,6 +75,7 @@ public class InjectorForMacros {
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
|
||||
this.expressionTypingServices.setAnnotationResolver(annotationResolver);
|
||||
this.expressionTypingServices.setCallExpressionResolver(callExpressionResolver);
|
||||
@@ -103,7 +107,7 @@ public class InjectorForMacros {
|
||||
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
descriptorResolver.setStorageManager(lockBasedStorageManager);
|
||||
descriptorResolver.setStorageManager(storageManager);
|
||||
descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
@@ -118,8 +122,4 @@ public class InjectorForMacros {
|
||||
return this.expressionTypingServices;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return this.project;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -16,78 +16,79 @@
|
||||
|
||||
package org.jetbrains.jet.di;
|
||||
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisParameters;
|
||||
import org.jetbrains.jet.storage.StorageManager;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptorImpl;
|
||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.TopDownAnalysisContext;
|
||||
import org.jetbrains.jet.lang.resolve.MutablePackageFragmentProvider;
|
||||
import org.jetbrains.jet.lang.PlatformToKotlinClassMap;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||
import org.jetbrains.jet.lang.types.DependencyClassByQualifiedNameResolverDummyImpl;
|
||||
import org.jetbrains.jet.lang.resolve.BodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.AnnotationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.ArgumentTypeResolver;
|
||||
import org.jetbrains.jet.lang.types.expressions.ExpressionTypingServices;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeResolver;
|
||||
import org.jetbrains.jet.lang.resolve.QualifiedExpressionResolver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CallResolverExtensionProvider;
|
||||
import org.jetbrains.jet.lang.resolve.calls.CandidateResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ControlFlowAnalyzer;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationsChecker;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DeclarationResolver;
|
||||
import org.jetbrains.jet.lang.resolve.ImportsResolver;
|
||||
import org.jetbrains.jet.lang.psi.JetImportsFactory;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptHeaderResolver;
|
||||
import org.jetbrains.jet.lang.resolve.OverloadResolver;
|
||||
import org.jetbrains.jet.lang.resolve.OverrideResolver;
|
||||
import org.jetbrains.jet.lang.resolve.TypeHierarchyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.DelegatedPropertyResolver;
|
||||
import org.jetbrains.jet.lang.resolve.FunctionAnalyzerExtension;
|
||||
import org.jetbrains.jet.lang.resolve.ScriptBodyResolver;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import javax.annotation.PreDestroy;
|
||||
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.GenerateInjectors. DO NOT EDIT! */
|
||||
/* This file is generated by org.jetbrains.jet.generators.injectors.InjectorsPackage. DO NOT EDIT! */
|
||||
@SuppressWarnings("ALL")
|
||||
public class InjectorForTopDownAnalyzerBasic {
|
||||
|
||||
private final TopDownAnalyzer topDownAnalyzer;
|
||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final StorageManager storageManager;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final Project project;
|
||||
private final TopDownAnalysisParameters topDownAnalysisParameters;
|
||||
private final StorageManager storageManager;
|
||||
private final BindingTrace bindingTrace;
|
||||
private final ModuleDescriptorImpl moduleDescriptor;
|
||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
||||
private final TopDownAnalyzer topDownAnalyzer;
|
||||
private final TopDownAnalysisContext topDownAnalysisContext;
|
||||
private final MutablePackageFragmentProvider mutablePackageFragmentProvider;
|
||||
private final PlatformToKotlinClassMap platformToKotlinClassMap;
|
||||
private final DeclarationResolver declarationResolver;
|
||||
private final DependencyClassByQualifiedNameResolverDummyImpl dependencyClassByQualifiedNameResolverDummy;
|
||||
private final BodyResolver bodyResolver;
|
||||
private final AnnotationResolver annotationResolver;
|
||||
private final CallResolver callResolver;
|
||||
private final ArgumentTypeResolver argumentTypeResolver;
|
||||
private final ExpressionTypingServices expressionTypingServices;
|
||||
private final CallExpressionResolver callExpressionResolver;
|
||||
private final DescriptorResolver descriptorResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final TypeResolver typeResolver;
|
||||
private final QualifiedExpressionResolver qualifiedExpressionResolver;
|
||||
private final CallResolverExtensionProvider callResolverExtensionProvider;
|
||||
private final CandidateResolver candidateResolver;
|
||||
private final ControlFlowAnalyzer controlFlowAnalyzer;
|
||||
private final DeclarationsChecker declarationsChecker;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
private final DeclarationResolver declarationResolver;
|
||||
private final ImportsResolver importsResolver;
|
||||
private final JetImportsFactory jetImportsFactory;
|
||||
private final ScriptHeaderResolver scriptHeaderResolver;
|
||||
private final OverloadResolver overloadResolver;
|
||||
private final OverrideResolver overrideResolver;
|
||||
private final TypeHierarchyResolver typeHierarchyResolver;
|
||||
private final DelegatedPropertyResolver delegatedPropertyResolver;
|
||||
private final FunctionAnalyzerExtension functionAnalyzerExtension;
|
||||
private final ScriptBodyResolver scriptBodyResolver;
|
||||
|
||||
public InjectorForTopDownAnalyzerBasic(
|
||||
@NotNull Project project,
|
||||
@@ -96,39 +97,39 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
@NotNull ModuleDescriptorImpl moduleDescriptor,
|
||||
@NotNull PlatformToKotlinClassMap platformToKotlinClassMap
|
||||
) {
|
||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.project = project;
|
||||
this.topDownAnalysisParameters = topDownAnalysisParameters;
|
||||
this.storageManager = topDownAnalysisParameters.getStorageManager();
|
||||
this.bindingTrace = bindingTrace;
|
||||
this.moduleDescriptor = moduleDescriptor;
|
||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
||||
this.topDownAnalyzer = new TopDownAnalyzer();
|
||||
this.topDownAnalysisContext = new TopDownAnalysisContext();
|
||||
this.mutablePackageFragmentProvider = new MutablePackageFragmentProvider(getModuleDescriptor());
|
||||
this.platformToKotlinClassMap = platformToKotlinClassMap;
|
||||
this.declarationResolver = new DeclarationResolver();
|
||||
this.dependencyClassByQualifiedNameResolverDummy = new DependencyClassByQualifiedNameResolverDummyImpl();
|
||||
this.bodyResolver = new BodyResolver();
|
||||
this.annotationResolver = new AnnotationResolver();
|
||||
this.callResolver = new CallResolver();
|
||||
this.argumentTypeResolver = new ArgumentTypeResolver();
|
||||
this.expressionTypingServices = new ExpressionTypingServices(storageManager, platformToKotlinClassMap);
|
||||
this.expressionTypingServices = new ExpressionTypingServices(getTopDownAnalysisContext(), platformToKotlinClassMap);
|
||||
this.callExpressionResolver = new CallExpressionResolver();
|
||||
this.descriptorResolver = new DescriptorResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.typeResolver = new TypeResolver();
|
||||
this.qualifiedExpressionResolver = new QualifiedExpressionResolver();
|
||||
this.callResolverExtensionProvider = new CallResolverExtensionProvider();
|
||||
this.candidateResolver = new CandidateResolver();
|
||||
this.controlFlowAnalyzer = new ControlFlowAnalyzer();
|
||||
this.declarationsChecker = new DeclarationsChecker();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
this.declarationResolver = new DeclarationResolver();
|
||||
this.importsResolver = new ImportsResolver();
|
||||
this.jetImportsFactory = new JetImportsFactory();
|
||||
this.scriptHeaderResolver = new ScriptHeaderResolver();
|
||||
this.overloadResolver = new OverloadResolver();
|
||||
this.overrideResolver = new OverrideResolver();
|
||||
this.typeHierarchyResolver = new TypeHierarchyResolver();
|
||||
this.delegatedPropertyResolver = new DelegatedPropertyResolver();
|
||||
this.functionAnalyzerExtension = new FunctionAnalyzerExtension();
|
||||
this.scriptBodyResolver = new ScriptBodyResolver();
|
||||
|
||||
this.topDownAnalyzer.setBodyResolver(bodyResolver);
|
||||
this.topDownAnalyzer.setContext(topDownAnalysisContext);
|
||||
@@ -143,35 +144,17 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
|
||||
this.topDownAnalysisContext.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
|
||||
this.bodyResolver.setAnnotationResolver(annotationResolver);
|
||||
this.bodyResolver.setCallResolver(callResolver);
|
||||
this.bodyResolver.setContext(topDownAnalysisContext);
|
||||
this.bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
this.bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
this.bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
this.bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||
this.bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||
this.bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.bodyResolver.setTrace(bindingTrace);
|
||||
|
||||
this.controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
this.controlFlowAnalyzer.setTrace(bindingTrace);
|
||||
|
||||
this.declarationsChecker.setTrace(bindingTrace);
|
||||
|
||||
this.descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
this.descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
this.descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
this.descriptorResolver.setStorageManager(storageManager);
|
||||
this.descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||
declarationResolver.setContext(topDownAnalysisContext);
|
||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||
declarationResolver.setImportsResolver(importsResolver);
|
||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
declarationResolver.setTrace(bindingTrace);
|
||||
bodyResolver.setAnnotationResolver(annotationResolver);
|
||||
bodyResolver.setCallResolver(callResolver);
|
||||
bodyResolver.setContext(topDownAnalysisContext);
|
||||
bodyResolver.setControlFlowAnalyzer(controlFlowAnalyzer);
|
||||
bodyResolver.setDeclarationsChecker(declarationsChecker);
|
||||
bodyResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
bodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
bodyResolver.setFunctionAnalyzerExtension(functionAnalyzerExtension);
|
||||
bodyResolver.setScriptBodyResolverResolver(scriptBodyResolver);
|
||||
bodyResolver.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
bodyResolver.setTrace(bindingTrace);
|
||||
|
||||
annotationResolver.setCallResolver(callResolver);
|
||||
annotationResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
@@ -194,12 +177,38 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
|
||||
callExpressionResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
descriptorResolver.setAnnotationResolver(annotationResolver);
|
||||
descriptorResolver.setDelegatedPropertyResolver(delegatedPropertyResolver);
|
||||
descriptorResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
descriptorResolver.setStorageManager(storageManager);
|
||||
descriptorResolver.setTypeResolver(typeResolver);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
typeResolver.setAnnotationResolver(annotationResolver);
|
||||
typeResolver.setModuleDescriptor(moduleDescriptor);
|
||||
typeResolver.setQualifiedExpressionResolver(qualifiedExpressionResolver);
|
||||
|
||||
candidateResolver.setArgumentTypeResolver(argumentTypeResolver);
|
||||
|
||||
controlFlowAnalyzer.setTopDownAnalysisParameters(topDownAnalysisParameters);
|
||||
controlFlowAnalyzer.setTrace(bindingTrace);
|
||||
|
||||
declarationsChecker.setTrace(bindingTrace);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
scriptBodyResolver.setTrace(bindingTrace);
|
||||
|
||||
declarationResolver.setAnnotationResolver(annotationResolver);
|
||||
declarationResolver.setContext(topDownAnalysisContext);
|
||||
declarationResolver.setDescriptorResolver(descriptorResolver);
|
||||
declarationResolver.setImportsResolver(importsResolver);
|
||||
declarationResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
declarationResolver.setTrace(bindingTrace);
|
||||
|
||||
importsResolver.setContext(topDownAnalysisContext);
|
||||
importsResolver.setImportsFactory(jetImportsFactory);
|
||||
importsResolver.setModuleDescriptor(moduleDescriptor);
|
||||
@@ -228,20 +237,16 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
typeHierarchyResolver.setScriptHeaderResolver(scriptHeaderResolver);
|
||||
typeHierarchyResolver.setTrace(bindingTrace);
|
||||
|
||||
delegatedPropertyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
|
||||
functionAnalyzerExtension.setTrace(bindingTrace);
|
||||
|
||||
scriptBodyResolver.setContext(topDownAnalysisContext);
|
||||
scriptBodyResolver.setExpressionTypingServices(expressionTypingServices);
|
||||
scriptBodyResolver.setTrace(bindingTrace);
|
||||
|
||||
}
|
||||
|
||||
@PreDestroy
|
||||
public void destroy() {
|
||||
}
|
||||
|
||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||
return this.moduleDescriptor;
|
||||
}
|
||||
|
||||
public TopDownAnalyzer getTopDownAnalyzer() {
|
||||
return this.topDownAnalyzer;
|
||||
}
|
||||
@@ -250,36 +255,4 @@ public class InjectorForTopDownAnalyzerBasic {
|
||||
return this.topDownAnalysisContext;
|
||||
}
|
||||
|
||||
public BodyResolver getBodyResolver() {
|
||||
return this.bodyResolver;
|
||||
}
|
||||
|
||||
public ControlFlowAnalyzer getControlFlowAnalyzer() {
|
||||
return this.controlFlowAnalyzer;
|
||||
}
|
||||
|
||||
public DeclarationsChecker getDeclarationsChecker() {
|
||||
return this.declarationsChecker;
|
||||
}
|
||||
|
||||
public DescriptorResolver getDescriptorResolver() {
|
||||
return this.descriptorResolver;
|
||||
}
|
||||
|
||||
public Project getProject() {
|
||||
return this.project;
|
||||
}
|
||||
|
||||
public TopDownAnalysisParameters getTopDownAnalysisParameters() {
|
||||
return this.topDownAnalysisParameters;
|
||||
}
|
||||
|
||||
public BindingTrace getBindingTrace() {
|
||||
return this.bindingTrace;
|
||||
}
|
||||
|
||||
public ModuleDescriptorImpl getModuleDescriptor() {
|
||||
return this.moduleDescriptor;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ import org.jetbrains.jet.lang.psi.*;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.BindingContextUtils;
|
||||
import org.jetbrains.jet.lang.resolve.BindingTrace;
|
||||
import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastReceiver;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedValueArgument;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.VariableAsFunctionResolvedCall;
|
||||
@@ -793,8 +792,10 @@ public class JetControlFlowProcessor {
|
||||
if (delegate != null) {
|
||||
generateInstructions(delegate, NOT_IN_CONDITION);
|
||||
}
|
||||
for (JetPropertyAccessor accessor : property.getAccessors()) {
|
||||
generateInstructions(accessor, NOT_IN_CONDITION);
|
||||
if (JetPsiUtil.isLocal(property)) {
|
||||
for (JetPropertyAccessor accessor : property.getAccessors()) {
|
||||
generateInstructions(accessor, NOT_IN_CONDITION);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -916,16 +917,6 @@ public class JetControlFlowProcessor {
|
||||
JetObjectDeclaration declaration = expression.getObjectDeclaration();
|
||||
generateInstructions(declaration, context);
|
||||
|
||||
List<JetDeclaration> declarations = declaration.getDeclarations();
|
||||
List<JetDeclaration> functions = Lists.newArrayList();
|
||||
for (JetDeclaration localDeclaration : declarations) {
|
||||
if (!(localDeclaration instanceof JetProperty) && !(localDeclaration instanceof JetClassInitializer)) {
|
||||
functions.add(localDeclaration);
|
||||
}
|
||||
}
|
||||
for (JetDeclaration function : functions) {
|
||||
generateInstructions(function, context);
|
||||
}
|
||||
builder.createAnonymousObject(expression);
|
||||
}
|
||||
|
||||
@@ -961,6 +952,13 @@ public class JetControlFlowProcessor {
|
||||
generateInstructions(specifier, context);
|
||||
}
|
||||
List<JetDeclaration> declarations = classOrObject.getDeclarations();
|
||||
if (JetPsiUtil.isLocal(classOrObject)) {
|
||||
for (JetDeclaration declaration : declarations) {
|
||||
generateInstructions(declaration, context);
|
||||
}
|
||||
return;
|
||||
}
|
||||
//For top-level and inner classes and objects functions are collected and checked separately.
|
||||
for (JetDeclaration declaration : declarations) {
|
||||
if (declaration instanceof JetProperty || declaration instanceof JetClassInitializer) {
|
||||
generateInstructions(declaration, context);
|
||||
@@ -1064,10 +1062,6 @@ public class JetControlFlowProcessor {
|
||||
else if (receiver instanceof TransientReceiver) {
|
||||
// Do nothing
|
||||
}
|
||||
else if (receiver instanceof AutoCastReceiver) {
|
||||
// No cast instruction in our CFG
|
||||
generateReceiver(((AutoCastReceiver) receiver).getOriginal());
|
||||
}
|
||||
else {
|
||||
throw new IllegalArgumentException("Unknown receiver kind: " + receiver);
|
||||
}
|
||||
|
||||
@@ -91,29 +91,29 @@ public class JetFlowInformationProvider {
|
||||
return pseudocodeVariablesData;
|
||||
}
|
||||
|
||||
public void checkFunction(
|
||||
@NotNull JetDeclarationWithBody function,
|
||||
@NotNull JetType expectedReturnType,
|
||||
boolean isLocalObject
|
||||
) {
|
||||
boolean isPropertyAccessor = function instanceof JetPropertyAccessor;
|
||||
if (!isPropertyAccessor) {
|
||||
recordInitializedVariables();
|
||||
}
|
||||
public void checkForLocalClassOrObjectMode() {
|
||||
// Local classes and objects are analyzed twice: when TopDownAnalyzer processes it and as a part of its container.
|
||||
// Almost all checks can be done when the container is analyzed
|
||||
// except recording initialized variables (this information is needed for DeclarationChecker).
|
||||
recordInitializedVariables();
|
||||
}
|
||||
|
||||
public void checkDeclaration() {
|
||||
|
||||
recordInitializedVariables();
|
||||
|
||||
checkDefiniteReturn(expectedReturnType);
|
||||
checkLocalFunctions();
|
||||
|
||||
if (isLocalObject) return;
|
||||
|
||||
if (!isPropertyAccessor) {
|
||||
// Property accessor is checked through initialization of a class/object or package properties (at 'checkDeclarationContainer')
|
||||
markUninitializedVariables();
|
||||
}
|
||||
markUninitializedVariables();
|
||||
|
||||
markUnusedVariables();
|
||||
|
||||
markUnusedLiteralsInBlock();
|
||||
}
|
||||
|
||||
public void checkFunction(@Nullable JetType expectedReturnType) {
|
||||
|
||||
checkDefiniteReturn(expectedReturnType != null ? expectedReturnType : NO_EXPECTED_TYPE);
|
||||
|
||||
markTailCalls();
|
||||
}
|
||||
@@ -181,16 +181,17 @@ public class JetFlowInformationProvider {
|
||||
private void checkLocalFunctions() {
|
||||
for (LocalFunctionDeclarationInstruction localDeclarationInstruction : pseudocode.getLocalDeclarations()) {
|
||||
JetElement element = localDeclarationInstruction.getElement();
|
||||
if (element instanceof JetNamedFunction) {
|
||||
JetNamedFunction localFunction = (JetNamedFunction) element;
|
||||
SimpleFunctionDescriptor functionDescriptor = trace.getBindingContext().get(BindingContext.FUNCTION, localFunction);
|
||||
if (element instanceof JetDeclarationWithBody) {
|
||||
JetDeclarationWithBody localDeclaration = (JetDeclarationWithBody) element;
|
||||
if (localDeclaration instanceof JetFunctionLiteral) continue;
|
||||
CallableDescriptor functionDescriptor =
|
||||
(CallableDescriptor) trace.getBindingContext().get(BindingContext.DECLARATION_TO_DESCRIPTOR, localDeclaration);
|
||||
JetType expectedType = functionDescriptor != null ? functionDescriptor.getReturnType() : null;
|
||||
|
||||
JetFlowInformationProvider providerForLocalDeclaration =
|
||||
new JetFlowInformationProvider(localFunction, trace, localDeclarationInstruction.getBody());
|
||||
new JetFlowInformationProvider(localDeclaration, trace, localDeclarationInstruction.getBody());
|
||||
|
||||
providerForLocalDeclaration.checkDefiniteReturn(expectedType != null ? expectedType : NO_EXPECTED_TYPE);
|
||||
providerForLocalDeclaration.markTailCalls();
|
||||
providerForLocalDeclaration.checkFunction(expectedType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ public class DefaultErrorMessages {
|
||||
MAP.put(PLATFORM_CLASS_MAPPED_TO_KOTLIN, "This class shouldn''t be used in Kotlin. Use {0} instead.", CLASSES_OR_SEPARATED);
|
||||
|
||||
MAP.put(CANNOT_INFER_PARAMETER_TYPE,
|
||||
"Cannot infer a type for this parameter. To specify it explicitly use the {(p : Type) => ...} notation");
|
||||
"Cannot infer a type for this parameter. To specify it explicitly use the {(p : Type) -> ...} notation");
|
||||
|
||||
MAP.put(NO_BACKING_FIELD_ABSTRACT_PROPERTY, "This property doesn't have a backing field, because it's abstract");
|
||||
MAP.put(NO_BACKING_FIELD_CUSTOM_ACCESSORS,
|
||||
|
||||
@@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.diagnostics.rendering;
|
||||
import com.google.common.base.Predicate;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import com.intellij.openapi.diagnostic.Logger;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.util.Function;
|
||||
@@ -30,8 +31,10 @@ import org.jetbrains.jet.lang.psi.JetClassOrObject;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.calls.inference.*;
|
||||
import org.jetbrains.jet.lang.resolve.calls.model.ResolvedCall;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.types.JetType;
|
||||
import org.jetbrains.jet.lang.types.TypeSubstitutor;
|
||||
import org.jetbrains.jet.lang.types.TypeUtils;
|
||||
import org.jetbrains.jet.lang.types.Variance;
|
||||
import org.jetbrains.jet.lang.types.checker.JetTypeChecker;
|
||||
import org.jetbrains.jet.renderer.DescriptorRenderer;
|
||||
@@ -40,10 +43,15 @@ import org.jetbrains.jet.renderer.Renderer;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.jetbrains.jet.lang.diagnostics.rendering.TabledDescriptorRenderer.*;
|
||||
import static org.jetbrains.jet.lang.resolve.calls.inference.TypeBounds.BoundKind.LOWER_BOUND;
|
||||
import static org.jetbrains.jet.lang.resolve.calls.inference.TypeBounds.BoundKind.UPPER_BOUND;
|
||||
|
||||
public class Renderers {
|
||||
private static final Logger LOG = Logger.getInstance(Renderers.class);
|
||||
|
||||
public static final Renderer<Object> TO_STRING = new Renderer<Object>() {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -75,7 +83,7 @@ public class Renderers {
|
||||
return element.getText();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
public static final Renderer<JetClassOrObject> RENDER_CLASS_OR_OBJECT = new Renderer<JetClassOrObject>() {
|
||||
@NotNull
|
||||
@Override
|
||||
@@ -166,7 +174,8 @@ public class Renderers {
|
||||
|
||||
public static TabledDescriptorRenderer renderConflictingSubstitutionsInferenceError(InferenceErrorData inferenceErrorData,
|
||||
TabledDescriptorRenderer result) {
|
||||
assert inferenceErrorData.constraintSystem.getStatus().hasConflictingConstraints();
|
||||
LOG.assertTrue(inferenceErrorData.constraintSystem.getStatus().hasConflictingConstraints(), renderDebugMessage(
|
||||
"Conflicting substitutions inference error renderer is applied for incorrect status", inferenceErrorData));
|
||||
|
||||
Collection<CallableDescriptor> substitutedDescriptors = Lists.newArrayList();
|
||||
Collection<TypeSubstitutor> substitutors = ConstraintsUtil.getSubstitutorsForConflictingParameters(
|
||||
@@ -177,7 +186,10 @@ public class Renderers {
|
||||
}
|
||||
|
||||
TypeParameterDescriptor firstConflictingParameter = ConstraintsUtil.getFirstConflictingParameter(inferenceErrorData.constraintSystem);
|
||||
assert firstConflictingParameter != null;
|
||||
if (firstConflictingParameter == null) {
|
||||
LOG.error(renderDebugMessage("There is no conflicting parameter for 'conflicting constraints' error.", inferenceErrorData));
|
||||
return result;
|
||||
}
|
||||
|
||||
result.text(newText()
|
||||
.normal("Cannot infer type parameter ")
|
||||
@@ -227,8 +239,7 @@ public class Renderers {
|
||||
TabledDescriptorRenderer renderer) {
|
||||
Predicate<ConstraintPosition> isErrorPosition = new Predicate<ConstraintPosition>() {
|
||||
@Override
|
||||
public boolean apply(@Nullable ConstraintPosition constraintPosition) {
|
||||
assert constraintPosition != null;
|
||||
public boolean apply(ConstraintPosition constraintPosition) {
|
||||
return inferenceErrorData.constraintSystem.getStatus().hasTypeConstructorMismatchAt(constraintPosition);
|
||||
}
|
||||
};
|
||||
@@ -242,7 +253,7 @@ public class Renderers {
|
||||
}
|
||||
|
||||
public static TabledDescriptorRenderer renderNoInformationForParameterError(InferenceErrorData inferenceErrorData,
|
||||
TabledDescriptorRenderer renderer) {
|
||||
TabledDescriptorRenderer result) {
|
||||
TypeParameterDescriptor firstUnknownParameter = null;
|
||||
for (TypeParameterDescriptor typeParameter : inferenceErrorData.constraintSystem.getTypeVariables()) {
|
||||
if (inferenceErrorData.constraintSystem.getTypeBounds(typeParameter).isEmpty()) {
|
||||
@@ -250,9 +261,12 @@ public class Renderers {
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert firstUnknownParameter != null;
|
||||
if (firstUnknownParameter == null) {
|
||||
LOG.error(renderDebugMessage("There is no unknown parameter for 'no information for parameter error'.", inferenceErrorData));
|
||||
return result;
|
||||
}
|
||||
|
||||
return renderer
|
||||
return result
|
||||
.text(newText().normal("Not enough information to infer parameter ")
|
||||
.strong(firstUnknownParameter.getName())
|
||||
.normal(" in "))
|
||||
@@ -263,12 +277,11 @@ public class Renderers {
|
||||
|
||||
@NotNull
|
||||
public static TabledDescriptorRenderer renderUpperBoundViolatedInferenceError(InferenceErrorData inferenceErrorData, TabledDescriptorRenderer result) {
|
||||
String errorMessage = "Rendering 'upper bound violated' error for " + inferenceErrorData.descriptor;
|
||||
|
||||
TypeParameterDescriptor typeParameterDescriptor = null;
|
||||
ConstraintSystemImpl constraintSystem = (ConstraintSystemImpl) inferenceErrorData.constraintSystem;
|
||||
ConstraintSystemStatus status = constraintSystem.getStatus();
|
||||
assert status.hasViolatedUpperBound();
|
||||
LOG.assertTrue(status.hasViolatedUpperBound(), renderDebugMessage(
|
||||
"Upper bound violated renderer is applied for incorrect status", inferenceErrorData));
|
||||
|
||||
ConstraintSystem systemWithoutWeakConstraints = constraintSystem.getSystemWithoutWeakConstraints();
|
||||
for (TypeParameterDescriptor typeParameter : inferenceErrorData.descriptor.getTypeParameters()) {
|
||||
@@ -279,10 +292,18 @@ public class Renderers {
|
||||
if (typeParameterDescriptor == null && status.hasConflictingConstraints()) {
|
||||
return renderConflictingSubstitutionsInferenceError(inferenceErrorData, result);
|
||||
}
|
||||
assert typeParameterDescriptor != null : errorMessage;
|
||||
if (typeParameterDescriptor == null) {
|
||||
LOG.error(renderDebugMessage("There is no type parameter with violated upper bound for 'upper bound violated' error",
|
||||
inferenceErrorData));
|
||||
return result;
|
||||
}
|
||||
|
||||
JetType inferredValueForTypeParameter = systemWithoutWeakConstraints.getTypeBounds(typeParameterDescriptor).getValue();
|
||||
assert inferredValueForTypeParameter != null : errorMessage;
|
||||
if (inferredValueForTypeParameter == null) {
|
||||
LOG.error(renderDebugMessage("System without weak constraints is not successful, there is no value for type parameter " +
|
||||
typeParameterDescriptor.getName() + "\n: " + systemWithoutWeakConstraints, inferenceErrorData));
|
||||
return result;
|
||||
}
|
||||
|
||||
result.text(newText().normal("Type parameter bound for ").strong(typeParameterDescriptor.getName()).normal(" in "))
|
||||
.table(newTable().
|
||||
@@ -298,7 +319,11 @@ public class Renderers {
|
||||
break;
|
||||
}
|
||||
}
|
||||
assert violatedUpperBound != null : errorMessage;
|
||||
if (violatedUpperBound == null) {
|
||||
LOG.error(renderDebugMessage("Type parameter (chosen as violating its upper bound)" + typeParameterDescriptor.getName() +
|
||||
" violates no bounds after substitution", inferenceErrorData));
|
||||
return result;
|
||||
}
|
||||
|
||||
Renderer<JetType> typeRenderer = result.getTypeRenderer();
|
||||
result.text(newText()
|
||||
@@ -342,6 +367,77 @@ public class Renderers {
|
||||
}
|
||||
};
|
||||
|
||||
public static final Renderer<ConstraintSystem> RENDER_CONSTRAINT_SYSTEM = new Renderer<ConstraintSystem>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@NotNull ConstraintSystem constraintSystem) {
|
||||
Set<TypeParameterDescriptor> typeVariables = constraintSystem.getTypeVariables();
|
||||
Set<TypeBounds> typeBounds = Sets.newLinkedHashSet();
|
||||
for (TypeParameterDescriptor variable : typeVariables) {
|
||||
typeBounds.add(constraintSystem.getTypeBounds(variable));
|
||||
}
|
||||
Function<TypeBounds, String> renderTypeBounds = rendererToFunction(RENDER_TYPE_BOUNDS);
|
||||
return "type parameter bounds:\n" + StringUtil.join(typeBounds, renderTypeBounds, "\n") + "\n" +
|
||||
"status:\n" + ConstraintsUtil.getDebugMessageForStatus(constraintSystem.getStatus());
|
||||
}
|
||||
};
|
||||
|
||||
public static final Renderer<TypeBounds> RENDER_TYPE_BOUNDS = new Renderer<TypeBounds>() {
|
||||
@NotNull
|
||||
@Override
|
||||
public String render(@NotNull TypeBounds typeBounds) {
|
||||
Function<TypeBoundsImpl.Bound, String> renderBound = new Function<TypeBoundsImpl.Bound, String>() {
|
||||
@Override
|
||||
public String fun(TypeBoundsImpl.Bound bound) {
|
||||
String arrow = bound.kind == LOWER_BOUND ? ">: " : bound.kind == UPPER_BOUND ? "<: " : ":= ";
|
||||
return arrow + RENDER_TYPE.render(bound.type) + '(' + bound.position + ')';
|
||||
}
|
||||
};
|
||||
Name typeVariableName = typeBounds.getTypeVariable().getName();
|
||||
if (typeBounds.isEmpty()) {
|
||||
return typeVariableName.asString();
|
||||
}
|
||||
return typeVariableName + " " + StringUtil.join(typeBounds.getBounds(), renderBound, ", ");
|
||||
}
|
||||
};
|
||||
|
||||
@NotNull
|
||||
public static <T> Function<T, String> rendererToFunction(final @NotNull Renderer<T> renderer) {
|
||||
return new Function<T, String>() {
|
||||
@Override
|
||||
public String fun(T t) {
|
||||
return renderer.render(t);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static String renderDebugMessage(String message, InferenceErrorData inferenceErrorData) {
|
||||
StringBuilder result = new StringBuilder();
|
||||
result.append(message);
|
||||
result.append("\nConstraint system: \n");
|
||||
result.append(RENDER_CONSTRAINT_SYSTEM.render(inferenceErrorData.constraintSystem));
|
||||
result.append("\nDescriptor:\n");
|
||||
result.append(inferenceErrorData.descriptor);
|
||||
result.append("\nExpected type:\n");
|
||||
if (TypeUtils.noExpectedType(inferenceErrorData.expectedType)) {
|
||||
result.append(inferenceErrorData.expectedType);
|
||||
}
|
||||
else {
|
||||
result.append(RENDER_TYPE.render(inferenceErrorData.expectedType));
|
||||
}
|
||||
result.append("\nArgument types:\n");
|
||||
if (inferenceErrorData.receiverArgumentType != null) {
|
||||
result.append(RENDER_TYPE.render(inferenceErrorData.receiverArgumentType)).append(".");
|
||||
}
|
||||
result.append("(").append(StringUtil.join(inferenceErrorData.valueArgumentsTypes, new Function<JetType, String>() {
|
||||
@Override
|
||||
public String fun(JetType type) {
|
||||
return RENDER_TYPE.render(type);
|
||||
}
|
||||
}, ", ")).append(")");
|
||||
return result.toString();
|
||||
}
|
||||
|
||||
private Renderers() {
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2013 JetBrains s.r.o.
|
||||
* Copyright 2010-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
||||
@@ -30,11 +30,6 @@ public class JetAnnotatedExpression extends JetExpressionImpl implements JetAnno
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitAnnotatedExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitAnnotatedExpression(this, data);
|
||||
|
||||
@@ -27,11 +27,6 @@ public class JetAnnotation extends JetElementImpl {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitAnnotation(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitAnnotation(this, data);
|
||||
|
||||
@@ -42,11 +42,6 @@ public class JetAnnotationEntry extends JetElementImplStub<PsiJetAnnotationStub>
|
||||
super(stub, JetStubElementTypes.ANNOTATION_ENTRY);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitAnnotationEntry(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitAnnotationEntry(this, data);
|
||||
|
||||
@@ -20,9 +20,6 @@ import com.google.common.collect.Lists;
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.openapi.util.TextRange;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.PsiReferenceService;
|
||||
import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -37,11 +34,6 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitArrayAccessExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitArrayAccessExpression(this, data);
|
||||
|
||||
@@ -28,11 +28,6 @@ public class JetBinaryExpression extends JetExpressionImpl implements JetOperati
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitBinaryExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitBinaryExpression(this, data);
|
||||
|
||||
@@ -27,11 +27,6 @@ public class JetBinaryExpressionWithTypeRHS extends JetExpressionImpl implements
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitBinaryWithTypeRHSExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitBinaryWithTypeRHSExpression(this, data);
|
||||
|
||||
@@ -37,11 +37,6 @@ public class JetBlockExpression extends JetExpressionImpl implements JetStatemen
|
||||
return JetModifiableBlockHelper.shouldChangeModificationCount(place);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitBlockExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitBlockExpression(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetBlockStringTemplateEntry extends JetStringTemplateEntryWithExpre
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitBlockStringTemplateEntry(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitBlockStringTemplateEntry(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetBreakExpression extends JetLabelQualifiedExpression implements J
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitBreakExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitBreakExpression(this, data);
|
||||
|
||||
@@ -32,11 +32,6 @@ public class JetCallExpression extends JetReferenceExpression implements JetCall
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitCallExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitCallExpression(this, data);
|
||||
|
||||
@@ -47,11 +47,6 @@ public class JetCallableReferenceExpression extends JetExpressionImpl {
|
||||
throw new IllegalStateException("Callable reference simple name shouldn't be parsed to null");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitCallableReferenceExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitCallableReferenceExpression(this, data);
|
||||
|
||||
@@ -28,11 +28,6 @@ public class JetCatchClause extends JetElementImpl {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitCatchSection(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitCatchSection(this, data);
|
||||
|
||||
@@ -56,11 +56,6 @@ public class JetClass extends JetTypeParameterListOwnerStub<PsiJetClassStub> imp
|
||||
return body.getDeclarations();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitClass(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitClass(this, data);
|
||||
|
||||
@@ -38,11 +38,6 @@ public class JetClassBody extends JetElementImpl implements JetDeclarationContai
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, JetDeclaration.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitClassBody(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitClassBody(this, data);
|
||||
|
||||
@@ -20,18 +20,12 @@ import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
public class JetClassInitializer extends JetDeclarationImpl implements JetStatementExpression {
|
||||
public JetClassInitializer(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitAnonymousInitializer(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitAnonymousInitializer(this, data);
|
||||
|
||||
@@ -28,11 +28,6 @@ public class JetClassObject extends JetDeclarationImpl implements JetStatementEx
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitClassObject(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitClassObject(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetConstantExpression extends JetExpressionImpl {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitConstantExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitConstantExpression(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetContinueExpression extends JetLabelQualifiedExpression implement
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitContinueExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitContinueExpression(this, data);
|
||||
|
||||
@@ -26,11 +26,6 @@ public class JetDelegationSpecifier extends JetElementImpl {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationSpecifier(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationSpecifier(this, data);
|
||||
|
||||
@@ -27,11 +27,6 @@ public class JetDelegationSpecifierList extends JetElementImpl {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationSpecifierList(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationSpecifierList(this, data);
|
||||
|
||||
@@ -25,11 +25,6 @@ public class JetDelegatorByExpressionSpecifier extends JetDelegationSpecifier {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationByExpressionSpecifier(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationByExpressionSpecifier(this, data);
|
||||
|
||||
@@ -29,11 +29,6 @@ public class JetDelegatorToSuperCall extends JetDelegationSpecifier implements J
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationToSuperCallSpecifier(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationToSuperCallSpecifier(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetDelegatorToSuperClass extends JetDelegationSpecifier {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationToSuperClassSpecifier(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationToSuperClassSpecifier(this, data);
|
||||
|
||||
@@ -30,11 +30,6 @@ public class JetDelegatorToThisCall extends JetDelegationSpecifier implements Je
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDelegationToThisCall(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDelegationToThisCall(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetDoWhileExpression extends JetWhileExpressionBase {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDoWhileExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDoWhileExpression(this, data);
|
||||
|
||||
@@ -24,11 +24,6 @@ public class JetDotQualifiedExpression extends JetQualifiedExpression {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitDotQualifiedExpression(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitDotQualifiedExpression(this, data);
|
||||
|
||||
@@ -22,7 +22,5 @@ import org.jetbrains.annotations.NotNull;
|
||||
public interface JetElement extends NavigatablePsiElement {
|
||||
<D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data);
|
||||
|
||||
void accept(@NotNull JetVisitorVoid visitor);
|
||||
|
||||
<R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data);
|
||||
}
|
||||
|
||||
@@ -44,8 +44,8 @@ public class JetElementImpl extends ASTWrapperPsiElement implements JetElement {
|
||||
|
||||
@Override
|
||||
public final void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof JetVisitorVoid) {
|
||||
accept((JetVisitorVoid) visitor);
|
||||
if (visitor instanceof JetVisitor) {
|
||||
accept((JetVisitor) visitor, null);
|
||||
}
|
||||
else {
|
||||
visitor.visitElement(this);
|
||||
@@ -57,11 +57,6 @@ public class JetElementImpl extends ASTWrapperPsiElement implements JetElement {
|
||||
JetPsiUtil.visitChildren(this, visitor, data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitJetElement(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitJetElement(this, data);
|
||||
|
||||
@@ -50,8 +50,8 @@ public class JetElementImplStub<T extends StubElement> extends StubBasedPsiEleme
|
||||
|
||||
@Override
|
||||
public final void accept(@NotNull PsiElementVisitor visitor) {
|
||||
if (visitor instanceof JetVisitorVoid) {
|
||||
accept((JetVisitorVoid) visitor);
|
||||
if (visitor instanceof JetVisitor) {
|
||||
accept((JetVisitor) visitor, null);
|
||||
}
|
||||
else {
|
||||
visitor.visitElement(this);
|
||||
@@ -69,11 +69,6 @@ public class JetElementImplStub<T extends StubElement> extends StubBasedPsiEleme
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void accept(@NotNull JetVisitorVoid visitor) {
|
||||
visitor.visitJetElement(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
|
||||
return visitor.visitJetElement(this, data);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user