From 407882eb707aaff97d1e42d801d28f98e4c86c70 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 18 Oct 2011 17:41:47 +0200 Subject: [PATCH 01/22] common Java options in Jet run configuration --- .../jet/plugin/run/JetRunConfiguration.java | 106 +++++++++++++++--- .../plugin/run/JetRunConfigurationEditor.form | 12 +- .../plugin/run/JetRunConfigurationEditor.java | 12 ++ 3 files changed, 113 insertions(+), 17 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java index e38a9b8fd96..4e0beabf3ac 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java @@ -1,8 +1,7 @@ package org.jetbrains.jet.plugin.run; -import com.intellij.execution.ExecutionException; -import com.intellij.execution.Executor; -import com.intellij.execution.JavaRunConfigurationExtensionManager; +import com.intellij.execution.*; +import com.intellij.execution.configuration.EnvironmentVariablesComponent; import com.intellij.execution.configurations.*; import com.intellij.execution.filters.TextConsoleBuilderFactory; import com.intellij.execution.runners.ExecutionEnvironment; @@ -19,12 +18,21 @@ import org.jetbrains.annotations.NotNull; import java.util.Arrays; import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; /** * @author yole */ -public class JetRunConfiguration extends ModuleBasedConfiguration { +public class JetRunConfiguration extends ModuleBasedConfiguration implements CommonJavaRunConfigurationParameters { public String MAIN_CLASS_NAME; + public String VM_PARAMETERS; + public String PROGRAM_PARAMETERS; + public String WORKING_DIRECTORY; + public boolean ALTERNATIVE_JRE_PATH_ENABLED; + public String ALTERNATIVE_JRE_PATH; + private Map myEnvs = new LinkedHashMap(); + public boolean PASS_PARENT_ENVS = true; public JetRunConfiguration(String name, RunConfigurationModule runConfigurationModule, ConfigurationFactory factory) { super(name, runConfigurationModule, factory); @@ -47,21 +55,91 @@ public class JetRunConfiguration extends ModuleBasedConfiguration getEnvs() { + return myEnvs; + } + + public void setEnvs(@NotNull final Map envs) { + this.myEnvs = envs; + } + + public boolean isPassParentEnvs() { + return PASS_PARENT_ENVS; + } + + @Override + public String getRunClass() { + return MAIN_CLASS_NAME; + } + + @Override + public String getPackage() { + return null; + } + + public boolean isAlternativeJrePathEnabled() { + return ALTERNATIVE_JRE_PATH_ENABLED; + } + + public void setAlternativeJrePathEnabled(boolean enabled) { + ALTERNATIVE_JRE_PATH_ENABLED = enabled; + } + + public String getAlternativeJrePath() { + return ALTERNATIVE_JRE_PATH; + } + + public void setAlternativeJrePath(String path) { + ALTERNATIVE_JRE_PATH = path; + } + @Override public RunProfileState getState(@NotNull Executor executor, @NotNull ExecutionEnvironment executionEnvironment) throws ExecutionException { final JavaCommandLineState state = new MyJavaCommandLineState(executionEnvironment); diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form index f7f2de59d22..ab95bf99ace 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.form @@ -1,6 +1,6 @@
- + @@ -18,7 +18,7 @@ - + @@ -31,12 +31,18 @@ - + + + + + + + diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java index 4f9a3030c6a..0ffb1a03e76 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfigurationEditor.java @@ -1,5 +1,6 @@ package org.jetbrains.jet.plugin.run; +import com.intellij.execution.ui.CommonJavaParametersPanel; import com.intellij.execution.ui.ConfigurationModuleSelector; import com.intellij.openapi.options.ConfigurationException; import com.intellij.openapi.options.SettingsEditor; @@ -9,6 +10,8 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; /** * @author yole @@ -17,16 +20,24 @@ public class JetRunConfigurationEditor extends SettingsEditor moduleChooser = LabeledComponent.create(new JComboBox(), "Use classpath and JDK of module:"); myModuleChooserHolder.add(moduleChooser, BorderLayout.CENTER); myModuleSelector = new ConfigurationModuleSelector(project, moduleChooser.getComponent()); + myCommonProgramParameters.setModuleContext(myModuleSelector.getModule()); + moduleChooser.getComponent().addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + myCommonProgramParameters.setModuleContext(myModuleSelector.getModule()); + } + }); } @Override protected void resetEditorFrom(JetRunConfiguration configuration) { + myCommonProgramParameters.reset(configuration); myMainClassField.setText(configuration.MAIN_CLASS_NAME); myModuleSelector.reset(configuration); } @@ -34,6 +45,7 @@ public class JetRunConfigurationEditor extends SettingsEditor Date: Tue, 18 Oct 2011 19:33:23 +0200 Subject: [PATCH 02/22] slides for RivieraDev --- docs/Kotlin-RivieraDev.ppt | Bin 0 -> 2050560 bytes examples/src/HelloNames.kt | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 docs/Kotlin-RivieraDev.ppt create mode 100644 examples/src/HelloNames.kt diff --git a/docs/Kotlin-RivieraDev.ppt b/docs/Kotlin-RivieraDev.ppt new file mode 100644 index 0000000000000000000000000000000000000000..84c8943eb0fe0c00bec30e705da133939df097c0 GIT binary patch literal 2050560 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

)QDyUPVCPc73CxP{ zDGAP(bjijiNA$Z_rOn97yo*z4wR|<%=ZLtjPU3hP+n=qLJsVq&pVN?g)aw+5kMf!0 zuUYe(6!f}ToXj34`%bOA4|&01#?d;H>(;?uPz=!Xmeb zXGW(!p~$*qkgl)h&gSsSbqi=P5*@d`#&Wgocg=odAE(&NDRb zqrUbw5TvGtdINDG9JJlpFPQHkG@9KxK2VMY+QF}W2Q*gH3>iEp3!(9$-ctCTcSqy@ z>JN{w2U2GD&CCS%4)6mdqTW>0UCs(=VU5tVLwX`T?2xVq5pG@x9Am;S&IkVa5PV|d zLZagQ@Te5R$U)mJ54Jbtpzq;DsCr763ICl~+>3WJaa_jp-1M!+=dT5N-M2IT%Jp8ej6T zqK1O5q2^J9tCPKlCqnb2ysDA{f`N;NN6yt1nBo+W&aPfy0*Qx5QCAV6sj8%-ivXw0 z@bDZ}XF%*78RO&Q!)*>H=e9&T!wEfjG~L1ZG47szssJk&$iQvoX~h7_+b!mY18V@( z%HGmb8Xr&6(b`WMp!kB!)!p93lUoxU9&`+K2o1NU+6kn)y+1h9$lOWW+C!2DP7ktu z$^QHKJ%O3g+LPPT-P+s}>Asf-PtwB^ptt?GIQV#*-SbK%dA_8;$NN*n_MX&dj@ub& zrD*PH{XKFk5SE7DBrZNaE`AYRem-%2QE^^=BS{`q)L+&YoKNIweay++_Is@0(OZL4 zW2Jc|dG@?0g7WN9RFY?p%%GgV%Rd_KFlo#^!D&f*g?)WQzsr69|8URmG!5pHJ>v2G zNXK6cg!eBokdCD}I7;d(r~YqYo}ZfaRp|APK%kH9~@pZ{CL&L1@ID-Zn=KQJlw)SJI8emuM^ba%C0S1=9YZffshgEZaM zWd5Gk^MhI{XXW4p){t4jKy7QwZ;IttF8p(4;wQ!XA8Mn2rj`9x^~RIjQwm|i?Wu~e z|1XCYf7nbo_jg!92-PL>as$=$Tj%%}U=abq-%BkdBK!mRn@$2s{ryVsX{0|Z`Tvlv ze~$gPYCfRmH$5My`uw`Q0;mzQ&<}e4pVs;J6#Z`+>Q9>fcYOaH<9`SJCyx}o1^*{l z_vd#00q=70iT=QLUs(DNz#<~Q&%0tjf`9QYYQVZX-2E!E{}Jzk$EO5jH86B&!h&1f z-1*x``p9`(u*gd{t``M=S$BqB<68=mq@^bNtaPf=k^7D%eiHP$G{#S{`-wfRU zUDi73V*WqVqyGo+*q^lZ4@Bet1?H`)3NE|Be0ne;5P*+}Jc$aUp+iL#qnR#!++8LeKP%(6&D>KQe{SWUVfmd#erw~OW&FO0djMff9)T`KO4y~GCHM-5AI%rI zi8ZKa(dBLd5|vyh;lP6;M+A4mXaiJJQSb2M{(` zIbdt=V(sGP4Dt{h)q$~tIa2@wVM22+PvmiH7i)JQ^x)SC(gjlNOJe-p#4rSoQF69L zfZKm}`!T%Sopg^H=z^lYBmR#NH4j_sA0XJ~PM*5vwm-m#EUlfKbipS?N**V4)l@Bz zNGBK}?jHDu#CUc{cYir2d)qxq5$`r0EWFqSgPb^4);8u|PM*Mv=M5&eekVC>*hhhX zOuo;;RsrdRbpMXHq`Ua#kAIB-Ss-HfcF{5RInk%GqMwQo}RAaJUlKQ+~)B5B-8>LUvpO; zc#RDN7V)^6!>d;i7S@1IrC8qHYhXdxTS>9#3#sv{xhh!O*`M%tx7P7j*R}L_v=p;q zf!FlNpiprEG+Z|JPVm>?2x|{ZDFy{?1~}SR9K<+VdzvG_a$6S*F7*$4`VS@PSk;3M|hZSJb3_WLF7JppHD9#AR*AqfC#YT}AWOD|`zend%8dY58W zNJ~(x>)x8Oy$S$R&>vSolIJ(bK(lyY5`Nb%(AHfTAS)m+&)0_rSLeUq{VL=i(fAj+ zev#`RQQ#jX{>5Ft$n}pX@Q)Jz;;vuh`bQM_M~Q!N*DrGYBMSVZ#J{-f7rFis1^!Xu zU)=SJT>ppy|0wal%3Z*|vu72ub^)d!A7Jy@d5$isq@ZA`sjYELN%bhofQ8N~rzn3E z9T;z&T|C{jkIN$r42=*tkAU?Fo+kj#+|t8UPE%7A_PgvF++gpX14gj5;a%I~V=fri zUc}$L<6FAA!#2W?;Ky$TOg6v{1{=eyd^}wN94!U-DJ&dO{vz1#uB)v8;B~-HWV`F{ zf&CV{{z=&H4jKW{EW+t+QGV1XyA&3?e%Pi*;R$S=;0`GuUHwqjKk#v%m>5D1^#P!c zA6U!k?14~nu|&GNBKPdQyY+)}LHN60z5$A%g8y|FnEt!i-fN-gibmP<4fd@ZOD}it zFCjFvUhwJgUxdHm@T-R)Ic;EnzxxfQ2j)AY%G++#>TF@*3Z z<}y-LHpy!XEcaVHa}QNm(P2s&Al*fV4(Hf)Xrv$ynU)*6dC1N!M?CbK%@uEjWb8cxU>&b$dNnP$eRsEHiDQ-1n} zikQ7od5&N&3^J`^FuZ4$g^U)Hd2L)KPLG3cNjDu&%hq1fo zy)p66g{;F;tm{H_FpCZG-(#N8sU)*if0}Vm%PFjk@n&lpQ}Sk#442JG&84hXEi;Qo z9N*USUc)8)_na#l>s!ryNqKFHvY4CXIJho(*+wPpqdVo+kFGov<-I@2%9^YFV!Hc1r4}m%*=|?4Tw%C*0U1^jDT*??dB-|e}NQlc#y`sITNS)lJK3+$9uRP86v`sh8 zIAB@v9q6&)kmF?q4wGEYdtQdYkU%vdcQm2kl9D0B$39SR<|JKJnlM>2 z*+3{)l&t{8;g2Mewtvo7FA0%nv(@g9-L`!m@Lb4E(Ak06+;H1P_~_?!DN8k3DWA24 z?8jW8WCTs~X0d#pjP3XCM7bBW=`+tR6w(L@GSp_jk~|$bE<-3P!E9yH&5+02ksz`< zF4D)}QmJItvEjxp`iPZ9g;b*H23C!(cp8f+x^Em!^uZ#nlWI{|qC#e@Q6JUQ$ZD4S z9S$#0aquVYKpw0MjMHjlpJ!&r-U{}to0-${&lH!&@ANGzFF27U>K#0LIdY-OWv=YChNwkh}`=vk;8-XGI&9wcH zUIzwuZ9Zpskx=fK<#X&l=?pE_JHm{@?3g!6xmf(jn{`yhT&mG~h#Gm84modNd|dV9 zlf5l`gE+3$xY1oy_VJ*KL&?p8)aMuh-Ia{jq-@F@#uDFzQga3yU;1!PVlLnDdixT_ z6EVV0%(kg^w^AmeThR;bYozWsHg1p{FC4#R&YHcA#i2J^nK2l8^*E_O;R^5J3hm;F zMbS`248*caq33w+&1#pYL63XF-zq)p!|UUX9@4TeI>>NLF|=OHzOk6$fjac?Eji}< z!Gq&AOx78(Low-dk5th+cA&zZ7y2d-?nuO8d(xU2m6so7DqU(qG)iHoc$-KVn)@6S zENR*4o2$ODAEx<%|b_``JR$NvuqTj>Pu!;c>ofpf7X!7>s=EwVEdveq1=P5Dpal~fC{mJbXYb~{D zCPRYBl(HGKKaXpr`I%CUGO+DH2Zg62xVU)h&iaJ=%wS?=g={^X%81^Qxvf6!u`W|U z{rR--!`qpwSwTDf%hjokpMI_{OD2$wdy?v) zKM@=ybpo27H@AO5H#r(}ctuHuq0ZOA;d$W&dfEpetQvTdq7FG1??7cS0(|NGEFq)B zvpGr*buPiTmqHAoOq2cI_{Ai33#gd})VYOk<42G+$1ikNI?t#im3GYvtc)S$E?V9v1 zrB1>-ka4$xdD3yUngC)I?Pm69J_xOcv?W-`lgcGBGu~qds*sj`BKTZpXJFY|_@oCV zZVkhgxz^zI)sa&H9tEeZBOi<{;lyalvJ+p&D0XOMNT`T>eoJDeCF=7`10jMxrYA!`p z$=me^Jesr6r@_eL;dYw?X)_HPNHrn1Qqx3p_9f%HGG-yS@o?1pDz#d(Rwl#3Spw^@ z3$cpsVpSV`Q?4#o}JX^ zSdU}B_MLZ#?&=(3Gw?4Z1-td%PTd$yfOQDpEt(VujX{x z6jw!H@*y~>`|++O1hWN>H-3`alpVaFR=J=YLV$e)OGBpVuEQW!;XRX^hv_ZO$Da4h zQZ9%nc6RS(%6br7_Qc9Q_eo1AP339t>knj8pR?$zGSA;kL01`;?ZSTH|F9sKRJn9G zj%1}}$>&vjAWd-g1)dgy^x)is76>;9j>B56lkPFL|M4vU!m?gwNik&POsnFM#B z@sYJxcmE#%qCj20L}k47#v_ie)Yt#h{QGKLzap)~DEnCAe?4`UIrA$OhRpc{<@T+h zlk6aM(GDG@IohaS`keizmgE6Cpge|ayF$8$Y$+UYJA3JRP9?3LwPZwU*_UHGZ?`>W zDWPvm6>Vz(BW=W);lo#`WzFSU!mJt);sAmO^*Xm{F~w`3VAP9LwB~;0CzhTJy7h0; ztOcq-7B>J-F%hMtjh2P3%ut{GssScA?q@-tmX%>>l++59X^8+B_Y)lTI1whd9lFWL$f^kgKzrCgf~6!_ zpKO*qOmfg|MT0kv9ax>hfMREZ0yLk1=E>%;>QOedFxX6(;kKv=wJQ}ZdlT{sBzke> zs0B!YUAU9LDI3h_7|yk3D_0Y?aj-o#d;%J`Vl!aGLjwSPWN{jRYzhi1Sk^JwNPvCk zhJhAcDNs7#l(nWM&I<(hv4mA9n~;o z<*{KrBptOuMJ2%~p^ps6`EulU&}Hp*RWeel5Nr!ZmXIh|1+|50Z96isCOU8$frJd5 zEP~`pleqTacGVNo-Zp=zuG|H?HZ#;}OfHG-t#*aAXW|=i2b93mM>m&ERf^KLLwDbZ z;0Ncc_AxE?8?aX{U;?%-#z#G7^NJI2`-sgN%yDT#pcY}$HFYo_ zxc>m%kk5?4o)N>Ynq&Xe@I>sUFIxjJ9H@qY^@-P8$2=ynfjI(A(rIA?uPHI6h?H4~ zTEnpZr7O1`ppZVg%AZ{}d2a1H9eO)T2QNli$gPo9ztaG0o8+Q+%#B?zHmPMMpCY!swpSyFKV2wWS8XH)D~k`7 z@h6`8nS+(7B?1#eY%(ke`h&+wfO5XXY%L<8C766f&e6PS)l%(`k5m(7vHFcWM>Dq_ zUE&SyMhGVWtu^F;cO-C;rKyB9hRX4n0&{@?dJcPPYO;z|RavZTj_O#%0mDfPTWPh) zAb^8%Yv=Vp@1+Hi`8A;arYe>okO=kF0JQ$u&E~~s2jofKPa+1UXHC|vmRiMO;$Cn zVa4c#ZJCbP`k2#0K(gd>-dnNx4@c$E-WYL_aq4q!=-ZAE8twPL8#ynq;R z>UPj-y7@NNj#{K&?i_xz{IvA&)~s8CHCR-PK>?w7>_>M%oEV#}D&Pzf0Ub`_c=Xnp8v|l?ky5)F3t3@|fZJ{wdLc!1 zv6LyUxh8fiJh1Tc1(e zw#HIwC2)m6c@A+rwXC%Wb;%Wqii(gy0LdKpo*IKKMWi?m#zd&z4>C6=OT{I-jHTMp`1E%0;#Yg#bbRb2=ebe%+OADf){Yz`&}5 z=?7Bc^m(g?R8VK3nLecGCvO&@tqeuOafB6t$8)AGo`GyCq_O}<2wl(9dD0*a^(3o4 zRhdA8j7)A$)25ip)hw?BupZyZLFE%0n9ysRP&4oh1QY#U(ZfJ*Yp@T3s+fRDf$ye; z0*tPfd`I^wJpJ_p?5*onT5L}uyfPKAg0Z_URlobY-=NwzFl8k=Q8TAUPAIf@@Zah!#1-k_s#_+{l>Jq&CIAz?gyC2lVzb zdTG#>R!dZyksiYxwqpgq*IgB<;ttfh;5RyUiwr@Yx1l$ z67r~3jEtB8%ciGSidD%LCCT>^)u|mi#;P{EDm}FTOhXkU!1SFoF2XAYN+EWZf@U}k z_xv;%=~Z2;1tA(f&YrAx{u-5FlgKJF4D1U;5C~pS#?tQ_q`0MXmx_dppwUa zXO^{>6MA2aRZWQa{C801H|GTJsR}2eqP4NDw~?8WKCz}6$7x{I$xsTI*lqRD20>=Q zVpay>$r)%VTbjD8Hu)`Z*pL)5;zWt($5%weU=`CRNt+{K2hw)dRa#q9sF*de_$VL{ zePf8$wJ-`*9oo_Yfwm(riRHs>29&174`prHK_i=O)I^Oq2gk82P=!F~#v%v$>8T0~ zZxXL8E+@3SagJM<)1rRUw57Hv5)_3W?Y5>asw>-S;DWUQlJSwkV~*OWRp-a8-IC1R z#03g>pM5S6^jj9K>YQPk#S%$70VGbSK{wZPS79mv7?veRx2C6bRQ1}Z&H{GO4YT}2 zgR6VZQ4hN*|rr>H=f~JsNIAV>rzVWLs3@ui*TM^V^?VB@hec~8}Q?#=|%Bs*i~C4 zibr%Yh92CGfvEOagb=EnO7oc8Koq<@i(0aB1ylxN!+;?DbcH4HySZgVmplL%?maf0 zMH<^hwG<&!$*Lr=f=ToQ>g>eB95mre20{R10#8^2PtaFp=5F1T)~Q~@Se&^9=dP`?nRD!qzZw>R2gIFVmN80 z1Y3h5G0Z7~t;J;R8*iXC^E*c6&KwXVf=Tw%?S>{by_NxO&GPvs;O)0d$dtelRZ$pR&BYx`fxjXrRAt7rYVvVOlZXJ7G3}{H!7SOj0IkK~We3om z06L(Oti&CZfBuIp0^Ppa%A5+vbO|8x1ARp-7*?+m9b!vPP3!HTv&SC`0^~va^5SQV zaMg)GSR;Z8#b!H8{Y3DQpk@x_m+`>Id}D;@6qVZVwRp8sTnJJD*hvIVk{UW`3nugd zq?~wcI%A}T7HY9-g7t$gN!UkTXX&6HB^`x!*I85dFk!c#kLRT!VX#DK2w99GkIQZv zgE3JDv@j`)sa^3YrR#q8zTTw@+1 zD4)7NEo<$>&cFZA@Dp0lg;K+sf9RekXs0Yw3r`F1y!{| zwz2C(MPLcolRbI(NZ^%2Xwf_MPM0|2lCR~=;}Xi^^|Hz3qKuBvE&yRe+$%q(hCV`Kf9t0- z86)JD*ignbkV#dIq!p8(KuZzP1*Y48`9A74;5XF4qPtoCUm+(pZGh(+^3x44#e}nh z5fAC2;|JGmP(d%nTHhgYhQ%a+C-~`(sbl#ZZZ46)$TlMKDr(HG}`V6SbfkYg!PhSaU(N zG-MAWJIK>8D6=NL2M!p(suf4D!O}Ygp^9gQ9BZ6uRq6HiA%D}Gh((PR-^#J zOEmugElL*baZzIn7#Z#Zw0cI0Wptcp

jdN!y??ylV}clc4JwoD_xKiOi4APLv!iSg3N;ecKtzdV#pr@e|mEL2miAT+Jvl zfjb?}vtvzkzC@DSY=?vnbJtg>e=pl%RL9>bGslk|U-2LR(eMgRPX7S7s55=RnWPdA z6YH+Bf3A4T4KHfdh-HY7Wv9>`TY)W5rkfhI?v>u;i3Co>jZ8FjM`f8#Hyy<>u40n-Tbp>`7Vob3d8hP;HrIkvh{Ue48t=7V-c@-G~NeW0y^4)rKq9>05a9veR%-*mlECdJghT@>%%69F%AY zMM9!i;vD0PN(ub;&~j9c9H4?s5UnF_1Vm1l0ni^DG4fkF+jLMs`tLtYJ_FT2@!5%% zZN-p&T&Hcmn!gD7);V=5gwR0p%4M>vei~Q76k90ZV5mt_@Ws8ki@j} zjvAmzIWzW|NFr3JDnZyszMy&nT&mW!DF#gZi0CI_s*R$$)Y<`N4nqfG1~JM&I!IF( z_J+s@#uj)Ie!TTW)SR9F0C7^5`-2vcNIXxjr2ha)WrmlzYQ!?cNHS;8X~2_LW}6zZ z+$+7xI1xJ-)WtG^QLM8P8IQ`YLVw#DS(2@AVQeidK;!|{#9~`)uoab7kQq+I zb%hi8>8kJC84KNA{xZTz+uKbss^fLdY$N)~gX_oJO$vKc$gS&C0FFCy=42jvmg(U% zSw)pH){JdfC5YHY!9?jSD{V5!t{7NkEKbLt`khLqe&HUxY_VB^f{Jz#$B5O`!hcWv z`F@<^Fe9hk8V~={{Qm$f)+p_|g8&AI+lk+fy2m`BY^$st!|*~9rr0^WZ*~0#0cg(>fVr>>JTtytt$i= zAWzUvvtb0+wKSq4*z#r%2s>}nS8^CaHO9gPHW#oGRx$!TciU5;-Nh=V%2fgX04tP@ z_(u&;<#02!QUZYprc43M#;PV4yw?!n!3=j;_35nY;Up2q2aI*K9U76E@=M^{r43V>w&R_yLW zF5B}2#`>71=3RT$n(>@T+E1YeeFh5b0I>N(Ze-={CrkldwK%&pW(WETmH^J+=_v0h zs#mSiLaEu!M{(=NNstKQGAct2kE|U~6=!N&N-d7)GYSb+B%Q~ur0HAZ`1Y&2*o8wK!|qJ< zo?5aNwrt1s5o@gpDBMR#j#>q!umB*6l*%%UQ1t|u)X+`((x3rYfM!`w)<2$}jsl=r zYC_859&Hnmm* z{U88Ao}zf_YO2k~O8!60ABZS^Ds`l1bH>6uW49CCkBs|&t@PMG|I_^T)jfY4@^(9; zf<*E7@2;;L`n0W3C@!=+CPuaZapku9)+UizwzsmnyNdJhgCrQ8jC0g0N0W7kmA*$a zAh#mFhMP=vY>pn1<*bJJx{g zj=I!JaeC+tVPzj5l|ykoOz*z0A|c9bG4fZOk~RZw8p@c|;=r0sROKwq7?T|at{QT9 z?m`v10#CwZao7<$vL=;fX4Xfc3cXY;8Jb+|%q9r;8hxpa zY=S(4m4pXkcz@zYJqD$iI0CV3LYkO-OmqP8`spa=xa0l{DJF5Hb_adIlctzuUvY6> z0>mYAiIK{9k*fm5*H%DvZ`3~|A2JBx2UARE?Zu^ZjQQ%{h@+D|XA*!GJrDSQD#& zT@6p$@j})NWn&V|zxJv1((}Xin#Q+2*k=zvsJs49HI)mxkQcD!`LhNJW7nR6$c`CJ z%A+zu;&Fl3j;b7c3YeQ0ebhGO9;P*T8lFf-Rq_+}1(#;7IelR2@8vK@$V&>>QnfC> zYrrfz&iZMD_u{uBWTvwIymnbz~|a1v3-Ybcj=0tMM(BhIhz7o}*1y z1?>QmrJ(+ykas)#>EP5ELOWuj2rCEZSo6{jEl3*@qkxDad2BS`ot><6Uul_I1c`wh z$rGvQZg^VQt6~XP1D~kS3sjf2q$xK5B3d|bj#_4#FszCf#$YdCGA`16r`uQb77c-i zdX#wnqM~P(^E!cxSWx!KHi0l)1QWLnw86G{57;xCp-fl?*pEr+tGqEX_WL$J>Q?O& z@e)AgBmK1$>gLc0t%Lo1CsDt#DVbGkY_ULO5d+m{SL$g#Cy;z_e0N;9hb5H1 zrqWKQ^K*rUvMXZUvt@i31Gx2pGo}tI)Y;qdDOMXB134@QJVDj{0rBk0%MFS_KQkl{ z!-ol(_SA(HwbZo?a}HZ7*B&v)mfBbq+O1jI_3T?@7-Gz=BW<_krW&BFb*h)K3YF=M z&kzji;1#@7p^i6r;l4Gd#15P3xM9!b(YlHm1M$iXdX4yM>`W=FB(+S%>|91naodaz zn$D}1n!&`ORGADIl4Fc&;iqK1+0DCgI7rKfO+Hco)$ny-SP&J^Aq-ieqnwk=+g)p( z1#M+#;DFYHCA5~R4?le~^wdg=yc zUA|3gRnb`8>=H~KvUuwJiC&9S$a^eoynK!znLC}MQqHcZOhYYKq_dL%!xi;9PxU`X z1Om0Fr}%dcgXF`B*zK($VJit`hzYENgE7PbJog%y5S61lcFmNQA99dS=gU!4)kT$) zHsVj-&YVd4>dA(fYpITHo7hHK4iY+Q;v=lsh1#de%fSjtg8*?NdFwGut(uS_RjhUS zXYwQD2_R`W5Y1_1bOO;{%m~90N!y5@u8M0otSO*11-G`h0PoHYpQLJnr5@5iP*22? z4Dj1QzD;Kpv$S1ZauC?>G7nuWAVC6@HPX#((jVm@de04xfxZx;r#-?BDrJ{_^?#g+ zbvKdZR8q-O%grS9=1Be;maK#&u4-VIsRM9ijsAi)HC0hf9yM0h;hy`OxKxlrgVJ^% zO<9s9x*I}Zz%wb33;;-ugmKiQV7V&`-9|2UQj7$H%&3kUvZ?C8vXB+fDGXVmqnwk= z+gDH(y_KKSMJR(Mw38$sP&Coc{B<7L{j^j1}uLaUksnQB~jKS92rRXYN(RrED>6z0VD5 z{{T9Yky_!JHAD*_5X77apS12ZB86&0V8vaHf8|pHalq{xX@X`IJE?*hN%^Zt8~V=U zSr1%e#F*eW{Pi%?O;+}8 zYhtJ(EFA|y{B?7Jf3erSTUM2ftF;&IC)P+hil(+(M625z{{W&-ul+S*GyFClNpxlvAY$Ykn1Vv{An&R%?sYDT zidMb)5PI$gmWkWRxh&1GYM<;wxd)cZC-BtTVVSz73d+XA^9>=VnV(GpTGUHaLI8KM zf!)2QQ&$!-s>+lDU~qO_isSvKoa)_Q3q0QAy|*FCOPPr((5 z1EJE$x>t^CwBuPTVjSUiBn`$=M*iB6q*@BI_i1;z;|4`IfKJ@D)T*kwl~GGl1(5){ zmJ#(Du^P^zpse`#_I<*r$bB~3SKuZ5ODuL|IoDtJi7~)$tl_E>x9!;1B0wSuI~d`% zt`6@~(6@N#fB+caI{rKL)zc5J88wShP?$i#5$s^jtV&wc5sme-tJx~pm{LB!o~A3W zW+7=dCu|Is^^N$fxD1MSUZlopItu9w7-hUc(jza;zfJ_18D>p)5FnN?*2YW zmB<_Qu7Lxf8)!~iBWFco$R?qmcN zWzTt$9QWmy zfz&D3NmY|SE_$>pwNGf>`-I6%rD~^$=y?rH1W%2E#ETfsnLi!($KOsJb#+%`gX6M@ zJB9;e=uVlw0zN;IwyM)$W3g^K@4^PIQ(*h59gES~bMdjVCP?>`_ar2Mk`W zN0!|+Is>=m)N2*i%Zi!8KdYBrGMf$u$Q2fGh*{ZpC(?O)>CwUSsnod4EI};>dbg&5 z1Hd;|xhe+kK_Ou9>pFdPbk+~!x>~mUZTS3n00zEe1arrN;qmdorWEkdBDU%Q;@ z=ioB6w-9ZltG3LB2jVBDk|V0Bwr6V?8v%fUV}aPurjiw{-tJbx8vqC_+YS1I%TA0{ zshPvF;9%7CsGNkv=peHDDPj=Wk1_~@>%(nlajak?$%4UE0E?PIVtqsdzowp^De>J< z+VuQoK+N(S2GAo`RG~&{-RTXooWW%TJdMF8KsgxicGoD!vCE`;Mxg)D@Ka$O%2~io z@OspV^p1Z`b-L%1ca9~vVHN}ObMzxxLeM%gsUz6Hk8{IN z50KXa)~XDdpcD7>jsF0al!B+Y^7bOIGn}84{{R7`C{1;cR2;3WAJQXW4>^d_0&-DT z$%_yO5NBb_W2mC4rMk6oSjFTO5?FglfvYBlTJ_Wj$!)zMWq^SkzB8plm&v>aY9Ggg zDiO9PnZ|dWHvBFHX|?w>ux;CI{zu+6)WB|-)`#NOF78Q#za@#`(^U-d#h^A6))mI@ zY_`MPX$tP;*t|X|TSHbx-iB9A8&8UD&Da9WC18>VQUN+o=SxPI*I7f5VJwxwBz;Dx z0bzQ|J#S7@q^h*-{&N%;Y?obis6rl~+Edh_lrmYi!~LC2)Y&=Vu8)b=|TW&q=`iRS?G&;^q$d#T)JX=XTv zo&XWdY7vwvP`H`2PtDHW!g%Ql#z#Y*__>g=1oe)Z1G~84Mk@WaF_DoZ^5v^Yo|f`0 zX?0d3fOE*6Kx-nsDlJwB=)0SScSHTkR%w6>~jku%i;f zLagq3gRs_+vrms|lISvhtdL}myB$o1v$5f~Vvx8R+Es-7WbyT#G8;{(_ARorb|=ZrXj^Cr3f~QODQBBz@B=!A?jMts@OAt(0ga?_mB6~ ziY23DfiJ38cuDB{r zUC1N?I0B>i#C-$1J#*R)uchCne)c>54_ zC}(u#9k=db7;@`65C78es_Z^zW&Z$fisTq}AP>u3cI%z+1U?T~F_Ha5W%!f$>IrKW zzG-RgFgp}HV`v%Ls;*HizZzIPNqN`2hwM4;-^ZmfVr* zCt;~pE1_;escP7@{lOY}a6NTqrCH>7=I|}A$VI5}sBxZg%VVussVQq!AhNobFaorO z0y#m{$f&6W4VEQsAb`b&!gxe$F;@>Et|~3sw4UY6&BkLL`Dw=&ozAnCsMp4-maeju17HNmllY#xxrT^`1GW(0WGgET zfR0jn>Iv$po5{x}vOdDVgY_p#I=91Zs?dRz6|o<5%8d~f)9|2tcW;$IQU}WvJ9Hmib=Pgji z?d+^C!2+a|Rs_L4AnBNDcQ+~k8cPyNtQj0R^43*wwbgMYLXjD$$N?Vnt!p^YbE?mh zwgws1NC$3w4C(L&n`}$+%p~q=LI{q#gQUGIrM99Oq0{xW@47^Cqwr{v&CDBd(Xwvfe!sT7uUJcW_|u&xoBl1S%@eyw$&pTMW+A z$Cxv=vZj8OkPn&rg%T7MJb&`gGqBa=TGEOevJ)x{2?v-bj+4NrXF$M=$oYJTg&ao>&Y&LK=a+q~sh~YdxPd&Uarx+Z znb%2tzRiFW&UCX9QXaOgiLoiNvO_4w3iTXd{yLY7rvu}=OVkA*Lt=++gX^ora=B~Y zwhC8>R8nIj>BsnK@(ZvX2X&CSkl{=b@55IONR_2_l&$F*5(s4`ck8UG;;d|}S4h0E zkJFeu=N+}Gfw?Y5MC{46OtO%F@opMfNnbMcG-9h#5=6%q=d|stUNseX&)l)HueR>9 zhulCM=ccUcSkjM>#6SS#L663F&=FyS!(_luY-~xMpzW#_wcTogU?8Y0T(QbeNZV~d z%WF`SfX3jK4T)LH-0{`0j)%*=iOM+0`+8~*|J3li*8y0~gMpEq)q?fgU3GJ^li#Mr z`21N;IWNXIe^2w&*kNqy8INzg)@~SXeL|f@Qo(lZu1ZGr?eK`)4Y=z_R!B=GEXQd1 zM0&{7RRwEnBGOH}@ZB-u06Xgb(7xJ+Em#05?YTcg*HZ-dpC;5x3x-5L11BxEf;x26 zyH;al)@o|dS!p|~lh6Bzod7FZw|<|F5dQ#B%Pr2IAiI^igln8ytObR^03SjIfrfxZ zhaAmjJBuoD>LdB;;jFTSRh*5hzyc+K;!e}K(!)aRJ1>uqWtD@A0-yplJ^&>YA&lC# zWhIF_iR1?QWHffv^;d|rSXcrN^?g03OEA|9D^DGRqYK0l0L&h8HFjXcuQ!BiRU@ZuoDZ5Y>Bc$@ zR4S*n*fphMCQN__&}u+J+C#fCnre?yv&t9OS71AxpxSF;UIG=21OEW^r63Xes;bC1 zW!qMRw*$y(2VA%c{%jl!x7}MFyH2f0M}C`DSK`WX$$l}z`e*ah)xz17Galc0tp1_7 z^$K|CD}ot&2(C~5vOozDxSpe0{Ub2>*=qSrToHw8Kmhug)c*jZyk@bj71uTaA>5DZ z`knOtbfT)d*5)@0S&2C~ZN8l~XT1^!z1^v$t0}zJS}ogo;s)B!RI9DIm?^KhKp+ouTLjC%h7^QMhTRr_o4yfx^ax?wrnl>Y#aE%@-6olG_V)%^W+58Sb+wAoCCs>M^kUO%3?%N+Ek_E>_r8ePZ@ zY7Bv%W`CBh8ePcrRW02NJ}rvkBbLT?)Uyb6R~BHVmp!x}FkqD+$HSibvX};68qli3 z8p+J4h}(J8;nFIiqS!B(>=2e_oOm7sZS>FeZ54Ee?meaJSd#o8bOh;%t!5P0jVoXl zZb%aZ?Y~VtPy=d*M9OSG2pp&9W0EM4jWu-KWRZ-sLzysT?h*{~7 zJDpgS7HYQGy`gP{lbI`sj%s${tf`NE_pnPUKL{X#03dM$5vy&ZpE|}z^uRe1ppl3C zeMX3H?!#8$ayx>n!G}2~O)-~P5HG~LKg!ZKfymC==}4SGlD3i;{{UIydTs`ypHOyc zox(9?`3@jK+i@SBtV+CHHk2z5Zonu~HXOE%YkHWSFMiVZstysF6u1m``iL5v`CKGi zY*+604Qfjzd}Q_CZB6``aa@o&?hJyI2Y>|c%a*8?>L0mdQEqg|YOGb`*N-l`mJ*xU zVx@32yO0{x83R1b{{Ss8(ymJ=tdE*6@XY z9?KP)%R(zb0A(Znbk|$5x!!{$uImzzduqj-Gq>>5gePiI=en<%HWoyjm-P{=`jqp`uimfb-#3cv5_0c9ux1YZwx}j zhpM{2Q2_q{2_&8Q^8o7&8c`6-i!0249T<`%@c8Pcg6oA$$=M+P07`-}Gu9?_w9OrK zf`qP|-uC0lsCC^)xC0eFYjnYX2 zlysd^H8=v-# zR!S*dj&8M;)}t84BkLT;Efl4I3M>^LD;bGt9)o>Aidb&FqJ$DvjH^NBBZj0}va6`= zxT3($r{=stJmm7$rJo3r#cP}}J-d$V$A}ZKQ@raps`^J7mcHw;W`)l<`1^se*8F6p zdMvS7?6e}Z5gADT09`dW7b#uNl!Mz=C9^w!4NsLTCwEk>*jgmcOv(qW9RsVhv4wUv zAcnz60CSReI!ai{$*X?nWD^RxVq^Z^XF;9EqRTA0(QL>;T$73BNC1sp!_zEdcZoKl zi3bul*dJIrUc==xe3r4}qErBzSd5o%O`vN(p+#+8HZ&OWHY(Dy9L8H~L4BI*6p!3t zX_B=}*$0v3sewTfyOXgXkMnnoK#lSB(L^k@KT&eAO9Am85<1SBhR@4949*zkyvH7z z5C7NjGjn+31jfqpC2bKA*M_>?$32>&yIrRR?g*T~g+EiPEkc*aSMD~|5wTTcG0=@n zT}^H-Q35?BKHQYgxZj4Q94P?{lv^$!gTN6!oPRwqEp4i&?b%a0TF}kYuMRuvYObwP zzVBtL!+?CCl6ehl^o3Yfkj_)Kj$k=y4Zj~vOTYoDEsEBqn0%F30uLSb2SG(NsA=!D zHn`f711JZN5BpZ=e3Vfr6)) zJvi^It3a*9%h%fm$suSt72@-TOd!gK-1BsS?K+^#5+fDI*5s# zxa$0118aEW1jW-P#?cWT(Fap-%~4&h(}MRomm4Yiomo(&@zu?TYKYi{Ze0k|7gJk< zn$riQuIrMt`VqekN~5J5;*VBY87~k)97M$Lq)NSpE!`oigNUpS9;A?Uuk`@V=Njd1 z5Mi1iiRBtv5^)wYz$l~QpaBQmYARm)o6U7GDhJL?;tu>yv#W<*uHz!u-IQXWl4sji zq$1xOv0ovku%C2-!)_prwJco~Cd*|O%uz%lDJmz}pXaLzsxIwg+dcSKX?)5gOJYUMI5|n3BNb1AqYjdVrDXtTQwJ0FE+jq>>L9 zBYjzb?6RlLJHI`cJAg{3ouU(LuS8G$~!vazXSvYUY}#d>pel zPy{+1fg@>ys)QTWb7!cNVfj)FM?wnizdcP{FC|c~+M0MB+tt02+s$#~p6h9G;#B&^Y>ndfKKsKpGZI=W9gZ}^{ z$3PKu_Pecy8OGc?Oiqgb(eUM4gFUEUFX(v;utxF^U3J}aye_j$Aru3|_gIxAlh5U( z!A1;`iNrXXhCzfLr0Ss;FOF-P!iyFIs67bge}<)zdW848dT<2*fyBZjT?N}~S&9@`(sMQT`q zZu^DfzWZu+DfTnNXI!NGl}|pPaT+75M|z7ba2iExkS)j(CxQCv$PB7@^*h+0-WTUv zJd?|TkPe<3q%V@LMU^kf1}iNPePeISQ&$+r$L*pjkq0XboJ?^5@zUViE2+S9lH4L1 z!?6c|1nKBOQC+IR&4r?CnfV@4Hq;c6P*$+i5D)=LJWpPm>V?}-a1d3Df9%K^o+QK( zsbHWesAXA7@L#=*ui-PTc#gpu=QY%pLj0_V$MFPdfgiNJ+S{!~6)*u>Bo*o-al=#V zS76JvBDO-T>=lJkECA)Sa?`~0K~~FEfb26YvlapmryV_`h#{HY$3?Kfur@<+JUW=r zWiF+nC0lOf0^5EXN>=w2hQ*amM5rKu+@d`+(4%>!sv=&?J}vRvk0U)a++5LwR<_W@ zIDOF^ZUNt8v}la&vB@G?8cL}q0qGoc#V)m!HL|+__KD&C)2RVgqSRz4UaD9Cr(+|J z+qT~Nuql?yGj*-02um^(3;3R1`hfga{l|2SleRZNBk*I#Pv@oJjov*>^|NN@fRazt z5v#Dm0Pe6o$tY3#r9(KRS2Vk?Z{Y;Z1Cm|moCybcXkhNuug15$mwXq6AG)Jm{cGY!y}usxv_#Y7AhK>>;4WN_0(MwB$q zkyvIC+FYcPHwGq7wVdi|RT+03h^=_aju1FOiPls!kom1-5m-MqB}^UoX*v#E1zQ!J zTkXWogOUbME?GzhyC6Y4{d5~^tNdNu2?R2)rxQD!0ND-`5F{>1VEH$*0SA33$42ea z&WYS{y=@?I=f_I}s%Wg#STS~j%4cpO3{Kjh-R&-`Pmuw3?LmP&OzQrT^Q>Pdytd&s zD2$2xwmWMbYl|sbECS1box`l{Jh=^OVo)C?3zCjfwSBTVF5Py34yKqY>H(S3$F11p zIWGSIh&n?SO!B3C4-av&a8zQF0Q~*cAQ^j0CMZ1 zC2K8G)uXXw85R&)4=z*qYHFGm%L20576=82mEWvyrT}#Ls#!JR8CVbdMwS|(acfl{ z$zrP{h7buH0Xu9)we#u#S1;X4t{H!b;R~_j1D2*5z_vSP?27HhaVs&)a&%U!-&2Qb zgps~O;z8hJk<+mmn$BMi@7>(TtZ^Jkod(HlV$jIjk_P^<(?Ax2aAho2c4#rTDS#(RHWV#&R`?fF zm{3G-x2}Mz7(;+;f43k>2Yz7gBUCojaG}-(j3AS^C)-O9n(H;TMFK?k4=ugUqMo)I z@*UM *O`GNRq>R}dl1&GMpKExbA_l_D>5o@eDBL!8NRwNL5$Jb8OE~@Jm&15RJ z@A5EbZW!uFrx0` zNZ(ftI12l0wGgb0914*>o6esIVw2mcvs7YtVyp7$J#|Fxg3=lC3s=m71QIyxbrmm_ zRkx`tYB7Dl3JG6m)V)}B71Zd9Ya1<(g_}U-!$_2VLaGXlg)D+wFl5I73Du-4_cd9S zYfCxcwK3X3;x#nI3PqXTehQ!rQbg|?iRG*BQ^yK?Rg<6VILOxg2AK`1taLA3AZ`?X zyiAeHQmM;n4ziYAg1{60+PWA55nwLBpT4ugeP=`^EITPDEm^^_2LcHP=tvQuAC5DZE`vOy`05Y;)bPJ0iwN$quX9yI;v?(0*IoTN z*qtk?x+c0!Y|KTKtH=ZUy6R^a<+M|EAm8JYa)Ku^Hs!)#=_Q?ox;q-+?3II6Wv^FdOBd)DT zg1W3)?0b}>T7N|!fs@o8I?gpzrHnxF>R#`10C<*}_1{hSM|LiytW#YXlZ&fHTaG7J zF*LMW6-c$*t!waBfTNENCs9jUga28^XuZ>76a77GMsjwVK_0+>a zY^?Bhvk+B`n2DY|1nLLS1?5#)YmxUeoI&FfN2c1drQueW7Mk#42-^iEVDX6lI$ucI zWRogQX(qq{kOxB=LbBATgfQqB$}Ukpophkmzz9{^41@%+o)Ong4Pl&FZ9!6ak@DNA z8lf%Wqhi^@x7fvo{P>O^T~Dc|Er-Vyrq1~ltOlKrzw*_W4@zTcvDK|o<&3Clk<|Cp@4U$o?o+q9p?ex;sklO0B#!-);SMe!J}Re{KJ_8O6Bm6yoL5t)`@@;iw> z`g(ZhRiwJAy9`OhK_7r0!%qOvuW0SoS0>v6VoxGD{yIseQsTo%rppp)fT(AY>#B$l zwYA*6wMZ}s2d~p@WuyFj32?0TGEZ{0_`qIZANSRXPk$z-7541h07Yg&LN+IDTT=_p z+UgCSSxBYl9sdBTVtDAK{{UBRa2A1!*^3>Ip^ZUPAyZmqF+V(JPrj}sYs#Z5g&>en zC?jrr4YZd)mgKe+NI{Pjk7;R!t_D4*=TWpo@#wk=#@u$Wo07%gT-iK5c%xEz)v-Op`r{CP^ci-2u?)@`AI@c;?RAfd}L@HvRea^{_-U1i75Pdl;=zMdmtb?irN`E(6zVO!Yn{VnGppAn88}t9`h+dsXK#4q22b9bu<@xhBQIV&i?4G+S-HfR z%%1`4gDl(<(X-ur5$fzhQ|wO5?6_nol@3RI$Fyvnb^c(g1tQ`_Nkou7o(bQl@j~j> zSgNo6Ajpf+a}iB9f@LNmA6l*Is~bDk2Ml~EX0J0@wRWIj3x+C-qWH

Tndn(B(5* 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 j~x2LOm|E<-gy) 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≠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

@{3IP1(?A$P2Ri5X7s4+C~Y}r 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 z zChJ|;2w^TP*Mmg7hx2?du~Y4Yk9yX~?1?Z|$JQa8~ch@QDR7&;bn$WGX zg2j^Sca7Qf5*-^0ykDY}6@-42x*e&)FCH_#EGk-j7KdHTHoZ{0^2jc)iaP__=y?k( zaGIS#a5p)Q>qp0G>&29ZO=YK+QJz%(EBXWx+F zowWJwQ5$ie-Grvh<40pyZKuML*(|u~17c7~H-`*D^BTA1giFuw*dvtGZ>u?*X66w9 zWKo6fCqqgN?&=11{yNx;=)iNZA8nF`;~f}9{o<`P+Nei5Nf2cvEu|iZ8J-?8?uQ;8 z*Od*z<;sSHB+Az5wwSXncnpd(n;$n7_8^gO>ein{ze-)>2Wux>+OBX6#_A&$E+8_8 zt4bO#xcdi$9@kLd|6DyV?Q9FdtEW$try+eGfMGIbyt35;bKYFN#tSnEP6&jN`xv)* zkCzR-PRqb9suYz|EWzLlhmy-o=SyWS-AoXFY5$;W`UxWiNqR$9Ls;Zh=*pY&{;Dvd zcQzz9VDC*f?dVwSgwB0R7$CWkkibG)S$aRZqB6=fcJ!SU_Jzwqt!AqDp_cNjX*$N5 z5mM0AK-Tx67wXP{Zw!G4%S-0ts{P?ueJ!YT=)UW>wAI*KifaqhyB9k5SpRyChSt@Z23j}qj{Q`2hq*|Wlp+~4R(c|WobHu15 z&F9;ttg?IXJP1+TtQVgxu2r_Pq@Cr`bhdJIu-u#hK>ovI%g@)3ozr*Dw-dV{p(FO- zGpR1ktcp8-W}f&FU7EbX-PBu6Wj%)J?)MY%dCcz_?c+GD{J{<#KPz?cnt$j1#%4-C zYr1c#xj^IfCz~n#tUJCXBn2(q*R5^-NR#}$nNkWxF3c*FDgMdhg z3=#1SKs`ym;878Y!A6vyAxD;60Eie1UqtbT_`g#-5&&_khd=_6*Q?0uHRQDl#KDAA zp`bvBA=Tgt!EQlG<^$>$z?2XfP%1Qt3@9iz#J?6{b5;Qu6`~C+Q&V7>!XXY2OJJFr zL!c0l2sk2S2^)_@p+JbHNC_dtUusf&1RI0``XDu<2_Xc3DHRbNl17MV`w@5uB!^HN zTovrBO>LoWj!>{irW^F&2|(S>NvLGqUj6z!0| zh-Zc1FB-~`B`*LT^0zuzp6HMG8-lcX{_D8Rk0{s|E_`dgJ*@1JxSm@v_%KBZNvt_<&yBB%k_{|kGOmDjfrF2TSqIP^6BG9a1nK$jwJ6~6>zfPaDvAp!S zE+Nb_^ZffDvZ<0s;kKtYpIvEM$W%fv2p$DnpU~Ypuh(~`WmVdkB;O-9mR8G4lVh5I z`~EPN+j;BDC9;>pAL6E0-96!cj?7c#(y1x7j2Z>~7FIjsu3KKC%bx?@a~gBjP26>E z@Fs?f}F8UEtxdQYfu;(597SB5ln+M&VP{6+WHt{kvO$ z@4q#ke%{{pJ6(A#vK?>@FJv*O^6DF3t?NWXYJ|+)zp($RaSs9aP#uY zIXMB7?m91)$z)X^Rh(Un)z z1?=kU;^wUisB(h@JZ5fY3?RRQY<}2A7+}q;P2Hq%aU^Zcy`=$(FT|W&tR38VG{Kh6 zCy`qN^JuCmIl5T;fSsn{cG~8ylDvrcAlaAXzn|U>G=Ao8Jf<$@a5qPn!!$UOu5N(5 z<nMjDRrf`WmBhei7X8h>3m1QAelJ82Pq zNnRv?p!=sKGPSb?`yYQT4v73u>iXxj?H$b&;cn*N6E_2XX~dhv&Bw>hFQUuOC(bV_ z4&y&7$%_p7%kqLTaTYVD&n|ffa6K?O@?(bYRK+J*(#jvsBK^#vKg*n<0?e=BD2a%db-S z=f=cOhW9_TM*qwz`>pAXBY9{PA{cjQDk9*&>{|R`H4&-5qY8Y;CK1L1Ow(_T<6odf z1O$ICwvdSM59n_;3CQ*L3w>yj{%qv`L%#kw_1~KLfScd!d|>MH>%s((J!YXF?EF71 z^Y0n@-z?OhEdB4~{yV|{4*O3YDR>M1SBUP<_51_b<>nLpLF~SW^dF!_M1Eg(#ePKp zl3iqn^`N`^RcHSr*#(bJ8R%*-(4mP?-0E=qZ$0gA+U$1)|4=RbO>N8LWY44N=<23p z>SFB#RQk8Ejz4{a|9y@7XH`T<>z9H!z`5wi3a z_oqtX|4Os|O>cbvOab=4v0eWU6X2gK`v(&I2d(%Yp#Ntz?*BhXu#=P7|Aq$skE;1y zBd_|ag-1+r{Fk)wU+h0QO=U2sf;gk|u&4jk2!g?Q_(31*o2B<>b|jd4^8o!lRYz0X zZ-gx1cCO~Uh>5K~OX>zrfc=){_otq~tlk%eu8SO~_^w!Ahdcf(kKb1F&~W^@mVZX& zcPc6QwT^$5@cSwrX8f~_`E3m4=PDl7P?8rp8!C;9oYh5}M$YPbA!n13v*lnt%_yqu z{=)tO8YZeXnk5Ds+75EQ`!KX0tWQGBcbkD9n6XAf&O`g{0~mq*>a4IKlqgY1FZ3(& zHvn?>cpix+`Z5cRn6*bxMnTRxvmnC=z9p3L2M2N@=A#h{fFQ_OZ7-ys@~fW?N%b?* zk65OHbSMX@4ptO^k|N@;9?WLrel0mNPqbBJ0woBqg#`$)16RZn8bp~6Fn1G^zG4sy zc~Br{!SyhX5E8@v4TCJr2Jj;mXoEEzzvs}V5W&9}0@i%|8(~P!U?XUQWjctGLQrK7 zeqXqVSWtDq#RL8z7H&h(5R0b{>Vxn?P`D0$U?~;iGX}&$F(XhHIQStxZ7_nE0GvC3 zkvSlfe1G{)F1}LwJ{(c3-?%TuMc^IW?d-q}EW?0cnmD>Un7L}0*q8#}mvq{uZirQD zhy@N1U9iXk90hENfDumB+`{d9zr35H{ed4*6bMAy(&|e%(vJxaJ~cIW)wff11%W6( z185TP!$NwL6~Cj6W$EJR?(_o+6RaGtw01CeaJL6(@J{F;sDn9EfCGMfxVxL< zDRT#N7ohYIuM-4uj`f$wxCfCD7(|G&y(JXf{=4gs=I&yrd%^&*-0TZ;5zPM)qvmR9 z{sRURZs(>8xBLM|U}_H1f#rV6u1dOUswR$(b_jylhv*+7<5)Sm_{iB=TOM+X@SyTw z;l%+Oq{K2aw}89bxd9Nz159rHPISb;J`(+7^dlyg3XXP;F5fYi_<+9rsjmSb2}B(n zA&nsK=IEpW&b>ANUT|>jfFS(_i)Z5K1_bIi_#@yETm2jz`7R<>5FLmrF49kr^y`5u z3W7g`5ILY&9l;BQSd01XOCnd~H$^~wfMc8gJO&gZ0=^xBAqXD4(FgA_7I>e5P6gix zy(3Zjaul|MD-Rs8J_)&i#tZJmi&$fWICI+xj##|{H8BTrD#f~3Ud0NvHj`pKBcujX zb5bz3vR3kOG1u`?*ERLAH5D^sMXc$OL6YJIWVkJ??GOw1q2{ipQVa^(;6QF%NiT5_ zVsGvS|8gL=mlP{9fw+UKI0DVf3Pnb7vz1~sP}2kpM;+~K!NO5~9#I~CZUF%z9flmIiqWAkXyX6B85Th4J(9^K*k3+^*hW zA%+*XgDWG*&)yDXZf)>2*$@1%HbAliWP}SvW~B(KgBZ2~Rt^*n)R3DLtGm0knYe%{ zT+{+|Xt-hKW

!ikS$vi7?2{6lP{FWFaUZX3B5DiVHogH{3~0?e}v$d;<3NydYO7 zR1zT6)Wj7XP2KIm`VnPC=>v|LIhulOoetNO9Tor#1^saWBzb>B3{;C3!NTwA1?qZ$ z18fBh=KcE65XJfLcfT_EM?C(;u3zl>M;!P^k$*|oFLwPS4*a9YzohFIyZ#Xe{!!## z()Ej7|A+(sDDp4q`o*q)#DRYl`ImJ4V%I<7z(0!ouSypf-#Hu=GIsz&L7rgDXMY@3 zR9Qj6NK;$mq_XM>!OggfBJZw7{Jz&IFUFwD%;%?aR9 zVgXEMVvB@x5U`7`wgSLc0GPn?0Dg^tO%C8;1ndGT0piRd;#(qN#8@<-a{wd8^vDpO zHY1P#6VA{7Mp;LA6_F{Jmu z?t@4M1q<;EINhfsSw(m>5Wh ziHU`UjfI7YgM$mE1Mz-zC}1iI104eg6B7p?7Y7%gkN`MBLS&>bH@pMikLkYp_NyVp z*eF~mTxcl75L99mG-8zf5iqO3vi}Mc4}30;a0vb&9Vi?M1PcTEM=T-;1r?JB)CL6= z0}T}&15^a0LO~@)BZ1KK$!U?I!<`ud_@nPKl0B}G*A`fMWAe@=P+?hzDW;S7fEX$w z#eqX125CsNoKfKc`-2cX@Vzx4L=2IEEJ@%$A-6csg31O}UjJB7w%Sg{@#6KdYWa}i zl%|O6FdH|+Az8zT`M|ul%vc4bp}kKZUMM^*W_>oYk@!`bnn*Co-0RBM{koo-Z%Aw5 zG^HH3?CbdCnbP8ooFksu=URv7CMK76I_qqidq3enqr`PH>D9#nUr=3HXY54`v&>0hu94&9 zPIR}t9&?25obwx0m7eP!M`O&)xf^abXrT7IG9UEBQ$I$$qb$xIuE*0He~i*0pV3vq zrHesATyFFOZIL3yt!DMX3gYsI@s<}XTCfIz$cpbnx(s`4?Fb&r?50UI-nO!55WaHoMrua1YiPC9*mw(!u}gv9fXFhBJp~I~(h1Vu_kUj8a|k zcvewVuL!Ce)HzyuYS%GDg^by*@2JOQ-9O?(_!6nwpI z45#Iv$bAsG-?5}JYey2TPks4L=xoacvor!P{pY>chb;1#V%{>&m&^=eK9(wzKgV^I zXvp`J6jaaAOgvGOU>)trq(BZko*`~g{85O0BO1^146fiDp}Pa7E=DRP!#-*l(cith({ZJ`pY?jHo+b?IJ4M)qUC~uP8Ha9L=}o zF=MurMZV2I^n4%%m;d?1m8%ld8Mcoa7SKk-@SD)l|u^lZt_rV%F8U3@_CoZHuJnpS!6CEtt%c!h6CJrrT9f8}}huuiu}!`0}Yl z1g0CU@!5wDPcS`LsDV~XVa9q~lrV&QQVZtQZ#(HwIUUvi@E-kW`ZgycMfi2%K7GwB z+p{yT^SV)9p4`Qem?3y7<1c4J@u0fQ zcD9|pH{Sft5tWSGes{bg;V$c_t)M5za#Khk9IsC@ZQ+-ssL&0)aWyq8X23y(VOS6h zKk2INIvW1^Zo=`IV`#WoViV#%q*im!O|_|p1N=#pQyEkD2DRe7jmY~M*!LmS!f!*k zxnUKTJ%c?b&@oa1w%SIMZfwasQGe^YE|W>IcfqUeN%Crn-~O8=%;yByHw;vTwO=_; z7Zjgg6CLc0x|e^JS)l}H6?)~YmA&t4dEx-yVob%){rCoGWcfpS*M#g}R`(|d?}(&G zVyT@z7r%hV2QtN9UhkBTY%J1bKh7*c!i2Hj*?mo$`{_-Rnsclp+{fp0k1A^p)No}}qVNDITv+`0V|9*GMz?7-1MHQJWw@#ZIGG5yOXJSMAMkK!s@Bl77nC$x=B+s1x&duO z<%82iY{j!1M7f?L%ioEmV_kZyrMSK}5@&N}$p5;O5@couZvCEaxIc`3Sy_gm!pp{H zJnQCh+Lr-r8aR@oHtDyYLh{1|_!9V81NsR+rYqZ2I4nK=cxFAgF8e-Cilmg4PipB= z2VtRd_CRsR^!oy2oP+sK1Wm(c?s=L$#0WQRI!nVg;42rMlg-`~7>ruYkHQ#|D=9h? z^gIYMf#xJDaonr>F6HCL5+1wBI50B82F>FR5A1~ZA?I5R;4!DvN_`1WYu9qz;DeyN zCVu5F zC}F?y(ua8d0KwSYsz=MTM-n-7)t|~*>=7$teMvx|{{WNwy&wr1d;tB_h^f}cW*L^_ zzfW&XHF2w7kzp$CT)97Bfwu_B*&h+tKXd>iQ(#FNK+cKSZ5;^PnAdv{Ug^`F%z2$hIGjogD6J^=y>XCiptB_h+P=`a^GM_ z9nbR94GPg%XA4nfLP@~ou;S3oStyyyJ7f}`Bz>U52pvh*bvxfvRAS@Ws38avKDSq0({XzLa z)Qe5A>q>zP1||hhKf$?b)CH!yUa}z{VuX!^be&42hpBCH%Ost`fUMnQX`$W3f*P@1 zcCW%fmEtE?OeN~FlmbiEK*|Q>dd{VQ5lXApju7$0?sw+Lej0$Di!a0sn1G=hVjyul zZ@#W+rR`FcE?t8aL?ww)>pXQlQBrTiA`L_tQvsy<>di`H1o9U%db28!4F3R6UL)I20@-}Kv6y7UMPMEz_0zQB;5tG$jCTFJ072&@>V>l>aD|$| z`>~M`$i|?`saq>zj1_VjK-_P@PhBK5{{Y(8_U5@nWxVyqBaW}s*Z>zc~4jrXA+NfXpoc*Vk@Slp>InSZEFA{ZN!=3!&j(f&E;CctQrvF0D=hhI=5*t z#cQBo)QeQK=6>ZTmYxi{^>5Ow1*$+6HvmsD5v8P!mW8g&P@ny(0VX)^XF;Fis9RW2 zID~PzKTSa9Yf%#g_^<()L1Dj6JT+05tyZLuwV^>`LCf2gm0@U<)C!epi2xY)6CCw8 z5hk}Cy2;4MstE%?d)PpNr6gFNY?eGsa?ou>gEx*HSe?RvVrPQ_G@pRx$>y-?Q8u(N z*i4w=wx|iUD-|t!6Y>fqdU55b1xSHixRbys8_eh!&b4MMR};2zust<=0vfksGhoC+ z0|0$waT3CsS18^2WhwE@K9DfB@zvuBrmZ z4Q3(5#E4=>-}KUl;O$-=)i7k`v0*$U9koG4CBZ16j||B9a^!c=W$kuVGE%A#Yzsz~ zkSJIMwS{VJJ2J2)I&d0+gbbZ5g5*k*xc1<7)f3X*Hh-wD+y%QfGt_EKE{W}}c7?TP z;u~=Xl)%$RHJ^ODEv zG=*LJh|LP&y2yI5yP&UWB=6fMC_(7TLUm0sD^>{iPu}l zJSMS$IRZ`6X<-DfDKVyqlv#*c!?6CPE4Lk>kUqM~pItWPS!RP+B&;^u9ws{K$eLX> zJ(oIKP^*KBm;>oM>PWVYYrtA<`xNY;ZbzXT>Y<~^t&vv0(*SInMn0!Re z(Y$HZQtgkAR1;;f`i(nBGq)XG;tlRb2qyroHROPIByf?Xsf0C#%JG;2bAbSQ4tr{9 zvWitzS*&c1>R7}9!$}KUX|>59fP->t=k-7Dr3I1sHK6{cDwZIS2=&zfwEo%6=EY_Q znU2`{nA1Z*vgC8#Tf%~&F~?!*IO*zml@M2I zmnyOjU`dZ{MQ3ugVyM%+fEaMwDj=StXqOLSX7Kb0ik&8 zM?Lj@33{<7D^-zXEH}uHL8)Mkg5#4sF+U2(k_WKXT3WT77@Mss;0zK09ZuqS^wyah z17dcOQo9-pSz(NT+in_qAw_kulqs&cCUz@4xauj5P2m>O$Vog-;0}?d8gGowRK=^1 z`y*i|p4zb~Ow3Jys@Tjy3?fM#2;WgoR>Uis+&b*a!a<&d^3_3M^6viJ@yoM2PJ{o| z{P!PnWQ@cH0E0Yt6T@9wpHbVk#!_k}aD_m54skrSthESr$rXxz1P-mf;KBVX;Zx*1f3`N6ngcX6ubEYny zfov+IvH(X2UC+~b(jX1>B&$AEnLvY#Om0rorkKjrEUyHx9^c79M*G8M3bvAHHab*l+M z<8I-PZJTgwB1qqk^Qj7UeZz^b6_fJz=^Qn5WwnR4vt^Bu*eKs1ITNLVYgUSg7CFR{ z3M?_)$e7fmHpRZcn1R~|^!74(Y0#EdOH`YY9>X2BV+Ft0T@|U~5YKTGs<*^cj6k1m zx@XF2rv(vgYWpg%q@kSWnV8>JiSP02W>y3B7vu@pkvkqbmJ*d?*tV;(BJr1UW;%d6 zYALLyPiDP~ZivQe8clRS0+YHH!6(%-H7bq~(QQTK4*H#(uW z1KBJpW#F=@&zO#0`cz75@~kxy@~BmejFz^qn*=!Yc+!A$FF6W;hM^{4^NpRb8tEAsRl;o~(BM8kJy^$UI7|jAW=|xSoJO zF{`PA`Qwju``>mPquz8M|JLwEPz!?D7GM}59Dm}v>s<0Xs`5Ni5o}J~ra^*iiQY-z zHJdD1byE2Ey$q>nb%MsAlE;2$mbI4?dS8rHO^EpXcTnax=LGMm3MZnXwXvg+S=WA_w~EsR|5l60a;SC$zkAj$4@1qJGn~rM4&%6ont{wx%wsE8A+| zg0%sX@sYw~j@qbI=f|zxlFZ%21qyeceJ&96TNbVAoMD>95=lD&Bu=P7H`jAlVJZO_ zmL*5Grl)jN_1dV;0(Q_1v;0JZtBI`7vnsRMatXu^2c+$$;A&WcrjT7YVvV=H@vAQk zEmpN#5!7Psn=@{G;OYbfc!?^4Wk*TnsI5P(iZie(L8(~mz;GLJ)6m}MZKWzhYZ8vc zZTRmRx(35*tm3MG#DSEbsNw6S2BO5Quqs#xd{iHOAX{6S$`voM%D@2wpG{3LnzOo~ zuE#RN6!?Q1@Z+TEMe%CbRa+&BM|3fU9^8(BsP5KAOrLGFa7|)f zj#=tZ2*(2iMdeO=5;9T9^!n%&_5xVotl#}}!TIBBK?TZ1Ao%qfDc#boUpZ=g2wJ4WTs91tXeN%qt2h9)(= zmH}umNyMnyeL3pLl)w>HQ5am!#T`n4zal48WyZ8>@^ML% zhyax_?Wst?EZMpMt;OJF2hg1WI-ruQ#2u7>{)a6B-M-q&oC?Qu2_W(VeMKx7R<9Br zVoOd<>+PVk#~%v<7XAa9ffw+SyT5g zVYi@<=cOTGutaDGS&Sl&%WfKjF;NG!328Q3gMGO4)dX#_mPf9z>ccEUZyvgC7$z1M zuR5WQ_>N=p&|CY(?B&^9V;&*3ARkcF4vFk)dUTDK^3vSs z>OXGvlxj!|KOKxu2t0I{Qi`JnEqe?}9kOOW9YAe}Ww2o6j&KYPKy9iu+K}5*h{R`M z>Chc60AWMiD?g@&K0;!D>!&msBjlFYP{uWoNmY%c6_cPqOA*lprrUt|KI%5$H`KwR zyIKBUAtyF%fae?X(+x1igtLMX59y-g2iI*-K`+Hx-yv~^#Uy|y`012SO>JVmS6CeZ zGl@HTh7qYDOzf){2;wLJtdSp{m}`8CEddXWW4q%vDL_Cz@gIh*zk)iZ&$P}7a5;^q zp@BL=mQAxZ)!hUrDCj}hz>jmj-88d6Y=x4_9qbGt--Pv(pz9i(6ouW1%#Y4alpHNssB+YO z+ZoDwfw#nkYu6WB0FKX3@Wr&bvr_dc+fh|y`n;Nz5mEPou z1Wv?_Of+;yWtmPl9mO%Q>$a>bYP{5tEKvBxq~bu6_0*RPcadFn1$GuLZVmV9OH{h3HtKz z@>@FFbWlM0?>|jG1JywB*@>2I#gKknr)|EPzX=#I*B{8lXuzGxnKCB2=j=LD)yWpn3vas@AnB22A{j=qF*S zjiS2L+5u(`LkD68G0H$XNK+X0hR6rT7I+eVy!AxXoSpvwaZ;B1gBFlTJWsBq{{Tv5 zhL^c^N4GH1|fz>`;In;Nm)E4|7%5jz;v#WI0Wtg{jskIJq>f7@0iP?fA%lC5xI zY%MH6&M$o z3VTz?t?N_(jyrPZWFC5!>ESe4MU^tvjBQvYh}cHKMCmLmZ8FHN7+7R1PRF16ol2&D z;U2tfu~~tFigpplh}G1>e^31Rew^blBd6UO5C78q{{Sr3DDAp~00xNLiQkU8$2_5I ztgEeS`imJAA%?~|!PVG-q&=x+D7HIRGYSb+CU+jXPVl9V8o;)_$jYpD3}Lr}vDC%V zU1_f$(jwa@1aFYrp4>E7A0VJsvlc<_3jRB4X^QK*yPFkpTCk8kPZR5{ZlLTP_bFv$ z;77>B25HMz~D+CxIPtZ=YVFcH;G@>Hd@@5YRJ8#ohau`B2#=-?Q7qAjm zG6Fq!+f$+4#VV%CRRRA1E0m4+M-5Qra5J=00)YsoOaaWsswNk_*AU^s40l-d>8$GE zBq>7u#;r2nCfjdK^%e9hx~5T&WU?4vi3CqAZdP$Kj4UK7k0pjopCh+leP*fYb6OWV ziXq|_0e@acS5p!SfMoqv?CwJ@+w%m*`k1EXU3=A<@tjH8PoW2W1`6x|u=zu7WaaHA zOaWcBIJ-1v2l@(@0M6j)DDNq%SFO=PsoBj(aqGuQK=%B0V#`(6ya2>PsgL8Q4w;EL z8Zs(4q1rmefpX7c4%?_O0BDW4o%rY|TPiB+TKv{BDnkvAtQ}AlXKGtYEsp3j3JFyt zoyV@E>09IY_N%+tg+m>~?o9NaTCx_lY{&HxYpn?=+($@`S_P%B03eE#$})^l^#qvI z&`tW%paEEbW?4_xKc1eB0-#xHLdxPEu^5Q{6FLol9af=TVUdm`kpckq=c|T>mp(c> zDYeP?$TKJT>Pv^I&9=TawN?ZDAOJz0qIl|Rs?Ekq{y)qgh$wz4b);u=#=<*ew-eou zjQfAB^w>ZD)BN_;J%1eXb~~ejMDh6VuCE;Ww5?DmF0?x)Mz#QP<+l3PCXrdTx3aps ziu3S;Bp98HbJQzGlXZxdzDF}4w<5oWn@n|VjvkWbtcLlzk+JA~4uMZab*c-O_X>XG ziEnehrY?msM^>meaah8D3c=tEXfJCldfnErEG@c&9Je6y*0l)kv^6#cDx>1Ta*6)q z&JL!IZyboRF8wy^=o=8wc`VU`iKy~2ZmcR}>cFYkzpaG;D^w%n?Rc&3BL8V29!w44$FxFWQDYo zCzt>a=d7yQl&S|QT7wdgu*dWgj1vLvcM!@4l}hAiUaHUn-N z%9zyRz?w}|ZVy92YtblrkG`4adBP(#3gfyk;-_Hs{+N>RzP)c)ITI2G6>-ZQ%q;=#iO}Z zg;@*~D~xmoWJuEuJIAr<4jvw>5MW<<=3|6v%Y~XB+`Y^{Y)g|NfoO>1w>>v}GYaot zAL97^y~z{r8k#@<)bMZEl*yG^+bjbl90#g{uD9yve#Cg5LwMl$?z6->EDQP=l1``d z{bv@mrV-n22_Nn#K^TYO<##4svLU?n41@U)HdWErZspPo=8Sj@)P$3 zmu9XxePHVE`e}sZoo($C2B!+WGWy9 zGZWTyh*Mgt@hz2xcgR4VqfJ)@?EsRcp#GtdcRTy(;M5sHJ7S^;D+lOU^U@A2NE;HP zfQTY_Y&77Vovd?TX_;CCiGdu+6RGHKcv{%2VhL9RpQz9aRF}1+DK`KjS~zfyT4tIs ztcn-LU@u@YF4BFc+gJ1!4S|Pxlz9H4qGy)#I)RH=Q1;0-fiPSI6Sobt!M1r1*fX1< zOjrikk4fpPyfHHN`!+x7R_zn<5S;bFkbH1_cU-uKC6vFW(oU!IbA^VoD`MTVWqcR|xb=ZErVc99+1v3cRvQ}w zIV=Y}LDl^M@$AaW4T?cOGb9khhY6YX)P)tb)U^zA4qGbM9x=z3+E^9Zty$Xj>|10Q zV$7{0ZMWs78lbIps+X|}mFbMn5DeIP+9zD;XY(OBK=5=oH8Nnvfw?tabTk@+0I4AZa)d&1qzG0?}T~2*VOd+lZg8ifcHmDWEk4 zx3;$c@6HaNq-uht9@0QiPsEZ8@Y_MYO=lIev|U|t5ZLcB4_z!EK?0OD(#>tsALSr= z&kc@&z7V3PJ;DwuWtV;Rf1HVRH<9F2Qpr-w%_Q~aNd6j@tb`@5YG9bD18`)G{(?0% zRZ&eIHCEQ)p8K1)RFFc0(smzBS&}8X8$w{fGbxY^07#C6anz(>xho6ZMlNXj9pYJ0?=on+e=m}s-EwRX0VqC83rFI_tleQJJQz{m1mHQ73(r_AngZH zRo~)Qb0gPh?p4I4Y%y)U&kbt-06LP9TH%^CL<=Ag#GDA9wC*(`g=#}!#a)emN3 z!0j7pf@T#vse&0v`Kw49`p)B74__L^e9g}1iam=kImriC4N%Ej57lF7Lko`&sMdtA zzqsv7;TZP$$4)xW$p6;xO6o;bEl3tb0_%|c#=6+&wXEv3Dm9qU{{V2RG9OL0&>{Rw z9>U0Ts<`{anBX`3^)S;-R`zXcVyGf49S1@Db#sD$vDdv@R+WsawHNLu)<`;vrnXx| ztJ@s^0HRN?{WW4U{5BrsGLMy#NhI=v5vPG{P3w`0j{#m&GI@c&<*De*t4vr{Y6R{W zd`RcZK<4bVR`;11!6hb4dtxK^?a&ujRgR6F*=?AK3{I9#Mj&cB(7X`B1HcH9X`v6s_vUUe>*{t;QmBy%Tg6d zbY>MGV&oi{fs)1(RYN3QUu=ma zD1y<}dTAs8^wNsgJ+4(x!4-)Eq0-2@SB`76<5??W9N~5(4aQPN{@ReFS_-rGX?MBf z21Pi4PTaQCs;at`QA<(|oBU zN?OzrjrFpt*(%tWQa-<)rYo;zA!#-zYz&t5Vfb;}X@3b30IH^IWpxwYP+-Z}nFCpA zMNdRn5Ph$W!=pG|eHc!A&>tCl!{yO2m&JC3@aT|UjUzlzCt zw3N5vMSK7QX#^P4!_ipo{ys^S$Q$*pfdil$X?z5jx^|w|sX#bK$Qh0V?W+R2Y?c(R z)o@_7jCYa5046ms6?O{lWCRsu&v}s?_vNIbr&`LhGsVOEA{kEmp1QRo=Kku$IGpgG zw2=`!CN~<+*05k!->l(PCn{AS@!EKD^%|m--^Uaw!5EnwNsfjz_)n77`#X7J9H0tm zWdb1a2d<#GZc}mX(CbK3wK@H@)(nGWkYI2Tsc}da zQ(A_rCfrIH61->B>Tn&b-NrzH)G63WRg*t1dbBIGPiWoygvm^$YNv?kc@0biPmO}a zix|zBKOOhS-%cHMbys79!UnEWVEd{ai_zJ0 z@v*WdNcW92C=VsC?)(_*lTDJUc`22VP2GR`a z;(9Ws+Q9La%j_mCLZGK#yPWFh;4-zh5N)KZw#!t&?8nJHmRs};AA6-8}dyDs}XF=KomSV6chs)bis*_T? z3s4+{WXM8@JWOiiA-GdwXM-sWRf!T8pDn(+Tv(lh6~tVoNRSRLBZk9{vZ|DP7$AgU z76bBg^dnkA&^j`yBiO)?bHh*%kkZ zO?8k|9IdP$(j#CGIf&B&a#2^wix3D9XJN}@sG_Q+y0vjw#pD$dSbIrQ z?n#5cC5hqFRSfaPpf(iN6~^yuw!_?M3hw3Dygn&gLsmxKhF47+Pl|2L*aFNYV3G$? z0Xk3TOGcR2SwoOvES13|eMYDOVS36vZ%$IAsHWgD|zWa;7471e2s% zd9ePaEZ`yg9TbTjBcIb(P+mG4Y*l**VFf8k`3{6>I#Vmoqc$lOPB?EM^7i%8aT)zq zQ{xiSzcL6QF+4{-KSQ3xU{cjc@dL6k*C-`fubIL0Q_;*FHNRW7lJINw7XH&;0dt9^l?L!$m;=_*8eKhn5wXVo2 zD8t}xPBG3j-7rmVK^4R~`>V5#+#rrxXo%HwSl!lb_yfQO;UIDPYGX}gPUmi>LJW&5 z!Gw{*B>w~C`0DTEBC~k0nU8Zbkqf}@>L*Zh9~yg|(N(VS+3}8=aO!fj zRQmM*fW68duQ$UkN4DyCA!0a&1S{fk^x?_IO(PmYjk)8)mP(_5M!@N`f3W* zS!GSC>l;{RPrkH?nK68>xGGLv$Rq+d0;BlGvx-<(sI`e`b#|SgHr%9>{50`b_}AGz z&;etypTN$wD>fX~@A3GChnz)!9tI2eE|Q-MZ#0 zRh9MMK&u|tv{;sgKru{s`w(>~XLRKqx9(vWa_c$||I+ZP>^^5@{{U`^z(ifJ`Y$ik^Mwv_>=hR32PRRcKD0P!(qPrYAT@ZdJ_*= z1jDBpAMsf_zNdij>UVRMg#&z9z~62hbpByNYkHn=Vx*quH=piapN^g=?tH7nrZN4) zq$l)BW{xiKDL=W~~`E zhvn`#?lckk0R|Nh9J550+>z=hVX0Otp>9H{YS^{?!5VpRJ#}WKS>$-;@GY;%MX2$p zah`F@W35@KDQi_AvbvWr0EG%I=ZgJzOtBWhJ`JJcz zx+{=CcOVb0wd+0t9|u5VBl?QV@h68_)Ks;tj$JMNCI@1NjBOnTq*Lp$MGalgBPan* zO)7Tv8rGtc^{sJIi+j?nq!K}%A6-;P)cH1&g(<4IBq9x5I6!(1Dc|u^)8I z@4^7n5rW^-E8Afsg`xo*z=`3ekDrUH_k*WtL&Cn)#nsz3kJ z@SuEmZV3NEN!54l?5r=r0;H5y1i?KZ>6mJFH!1)cOA<<~85}wC)>Uw| z)o~?4kr}AS0UqF@@dY)kUYB<^ZL2#&jhq`fTTu4@@b zZOx8YfXng3bNAAbi&I#_$0n`7kW9cF=S)_(#_;R&Ca@L$BWZynu9wiV-aQgpg4YRm zaA5Dxh@CkEDk{&s)xV2d49?TXm@~Grrhb)>51IRg5)>6YfAY{Xu+`;S(uy17++sxS zBn);MxSGmqC@gx)l~0S~5;~DONL3Wt@0hTMt&A~Fyme(Mc6oNO3e~k=I2P`9{?j^^ zk}Z1`=&W3eEMjC1UW1OcZxM*0Yc3G76DkY|2bd?0lfb8EK){U1`Fx0l97he#pdQ=j zmwl|Mpgl^sfjp;i`RR+MT}srM*GYW7&43fmbh8pt9=5HCu_>~$Lny`y^&DXSI+u&5 z1LM0()CC|zVux;n>#M|axoh9H3Rj3!Qez|O$M|XT3$Psrb&$D`;Y<#VBctZb}TNW8I+)0jNx9kr@~xh_UT?8&uEvXFoAZW>uhUo!PHVyjXT zM8_8AwC${3H5GWz+_AE+w(hfs+&~=XrmX5%(vOhDKmg=HkH&Y<5n+SFWWY~sY)PJ= z?Wz{F-D-hgAgC-{vC2iCN3s@zt=7hs(W*$~egTdTI~<)bP94 z0a(q0fsving7w>7b#t&pFUB~3PxI8+VQlIdk8ixzZWwNTLY+lY!FKJg zN=EhV@QB}(oMVY-7(?-JL>+>zS@Q@SO6;Rxj#eK zQv~;)Ce%v{hD1LDCoQ&uI&{>#R%2w=YHH9~X*;Wv&-;j-04rLzexHsI{{T?SEzX}H zyOp|xYn)oF1%<%?A3_F!hJZzf9L;7siz;#IBl+s#tg?kwoQH-u|dBQX3XdJYk(fRBn@4JP+29!v~Do)S*38cFbM$LE9Z@Nc;7 z&z7gvbxRVe%T>Xg51KLQ#ySmDDyOyBHKk%EOn?W_YCuBTL%TAXYL8O0$`{vHU^|_l z+G}B60u_t{{{Z!+AQAhjs>nEH+g5|O1ITIzT(}DUY#a=?-CG{JPOV5sew$WT;>vN! zelf%PXYh$|o%H^6qN=*q<~Ivji8(lJzMVB^y%Gn#-KnLkDZJKN zE!%nG2HMY5tF5`1DX+OeAQuO2bHDS_sfkrC6{@f<1Ld(Kk;-)94BP`c-tMmJHK0?B zdjA0Prj1Hf`)l#NU1fGWM=3k%;jaC2ednJb8nYIfnQsgHg4uuCdG2q1z0 zAaMi{t8Js7I>txzz&R42k%#0j!&c#PJA$jhhdC!rF_%~nFT}e)%F;K1$j;m8 zNSr~EwvreB09oRCZU&;CPaUY(nO1xb*lq(Nzz$j8S9JY;XdYGLr ze$w}<4iTCZxD0pth#H&uTqImYD*=2WcA-|P5hW~T#z~L41$ygfCTT$mZ+BM zAGu>uZgj|MtX1RJk1o2F5}Vm#rEoO6kQ&q(13b+C04*@mu1hGamKFy4TNT7dv6C8E zi#lz0v1R`N^Sk!dWr2dr%is?BvZg3oYrBmb9o1uggn#p<>ShY7P~25*#FP4AfGq>2 zF~e3~i3Pr0wp~d~NZCo?1i)f=4QFj$Lyw7l4lH)A42*^{!15f9uhzuf0-&kYtAk^QAYQ>u~xA4>D zNy*)nD|Qx%gPSse>j&`E4z9^C9Gehg*r@{%#!1}j=;R(cyFO~l;FhF~%=`N3F$}i) z`y~x^zjS=DksHSz6Yr~U3_`?*s=B{X0RI39B%S&50P77JQ4q_EE6ji$7?LFL`0A#D z>xE3o*&zP_N`f&n)+Thc%^h@tguZB&L24JE<}{EBd^^3S3rs>YpP6o++6E<-p$N%i z23&z77(FED7%j4;l`52#IYWG;?mcyP1R$-IrLNg2c@;9i$R2a7sO_e;L359WUlBb= zH50e4t%;>2&s&uxTBcEr(n$l9be&CHQbq4GTU}Iqh-lcJy*&o6Q-xLIxHh&{QdWB* z#$O(TNf%eHNs0>t5+#8fpZ1MbN-15AZnc%xqZq~`>m0`|6s3R)EEOLs8Hs5ggMC1X zSZ=+dgc4PZt3l=?hNN1utEla`qQK6l=Da~X~p9qr0Yn(7WyN>L~h!e0=yz4ir z`bQd;zU#4Oh0i$n`+>36{A8tiEU{Vav?8<-8A$&CT{SotDP7K#gWFamvpatcPn9bt zcT}y|S|rX)$_K0+1FN*Lg?2U|hQUYxbCP#DN?6IstA6KX6AHOvWB%S}L7m5<%PhLl zY{)@elZoa?0F7P4(=20mi8i8%2NE~fA6PnG!{sx4ma*faQ~;Y;jF)dspld&&MQvU- zG#K(WD$=tY##?JaeVXeOkKAEtlC@0P2a)Befk6_xld&L=^LLCujq&x-L@c#GQF5_M z0r4LaI?kGg&&xav&KTvq#~zvw|JU#{b9mzf#>(;~Z4nXIhPvIyJ({AsU8e=^2%Nx$ zKU1qMLYK!^?l#pCu~lO+(2Y!8O>Qnx0zD-@+?3C_--e|eDFF+VTP`4jz!5&2e?2fQ zZK|j3*;6`N(9P4Y4m;{pZ>dnf~S~0IPa{hK&`~f*V`W`0D=cnc>Wp-1*+*53FJ4bLjh>4xJ>il2>Yk1=X#nUFn(Gece2UBp(QC+Ung7-O>8!7so zSx}|%)y;=$h}ea0T?o?`Q(J?Y(+8xk>yotk5x)&eqoo|;k5*Y3FAzZ-M8xl;O1*|H z-65)jh^!7Cq>y#5^#IQ28s%;fVVWR`QjpLBx5ZXk`dEL{~Q%VieKQA8psDks>V z=c@{;F70F6J@|~HZ+<;BQUB2Jq^V@pSBA*e{mk2dIk!K0VY0&k)0h+OseKKoq8K+hst6MtxTy!H5hqpz+G^ces~i#n zu?0ZrL`J0ve;qAkpVYNU#8>u@b2}YOT~*s;vRB4dFSFF@8V5KL8rC3QC$kxtlEC8w zfB^n_fRX8}Gc*4Hjxubdk`EXoeOZ9)vZu{Ezde{cfJg^^8)<4Y$E9p_?LTpxeWZLt zOm1|Lv{v}AjuoB%Ud zBV)<{gQe*>CaF@juC;42g>L5Xc*!Gu0X=nBSyyey`GqoA@e$KY1b#(zTWSK&Qy~V$ z%W@A0CsL5gZNYvIzEWQ8hl^s;Kc(UiSl(w>?Wu&=s23zi{?ca{;phgXQt<+( zy99^_w4@Er#E(&^3&%)M!Y~AgW(GR%5%}pLRFqR6EW|(zL{CwzBj@6(V#c%-KM{_^ za~ycBJ*ZzV=y?pVM)D6` zb=`BkF0)J_6a&QfSd}D`&*h}SMhuaO#5kIUL4+Qp>Y*1ej%%92ixvZ@JqYH1hNY2u zj3v)-ETE&P`G0U7KHr)CV_AsnQM;jK^U zFY~Ca7I_S>5H*|M7I9aKpVQ@eHP!+67? z2P+JmOmP75(%{=GslaoR+#(vou?K(z>F7aGU8=#&g`#Vj`5sa>)D)3WRt|HPn_u{H%z_@dRms zAGE#N+pR?vFacU573w2#!&B>5V9T{4wnD7z6@^hO0OhoD)5P>aR?Ag@>@zI076K2a z9X+FnA(`ICMX|q0k z9AJ<&bT;b`$>}y*Cy9f%7&AJy{t^@|OG4pt2LynmZT|pl5vG`5lj4%Ea2VMlaR7p& z>#1kSC{g>RLpY>YIaBur>&R*9f{H8sOp_xgAs-+ojF{ArwPlQgx5k9Eu?j;pN2-8$ z>s22iDRi_;gr&^(g2DR0f_+Z0jW1+ya0KMXa#lts^45`tj>!QVCVAYL0DUzx4bYdc zJ)srFL<|){0g2*daMMLblr+zgSY{F0T%?jW1}09moa$;-8Fw9st$50g5I8}J)>Jf* z`K@FTSU)x;Oda@XIu2X~TNRyK?ZnQ5k_JyMSx5%EAVEC+bQ^1{{9W7$1TwFu6FZ#% z*$xvBBrZu{`8Trx2Yo2VM(xthiQI9$Z6I;y$4djMXspy&F?NE=XKo@4PTHW|?JlcN zkpXt?L4iC>>i&`QtY0U*w&6A?jEVfVJ8KsK*xeaP!P#+}=l8#cf zeX=<&-FAQurkE<~0h!Xrt=Qx_F8=_CIzvN!ows&1p6iY7Suq@AfZy9nLnuI4215)b zgOmKutc4jauE0`uoL^-Ca_gccYb{dMqp@Te77$twE>rkwYMK_y0h$@ z0Cf4PSvBDqSP%O~mKvdPYgHe~Vyh&E5D6RsJ8VX^^XdRsFWpM68Gnf33$fz^mZloO zwmW9*itWX5D>2J*bXKe1Q-^AVk-kIXLEvMN)3F(v&R-7i-Q36H#&PSWtN+vRmaK>F z+2kl!;sVG3@eLfKU2ZwuP=c{oPl#d(t^omuza42GGWu&7C>Gn1oIx1R;jCEH9W_`X z8Ch3zDmL_;x6(seYAGdDE0u!4Km$w!?_}f%HDds*aU4mV2FYw<(8$}82L7?rKo){< zWh_;8Xfd}bfG0{e6fJdD_!m={P(*LHu7Il;Lx605w;)Leeqin+R5sLbq1FYAAd|Q! z+e;9d>ovAT0z~%@Expd7p0*nD9o1aKVFc~@f%t0bVHS4-&YMd3j1ue5Uh?F@3-a314W`y;yY>)aZ+A8!eB8n?U8mNR)m; zstS#TEP`7wWXAvr)ub!;HCdHwOF7`RG1@`mH8jNvMVa1y3ZM*9MDH7k<*V;g#|nH^ zlb`E2$kzM@nGLC|bT3^XZWMmJOp(h{smo~&vX)(fz!U!3x)=fxU@pL)zO%x8XGA3| zJ1JwI3>2sb+9y#|u~`Bb<_CC_Fnz|gQN)%lS;4Uf0tpA`ND-hPjx(1ogFK`7>JR_a z@V_OC2=1}3b5%s*BkQ==UHv)Oohz!kCb~^*%te)}$OHSj>Sq__v{Q8;-{X^Vf+sRI z<-%a;C7p%3I~w5Zm4j7gL4pq8^wOXa>xl0VpzJ_DSvn|(X&q3!i)EBDk|+3RA9Yv~ zp?hW|BJDol?WU-GM|!?B*^2_ zOsEA{Kvu?J6nsX&d+I4LWn9}HY@=nuB}Ldx~y94dz7PEe?=dGlhhtM&NWn}j6m_~Uhi@Mc$S&< z-%a>Ob}pr?Q(YO8i>pRkjwe?!G_+e4NVVLpYw%WpqmK?JQA=8c2QF~t6zx2~+B6is zIHLI#et@rTIcvT+XW?H@reF9Ur5?ylPXPVCcpuZ2SXY{vec-AFz6V{E>S+6bfD6}2vyn) zgaomk5!X!(VVqfQK~i{;^4qBzp)KK~V%fsC*u{qY_>Lc4PpPIYhsPDB&iNIr2Az+; z^3|6QN@HoU)vZ$HjHqdm)BO!V&)Xj2*nq7iepL`BAbmM%;iR{as@bV#b=ath5yBz_ zd+KS5e{o_j%rWudWZ#ujQx)EzE8g3w?M1}OiH7N>bhRr}mt(sGa z_w2o8bR0>xEnH$|W@ZM9*^(@_n3>B}*2A#g@g)%*@P^#rUebr@y)5ci-2u z?)@`Ay4I@7$jFSSh^mNv_Bkgb&Wd zs%-Mp>#5nerK2lr>Us6#(&|xv3#gy7Lm4BGmU9 zvDT?*#E4A>xmFlD%_$}2X*l{yZ>YU09nb^0vOE}(`LmxkV@QMtQnA*y=SM43SdVjCsh+57g?ctQ33zQxL zGYqL@rymelyGy|J8k5}*#}dH|KhE20wS?(mOBA8hv)`*Px0u)Ik@cUdTWjM;^f(wD zxg$_^Cv9k#X67eKWDB&9D=U|nPy{k#Gs?j)5{?t!Fbw&uX5R8ocsM=PU|)|A?I=^UK-D+UI7k_V5+@D|X^WG! zi@Av9N6LX3+zFRm#m7q;tl!!(H6{h~k9HI^l>eh0BOwMv&i%t_bM|VE6zJ+5q`WAP zRd^1Q;8v=}BF7EGk#JV0T_;u`+?Ra&va@z^^st3}@02gAAK0(h{%A`XZ+R3#+>Th5V;6^rtHLdL1p_?}0a zjgXRn;D--_Z*Wo(J#)BWpL@#m@FZ9*1+|F zf%RpUS~NfUI;FY-cssWXLwOb&{-~7}%+Bj~v%@QjY zUoz_lw6cA75&^x*ToD(@xlP19ZgFa>r@v1RfZo7{It4x*S>!`;5A&@bBa|YUo&3blu@Ryold|O&r*V1~u#=a|w1q+KX<@Dof3Ck1J z&OYJ3XQ|FP<(=1<*-{1HeJWH@KLV&pFX~U-bhITgh`3s0{h3x?IHI>&((rMOterz? z#Mg7)<}_AIbS`2lA=x|QjfV~CxaGwYUrtddl-#F?t*cW}qlkSv!ikwkp{FJYMIH!6 zIiwce0MT?Byg$Q$>rd0*)X}SyLA#p*qY#CDLPF0d|L{J>IDGiR}V-hpy$DQh+bXiVS2F5ZL$u zdmLo)W`@&RhIAuU#+X^{SG-xwa}4J1-Kyccck1T!`_cF~CP)}O(^9G!D~96Ea%=j! zBp#5ul~i=y=&(Q>705Y;s4_2RmqJ2J;JrV|_eh*J7)_iuZkIiYc3BwNO5qBt!0RJc zi9cr3l~yghZ{bM*ZAyjm1;^&KfCc&wtlaGJqVOF3)}@5xbK@9_llHdFaYfR5Y42|x zwU9bv6p4S5g?tO+kqQ=Tk#!Vv)C511aoX;ed<`*u>Tri&y&;4>big?(P_BN7$C?3n=0@ zf5ICksik_=3_Ljcj;xT&!c>JuQ!jFmj)htRjs@|;Vw8ms@!Kq>ie_X{ef``0mp~Vu z5Qi@atijgV$!|8$0crK1O&}?wX(vV`%ypK6u|rq5YEb9 z?}RY9Xdnoilz`OVNDk_@i64^k1;wHYAZ#)@dyvu4Z-O=-k%U!VWrtLkVME9%p!{=;x+QJ2gK^8? zx0X@f zoF;<*bK_wlB_KZ-B*3?ni%3UIahB^_1MFg4CXsvePPDerq}DuzG=@Rj3eY+kSF{uf zJFqp(F<8!LmQq2?7Z6acvz+{(763{1DOyS-=s}f?1s1Rfqa8-zd{9^x8yC`y#hi~1 zTq7iE0ts2(l%k&qh zjJNj~*!7+L1f}|-$YTQQ{ zNbvxlq5RvI{!B80eeAH|SOi%XprH-@631GtHNFZt8IpmmkCaNsZg$+NSemwa9YX%9 zd<-Ar4bYRVyObDgg|b|4Sz-$ZUMtRW;x?h6)5c#)+pExnSEg^=u!xbZ)UBC9Vq-!@ zS_zat9j!c|gcqT+H|`Z;YSo+^sq2GYc)yv`p-8DAO%?XW2CtL^kB1}Ic9=dGHS z#-O%uft+4St-5lvK-k(*rS}P6uqi3cRmE*QbInB|3*RM+2{VgTLC>vDJNKDQYY1O1 zo=p(>Y?8xti7T#$l{G+^c|)zmQXc>>jWAl)2sgexaCqRTBI|Mo7O1BG-j4iww=5*- z+%I0gJU4*c7?SOzM}pDh^TR&j51!E>gD3Oukkdh8b99vC`G%MHEzUCF`g;K z1kvT#>{TmE&B3~UgdgPJ(H1s61$Okhf^!Z7SK$9(p1DnKnDYX`BnX2CY*&YEmUxPM z39M_%jfbu1F3f9u2)&+w?|QFMP5J@hZdyjsrgRx1MNxGQBJGOn2fjd4b4lvnRVIe! zu~QrxsB$!Wr-qB`USHeD$DTC84WIxiWKoUur9cqdzJX>SaLvZGCoxvFS@gPlT}1)HG?uLc{qy?Pp|l$a)Gb1q*~f`uy`HmL#Bm(9S=WaU41P;|Uvd)%Wx|UGeN4e55jfDI%(N%>z1Gs=5JJ?0^wf-H?D7*#i`b zpV2#)H=9GGXdK)lEGTZfTaJ2`PuwQ%hf%Fh!N++y0w$NLh!aEjz~boG>_km)?bOLbm(*Bbqd=oE~UF13?WW{$2L#Bj@CeiSV7SdOR0k4s=~`|f>a!Z zRqX2QgwG|2ZQK-S5{jf|(5PwZ;KndUcv2IinS%zU)pxTI)lL&T2oV8*7?knTc zRI~0TF=IFN@_I}GaoQ5JWw7;VeUQa7rHixpMPHR|#pD>*nCJ(t7~G+fZ~as|9SMc- z9NY*G;^pDFjKGy4n413NNhZi2$qIuB7hxrlR+vTYZ)Oy3dma3G(}YCj8)N0ngcBu^ zXH_fT09U*y2kfBMvfqsrs0>n`{bTfGA$;GZtVyaE&XjYX_QamijjyY^Fd<;h!O;=> zGP{Bu^CESt$$zg4mzNkdNDBoZF8`cXgT71_f)#c#VlV=5Y(h zIkX=hRb{11V{+|=22og*L$;SW z_&w;fjVnjP= z=E-7k^T@dEiNU}gwi5A()6QpnyQFTwF={qgY}O$}5zLmq(HwEu`cl}lB&FKkCxok? znaA=Brx4uxoNfn5xFglm9ymSqN>ZKETOIe!ziTxzxm$;J^?QA!rkS zVdB2YZnbOJ0W4`FaC9Wq zI|#Cp5Mo8lG{Z&Cw~Zp0B^*B)LCpk}bXQ`k8A5RSe^^pF6NrZrN`TdPx5&o>^Z5vL7??F=VRMC;ZxPN^A*ww4K_2m%E@$WRH~<(81Avzq?woWA-tJELd3 zE!DzjNIO_W3ynf#2=lQooenEc)HJw(68nA2_cm-Zq|nS_Q!1z zu*GGh?`ib=4PncC$g?EjL=JYX)zkoIC>$C$*_x1sZ3KQ_&A5gRQ?u!C+Xy3(AXz(~ zeu&-)mR0ieQ^^tdz0F)=ox7>sF1p@k?<3+l%wx3H8YQ`6(+oAG7}i% z9TC0SZn2`Z3t#VhZaYNjGCC}KK2r1^J0s)Ef28z`;kueBgX8W$a?KMJ9r1A{QurCP zd@4%F&#{fWOk?{}Xm>kibh4S`ZR(N{$=(NiT;5@M_^~$pdh&>%x1!wzw zQLsg0Sn7@d=4TE3D-V}_RKC2Hut-*D%Q5@ca!$Zsh$He2FY2OiGT^ z%?$fRpe>$gTtT~aZI&ezq(8R&0B>tQw*UJfO43!>8(?1*y^MFk+pBeu+oa3*!|Jf& z!8jQ{lpW59n_u&*QUPh~8$i$~o6B>ozQ^xvQC=Dh938lsJ2Y^6Y7&5zM+#;TFckrO z;{)H$<|Z~KO#kIm*1*;P7;Kmk7-|oGL>9K27+Gl3=Zjn1BBxO^wU}YeaAor?;C&{p zaDVPp&hq^3b`a;-I{IveG=c_wCKN)1$tYvk_X}_OBD~@y3H)Aq>&=HQ`c>T@}A z@d%S~ISs%@;{mTy{nB_nM-ywOKRWVXy1@8b?x$E;*e+)DPj`WC&~|pyO~~<-t6>ur zGhm-~-XU-Zk}I5?B2>~tGlm+prCBt8&Kg8BVqIe~FU5uCIZSp)@3d(=i4ju7lnYbxolJ1qu7Q0MiHY>;J?%771PH8u6D13UJA zcm3rEE2JHGg#y@hlK*$tS$_N9{?X~-2v8PevAe)GWJ|l!9ao>kd zl~0@_gS7Q5G5RdXE0;L!9rd{ERP0AR@vvtrG?Y>XN;6sOa6RPZA!`lN53-((m-FBD zo&wHx&J8$#8_59x%wKx{``G=x-zS=qcH09OZBPS#)E8$Bs>`gJ{1>F-@DtN4^dBF! zNh3*@R}@vQri2-%@9_6N!tW(0y~Z;=;5@9+VTx&%F3(5_DeTN*?c}uceQTb-nxLdr10BcO zla~wXSvsua_+@naNe)6sO0I1?6C8slOJrT>BD1-by_zzOAwaO^9tH#~7S@`z2gk2l}(XvjNjxB&)E z2c*k18J-J<=Wc{_-WKk!@H;8_2=_4~nnJeRYyN`#=~-iAJlD)|LF>!@M45be{#X(Xx&Sir~Q6G!vv&Z$Vb>Dn2^usqC%(3@wBM}WwrooMAkcpT2_+j#@)5PNN zJ*?kyU6km-NNOpLA}1`(Za?y{!TDB<3QFURr9hJ_8?N!hy_$r)shM5%M(*a~1`p&oM+!+oUl;BcwgmLx=x)_2g%zy)t zL(N>OO}mQ9!{vv}ZsCO*=d^`LXBy`SZ)3EI8SXArt#!14N0&24YJSp&V$2_fj>b$g z^+Sv_kY@_ENTQ%h`{s(FAR%7neyhhzL739Cj!Um|;UuzWE&>-hmEM_bK_#~Mdx3q! z?IiI9vlZSeKc5@NTW!P-`kF>?J-&4qR46l-tiEz4Tm+ZQiIpS7KpB0+uWKA+;m8Oq zPT)YfMtWeHHE5``V;Y9*Q4J7JitDu2pXIH*Kt?BC-2)9yTy_R-@tJ9Ue3bHaFY!i= zCV!6Be9VW~I?o!<$L~v3##XtPc0X2oVU-n(oAK$b0G*}z?UzVHy4z@Yx)3U|Qwy;l z_W-e+JR)rqTVDfO?P?WinnmEYr#a9sTFdl(r z0Ev?%4`@HFre$D`Ma?u^yW&PNH(}ogmd&$-Wk5poX|>7JYh+3BIem>Vn+uDbVH@k? z*?eIOF6EoqEe%Vp6&*BJ73IUcFeba)p%oEO9tf>-WR0_EKp;(!#MatKm&|R{xLou0-n@h7J$~Vo2z^ycCaO z0~&=Dg8B|V(v=uEFWx~EA|<|>i=OpkQU5$1(sAu?W54rf@r1BPWbB`ufksM~ruB zGu~+3`qDGH$79M1U<3c`jn9rOZ|b$u^qT42hDY@4nEj6t+<7FED4bDn77{}2@?~~l z?49l)PCGwUP__X5*y$;>aEYS!Gf(Dk+7WZPa0r*-wsG_nU3 zj*fddlAy;Q7;0{<=4lmKq8{S@c2qeT%nJYJm{veE>qf7aKrYVa56O|ZoG2s7n5~h& z0)a&V;mE{*Xf68G zx^DSOp3W4se7y~APk!}M0Jj117!Z>gG(lWsvV;|{Y1F6>jPmqqjj#| z((+BHJwou@2SR-wsRlLD#1D7l2HiRSyZUA@COhIV$SHz35?xDuAjf2@WuQl*);+p9=R|0HT4pbUV2Qfz!^lSKp|O_K*k96|$1*w2-`Ge%! zm>63aFj?3DNj?jsrM-#SuiyTwhVajNT0Z|-$$zge{94nmbp4+-d8GbpP5(dS{ntu= zCBpx#)H&_{S?ND%@vqhW$}Im`on!jHR`*YyDK8E2dxUl<02JU7_>U0e|4|AFoCkOY z47+7xO$>~8?*t4x&QA&q&`wHh0t_N$Y+-B0PpYCU&cH=V?Br}S5vp zjJJ*e%V)r2WbG(xVE>P};|Bbs{|JumWCYaG44fG4>`iQem7Cf*+88(kPaVyej2#W! zfEC+VGqEx=b1>N$SlE&h8=A53lUh5o0PSDyz?88SFlA`Q`dc3BZ+XC!u@x|7U}OXw ziNHJlk@zzQc>Rx@|L-2QKXcgryodeI9QHqR-u;>L?#~>KKXW)piOsDoY^{Jj`t3kU zY-(pM@khp=DN-hZDgYt)9t3dW{ENma8}sw|1^5Fu1Ap7!rqh2jfxP2}<$9Rm#qK1Y z-zPCxP8kFsTk^sY(t*>5AXTA$j~eP~$FcXF-@hPm$`7sWE zC!tVST%L$Ix25tJuOx8%z$y7NL5me(Rp_AUtvmH@e&VMTu4X|*#`2W+QFGJ-y(KGN zFOiB_(0SDJIJmN3%M62tYd;nI@!q`N{ zz{AeP`Cm?cpZs+y!?w%J$Sqh0g2+u&2|2P5%fcBPtvd!Ya_977A4I4Vh;e3LpAaPn zh4HcCw5~~|ch2nHO#3r+Y^{WGZLJG-_;51KU^Wv<@)BZy?il#^xW*$N7t`E1dTCA@tDv?$kmKhCg|~3x`6#vToL!ib+){X}ZNXUmU7@fLF=vm30saNzMDuGm zeMaHC3gfB041ovB+7j%yyalJxf=J>JxFh*?209yF_EjiZJX;X78okduuDGj#*xxHN zH*$=t*C@$*G9Y<_j6q-*q|imDaNz`zHCbpS!l?A4${*%}nak!woN|aW?8LuaPklOR zHnosYaj(OqkX(-Dp!b&gv`N7);dc^e-nN?R$&$~#K(g!sisJSfPM)3*-L*yPrD3xB z60ff6%a5An3Y8o9@?}D=KW43g?PQ6Y*rdviX-{5%h5FVwT-ki#C-RfAn{4P&#@+rw zf~aifJQ>N5vOJ^IjA`$LkkV%xuvwiKuRzL0bJjG`bjanfR5l0RBk}vB>ar_nR{e#8L zWt?>zB`>vc`QJqz9W-Hw+)G3Q6hqqHbA3@d`Nn?JLm&aGr*GaIaKLox%s!Z#%-Nw} z(%*gAyWvM08BUgm;sx`jU@`87yws-1Q;I|0o6pNS;nHPa!KHMckJ_@C2jxBS2!8LP zk@k9!e~`T9ty5;UJ+#&v`!V<%$A`(wSkIdNz}YPVe>FcV@NsA-=^Gz3o<1KKGreGn zXuK(2%r8tN%#~lJR9_1tGoIkwFY*4I*#Alkeg#6{#P~0-{{|L+m36;j!#_(i0@32X zAjPi*f1PdrEQkS|gMT^q{*;$sz<`p2z_L(4j0XU6foPxqH`@P=_J57`vYKw;_P~+0 z3#45nz@hV(Bd%OU)((#ZxmE4RPiQ64C84xbwSnxNjptyf3UBL2jZ85E5Rk>Cw>G2& zm!z3w>w2t|;I#f0PB!M&73cJuDJYZCsGKZ0u0-(#@w9#%KXsiP?=5;!Rs;*HohUn# zjn6;t&I>CMn|^$$@QH!Prkr8lwu!2&EG5=lRN$(Y!#$~}IH%s47gUWd((5>Lb`ePP zF6U7UL3({f_G{LqBWYK^T#-bB3;Uc-x`kBXXdvnon#;`ureAY+9Je(W!0;)&48d%1 z>`t9~+escvdX@P-0j4UgKlB@`x zy!$(Ac+-dZ4*0~Q=%?*4(Hqm#=7%K9;w}!hm>rvGXsS{aa5NKzmhy;O-`EQC_Ot5B zJ}~6YGx?oW3~|3HZlXhUg)!Ii2%65DzKEiZD2Q><_6an%7w8l&D);%Cguv8mf|DWB zIiotH3HC?~&K#Rs*&e^G46Kql62@)SVS4DULfj2(;`T!2&8bX2dWB7$mZ^jZkRW#l z--2X!!%5b~;sIM4(L)VH$QQr>%}lt&7=T8$miXiPIx&^6^0qNJzj&BM{KdJ5Zj?w{ zDNVx!xv`Z?ko?$NXrmcpyDaMOL!g*n^V-*AudS7S9IqH+niSktm)P@n3vcG z39;;H6y4o?^X%Y$X2LW{0tHZM8u~}gVcjFJ4JYv!f4%x4q8MKVbbj@3R!=8JUiKG6 zF~Mrbtp|;6F=wAvkar7v*jFnaSZ7{SR(x`Bw%-ZA>FiR3-jUs4$mq#T=w{2v9}-Y! zH1Auy{>MS}uT$kWr2XUdKZ5EWppFXw!~vl?9B6+3o0$Ji%>ROzE0d_$sRE_?Dlne( zzX#RoT24z`=)UV|FG#rUXJ7q0H<(GXLROu5-zybPESixFS98{!BpZW1+<3*12W83f z((eWzI9_Y)^Q!Icy;LF_4=0aFbHhQNKZ0x~Bug?9nRR}@c~QYfwkeh=rl!b&@Tv^D z``-TQs3co2f$6L_7Xk>GQR0DPH7d3ER;1AfSGt~z@ww`AN@*@+;ZgNx>PPs6;Dg|o z*G9DoZOGRao?Y*>LhkMM&*hAb?1-Wc!U!vRW*!B2bw}uRQVs~rx6XG`rg{MlDr0la z{^~6C!NJ1zaOt(l5@BB<=;@tIEqe!@Y*|^0FxI+<4lFCUK3M#CDK1s1SH3;yb}f;} zCQb^4_Vn$JTr2@+!M@fd@UxCPaQ%%lkf6%eY@9#mD1) ziiuwf$*PqAfRoD`-CCDB`n61Mp}2M|dc)X$VklgZtBHCsk+KGyU%{t{&})H1znHB{ z4aeac@6(l|?ex{;fYq>t(9mB%my$;s z$TvoH-z`2Wd(~KcG}alBHedruhL<-BfCB#ViSid52u1RfA4PnotpMV7*% zCWbs=L*IouCQn9afi&ruZ%2E@)i=1xMG@OQ*bC2g`Lch8F&4wmJ1F$^pFwgb7$*$0 z@>=tTS6`@rX2Hjwp-#_5=Z0Vs-CHRDK@#R$y9jgR$Bvfkdp`(980g+IiDJi`3ExKr zW=Ks0KHvkTz_)P^jUB?GeW47?>mRlSLdDQAIG}mPp5gr4t$iPa zM0r=K34}y1{pT4v9N4+1slyCkT25CvY6&+3r0vJP&5d_X>OM4&Z;urF3*qWbkHXft zZ@Ud~dB|a1$?-4NTF{I_Wju2#8$*;?D#QliEby2)Sckcz*xIuR{RA$!34 zcIRr9oLtm25P5aJGPzWu+mZ8=t2ppr;P!hq1Zo28Z3?Ylpny~g9WU$vnp(pQO31^k zw83pqH!81WeEWsqDLM`ocSC`zUC9t@{kH319UbOJ&aS`kGwW`za?x)S4>(agTqJ{`BrG|GJ%7g{9WK6UPZRN(m3ca|*cKh8o< z+rB@KoE!Ua53iw6@`b}#*}`^ph{lC|z$4jbM)~#~N8D+RKu?*__Azm;(z^7KOCi5>@=Vf70a zExdX=^cZjB1mL>|Y`L%YH4E9CZ0O{&yIwHLcH$<10 zbX9m~qbK-6xQ$YEI^%w{)P(t_$JAeL*RV`$*3S7LJ^HDJJi(z<-%m}|W`ALc#k#_n zzqCl%&C>D5`FBN zC$CATO+HDchuvoi38fRt{K1@ude_WObb#*O9qWf$qr635y5n7fQDl@FJ$H!};WtB+ z(FNW36@ig<{?XxBtSXO(eu(QH8vtBP2I+pq&4HI2=>AxtVkXMlL2|GneXHFS69Eds z^URsn-BoB7*|dPwV*@$Ivy{>e*V9x__a-lzlGyZNr$B^z1{v+TYBPn0A&xy3;! z;bi>fwg$5_T5Tv<7h%ee(V5rpgzZP8vTv1zImzvNE2_Q2F*pwiEc!tbE{Z$U%M|*-1I+Up~k= zsdBXVqXfi|c&rB48~A${VrRmD6bTmbsra0>_M$AAuTtg5D^axE%=_E@C>0bt=CcMil~ z_V?uVZ^{f`zT?-*tgJcn+hEeM|*8DuxtCi<*WIP-`zPqB%F z?WArYA7wQLFHgQyX5uZZb26cl*_B^TR$R~ClJc4^zm=NCE7eBJ-IOGy`M2l}oq$gp zfuY7I$SbzpFyE8dt9o4<&;LYRB8wrrc$9!EjE_w-=|0?h)-UXJV2x%0_{ncb$nLgs zt10JopnT9fg7xt9=#ZR19}X{k0Lz+UyA*x%EHzItPbSa5hxGI;jOSlpiM_7ezK2|L zFU;r9A)@rKheYa2RG*-0^(KwTXvRBu$3$^6Cl9tlxh9>7k_p`Y7bHbUS zP`j|bdZMy(^6OL;Q!J6;updx-{AWqXUlHmz0r$u2ew=10|$4PsAQyU!zu-nf39m(W^yImaAgZnkluVj&duhHnr3|CHbA{+MaR4p;#j>X(V5% zLbMH4eoGO6;qeQaBOoP1!b6qtz{&sk3A#oZvTMY{q(qI29r-ZKE1v8*?)&7Ht3W#% zB<=7Ae%(AbF$Kw+ot;iRMO{+SM@rB$lA9g9noMW>zw#HMxSrY zzuOJ^bc>H6a2r=NiioolzLglJ|9;lS+?>!a^91;C#(x$D{W=EzM4hv%<7JjX7rQ`zvB4b8c7T>=?0dS`qt%A|p+r0`d4lRPKDf;&4vcqY0a*p_7WqePe z^_?a^j3X$X>=q%Z0kQ||JqGh`$SO%&W*VwZZ74uckA=!d{%UaLdWys@G5CRP6v}QI zc^8FwlkmB6+~;a|Q|UYR&O^nBZL3f!yMHv#=yOsFU+*Il5IX*|(DB#N`M*R*&flFX z@<4Q)``d=`H#+_`I%Z$u(&PgNO$m@U{9EXFqON1N%z^GhRP`ow&{{7*zlgbop8EZa zLN;*m1td!JgC>PyzIp%JxAk2Li{Tg@YTE$JR6Trg9=;}`me9{F4^<^}HKsKT5ILTm zUh8C0W~59HKWCm=?(c0+;#C#0r={#UZW_vO1Xf-jhh-BRfI%C+8x}y@UvLyCeUmSh zgbL!IQ{hT(naZwiVdT%rt9zUrax?Ua?5?JTKUGq4rnCRi(b^$@18|IHdJI0|Y z&G9l`x(NG#>5=eM!y^{uWReZ~;7GUi8#^7LoPOywtzz0KWE8jTi3PS)p*HFb{)MZL{~{8(0g2gJ}g74ep3PW_lj}38%^M~T;Me|D#CDRtSt;l^ct^N_# z2#+>YE8>sHk27R@Yh5ELyGx*|J?IpN$lpUz(*)(y1Ilg{Q1>R+Y7ade$;ZvfYXufc zQcft%74?BQ3^_@l{MAZT)@0te&MXW3eO)e+6|?VXX$k$Y{Wz{@zRo}9_;e(WN#mV#Qo3yA8KWX8b( z2k&C`5$lgD&L~#noz=}6L7W8XmcF)_adsesuEy z^mSNrdVf0vXa9a!%=-Pn@cThFVB(tocE6a|8gio_gW;^*&Rlwr9*vI*L#y^kG=Om0 zNT(&hS0SlJuzB^ti*D>gbwcTZ&GUq^vEQSkM*@N8)%jAEu%A^7LFD!sJVTrIjLg1G z6B~p5TY2%PhG|RS-U>FjpYI*`LeR*a4fj3k9l&1}>(zo(Z%tarR`0qciYC@9d!}>A-TmptUC@hn5xBO)@?= z)7>t={l`i7U(xk{Dc$dWx4#GhrMng|^|$@yZ~Mz%*k4k!_c5t~dXN9V>!CPNTeV$c z#%|52bE|S(4`~OD_Lnj`wq3$Ncm&uQrkBSMEZV|)JreM;6tENIo|!7zbvVStwx4?o zx{70!WhN%jWJ$6hE)`YyGouWXqup(9xH@>S!iRAvlP5`c_I0KoZWvxYOc#f-f2=&v z6u<>V{6fZqsAv>H4eyd!lX;}1!5rWwUE*kYQGC`dI!R@}&v#O%`NCY327PpM6nEqJ zW5n=Qr7xBnt&mh9N(t=AB^_g_79+F@Bf?^$ah6Gz^%!(5oyx=Mj*b|yNNS`m2u3@0 zpN}MPFIAmSk~O)@zpr(wSA@k>IPbYK!h=Q0wl~(XP$ES=#M1$6B3*FxU`Ha5( zPKI5RK}7&(5?U&5mP@E(?iMT3yhk;pXV&}#!yEYD9($v zS2c`7*rwLpRfK6$bO-N+(MUFnT-qI(UKKo9k82B<6cvYUOMoHRrw%tSanpIKM~)(8 z=H@PWpPMCd9c=bYN7K;2O{bxE?gO4PmIc3fl1$3~ObBFew@vL(`tZ$TN78%UZC zyqgW7G0fCkQjE!s5w^FKqD;V1x!y;ty@?fHz!CR?V<{*1)*7h9su`nX-DWo}*@1~V zX!)r6f;TJlz$yeu%I^)oHZeC;pJ?)OrctI+plQd9pJ{Y*eFHO(la1gH9VXjs`#pHe zHSE;6#-P^VHl1C3^lVgm%~c(j!rEfD{?;u7Z-@a9k_BmPhj$Fp;fhx^UT6!#eA3$2 zptrCA(vf}I?Fp!Q@li(txK<$n??AjW;0G-H^jU!Qzj$!032>PGlnf4^QR89evIy_k zTcD?`rXt*|)zrhEm%C4&LQ0aE97QB_UU~xkD3)H*z1XZWh+jTm;H^x_zi_`+eZ5!{ zPf#=3@-*09aY5ea6aWi-u<(G+~ zM+=8KgO|K*?#-?3bZTGo`}WRkW`haed!4$uxmH$MI4Cv2cZMQXhAVNZY)tp*z5#qf zHv005C(>R-OLT49GAaM_O#Hu2@&BcW@dg^z003s7h_U-y#Qd#5{Th0p>@OO|2KjMl%t*QFh{qtCD8qC{l*ibas#y{P8O@BTqx~$8f5a!8Tt9}EnBC0WzrQ;!F%XlB+q0jsAY?av zEegTG%u?&m(L^2RkXDkb^niS~V2V#-q4n59l06u0L~0%JQmM}0VnnC9zE*u!ht(0Z zS}@>7KJy7=^3R3{#^@Uw{hw%)Hmhu?X%p^h?^|oXnHpx7R=o6JRQd)Hf_oeDWWN8KEV4`LBR0{tk6@y|%0uxD?_O~>oUA*{oV&&s1b=MZnDD3D z&0o$E?Wz_a7O~A1M)wBfak+e*!HQ*bHa@gX-f1j`8JD$HA<0fFOC5ph_jNe_YM?86 z&E!qq^wZ7#>&!zEp4=Hh0u2*i_b766G~saEV=NpXFw`_v=|&a<%Ta}<4osR_;#xZ6 zu+}nQCU%0W_^82oj4s@Fr$8e1YsOYuRoXcM3UFSGQXo zG{E!MY^=Mf)DbzSxJpDzFo`5cE-pY!0!ps~WE?eueIpd*AT(k&1i2KL43fV^yPKz6 zj0mL^82)L1C@(+F2cbOnjxw+f`?%~h^t=|qZ0OkX)4jO%yJrWn>F$qoUhI_uxRPy5 z-DQ~4o>Wg7`6Eoag5|AD_jrNA?#JIPpD%Mof)3ZfoyP2K;5Bc(*TK*huE9b~towZK2Ewb-EF(43st>kLc*d=*@7ZdHZZ+v)aUB)Q z^da*LW?_OS?{@5QMkG__1E2}igni6CG+S?6&^L8ys_Y1prxq@XtB%Q_?-c zV<-+U*bJA0a7wXuIU47bne-yPOo}+G65c(hDF)S2LtI>3_2JyOcwTD*XW~Ne3)fR* zGUe}rnL3LF(hhg0Q!E-{*#g;EFQQ1&IecM>SUy{2^yIY`6YQ&?svxR zf$9szOoVF63$p6e;Iz+cEzEkGg6i1dYh`wzG zF^{=llW7h~-an3FzAg`xbq=(pFDM3dEEPv2q_&K!YA7hckG(;CumDT7ob7CK-FIadg(jSF8(O@I{o9? z(J3j*HlfyvH`%@I>40-B@z7K04DsZB2JNS82p)wFzp4Ry zq7q^LQp@}+*ZwKDAS*pW%Kg>W-CfJ)QKx`YR|@nSNK~_DkG;23$wJPjltcohro$fk zuy6VP%nB|pWOKC}4~P3ID8Pj|#Wd&O84yr~K^YJ8OiCJ-y6cngzrO>=7WwRqX&n`B zf_-G!ty%hi*!v2&DxPogyGQBWZ-75Ya&| z>@)uLlqVzv=x1gc7nd^?dJfOmeq!U2#jMIgn;wDOG$-O3dlTD@t6%WS?$fTUL+zIh zS&va3fSl?KT1j5XhqrF=PpMcGu9tR)Xs7s&=sida!&_?IG`%|1Qhv+)Mc5t6S=|Sb zRf4ojnIZ?jR!8J&QNV3C^zVp7S8=|O5lCbSXV%Jm=aoc*Rw7cz z`QpgLfL3$(%x-;Mf4qIQAVy#5Bn+F2&T|*yF51S>(mM2sC|cFtN%X!;?qebA8$Ibu zNh#444Se&Nb}gs*y!NjssLNi14qsy=-U?*j+ovWUy3bUKle$elo~zY-JdwC9%vI0h z^a6D`v}|&px0CIOpR0QFaH!u%`n5-v8;rLZDzMJFCNq5zdHKdzIQ)LAuN^g|TKu5m zUFX5uRPyP&(H#};$`^(*B*mf%XLctpbdOAvI!KDNn|;}ajAwX0vgY7zUR;G_Cfzl> z&w1+xX)Hu0*T>8kMSb?w6&L{NN zy|HC`4c}l#S8BDCdHo51yD^NXvMbjF#mFfj_~0FZJvE*FMpEL2fA2B)X#CF_Fn<5Q z{s#w)^GF3AT=)|eF>)Z*4T1p;_`={>6Sx9610LWH25^BteE{5^3{2YsmVi0n07A4u zh&334gAfGV8E^vdfnDg~E&!kaYfv%}3k2~)!N5W+HTo@}0Nj8Xu#N!(0msLP*&oo- z?eC8~H%`w10s`Q&J*lZcYA*tGA72VQLV)8#Y4A)BLjkN1;A6kJ1RxeCFph@Aatg!(040cPVC7bT40z-PH#++(EbNG!2tq(!DMP0bF=X5f zbr)GL0`7xGfE;=e@mO?LBv)a-srBc!BWk5VqWRW##5XJ_ZHFQS?)Vr7as6wpFbM2> ztuiPl?L^dM1~mgsIA8$d{;2-Q7RdavR%CAQaDwAUttV9-9}^)m{5xvZ1Z&j>iy{bz zfF>nu5J@Kj7kK`bo<`Du@;!aRJ?QuJ2?tTXr%$+O24Y6=;)DT6lznbTHuJtaFfAgS`1idcVorpbz=?>IeT@o*zX#%Z5+F!0@mf}?Kk9rho!Ram94Ly zmy1!>rTQU2SC#CcKzzInOT^ zKf56!Qf-XICTgEuq5b64A z+0$NzeNnyIo;e6^u7pW6T1)d%13eayES=`wX*-lPR#c(r7Mq?B%a0oL*!jnYtHt7 zcogC<6NX{Mo%^!FwHFT@5u*7=GQDosNRENB_=4kis+O9$y9c;7*vV=|CyA5AYtwq1 zUdx;g-2nwe$mBH9Wuiv?jAAbKbZo`ku&vfq#{9WTAptfugTkrm4-6Hu4u%^FRxOsi z^~}-Baz*~aQH^dwXJTHSxz>05a_o($TBTji!y$o|z+hGDH^ymWJzk4436}3s*7y;)B(pENSjd8M=!)aW%%6AV%@7g?fOZXtaOi841Q~pAAi8_@8_0-GNwP z8WJnF&tAQzL*zattKPQhgCEta$MbF&OP5%vapHyc@@m-ey)0Ymd#~&(`MpR3n(R}r zS&5L-Fp`zb#AA$i=)Mil8gH5`8NGlWXLvpNK4B!`nxI?970YZSRti_zFkykYEdMmLqxps5^?fxEvmrjA4YpmQEFCuoL_}D{k-f$Itw#zSlEcR@7 zcka`|!9n`a{V|T^G7~&*9E0_PuBOJ>gkBt}`u34xpKC|K&u@0Hq>^916y?0Ku40XT zxv{<8YnM?V=mEne#CNyaA zX>8MZ45jJ)TN=KhfnhuIUJtf6?@1WscT+1!JW^>*Xvd|`6g;X68!2=g@gx~f+j?GM zbaNQq=4`nCbXQ?y&2zW#&2p7wwvqVkgBuS*wtaO=doBfV7U>hsqzNsut}gp4&ePsN%A_`+V#1 z9M*fk=~7`K3FneB)hLShzB3mMY0wfF@CBq~J2*dnj%C@umpo4ohr)?_r?~(D<%#^bjq0j=&Y#Bkj2YOLgR=Cc9*Law*Jj~ zZOM9NqEv6)Pu&_xKR8v~Hw*W`E@(@q%3gXrx>9raeDNbQ#+5i*(u50Fhpm@f8l}N8 z?9a5x-wzgG_wiHs7nX7QeGmGhG$&Z)FP3roeV_EBATcU6 zAo3W5JO(3=w~*uhGcYGQ@C*V02!ST>2w?U=?(%^*4UCfm(qKcOfHc^JV*>sy2<`S6 z7)L?s!3Yi59MpepkoqtT01JVE0NKuL00y0=%0|Zr2*1+Pa_XBt3;`G{@B!R)q^1gF z;eXRl0H6>b24awRu(h;@c{szsH99?DC-(v7Ve8=l2N#UI>Hr6Td-w>Z(}6!kD8@(V z@Q4)HdN3e(BLSYj@dkq64GsWm?5EZl!Ds*?8)gs$}vP@$j_2hs{^ zZy@Yn)z$G(iSmB$;Pm^oPya-mOXGX&Kut(-C*&xozi!m6fiLP-k8X6W<|(6= zhrR(91))i}s5fHJvn6FlRO(ffNUi0g$-aokl{<;yanbgAjm-6^GVJVUIf|Ypr@hZ# zQ~JPqzgb?thsD9{b%M{EjZXpd9A+GCb2+Y^?0Je1uVpZwypoZ~7;o5% z``Qa2x?RXkMv%%>A|oU;e={f|n+?-zdk=~)hrc?oh2=hj-tlb~0A zS_3U)OkO;BvGP3k{eT(Pn^)*5Cn%REG&<0+8!>}(*LI2|kIHXs z?zuAKCHd@TU{^?P0TZT)k4xzNYZJAXA8Wq4FY$tpGEcdVH;D*8Y)s>^cDbC@t1g0p z^NJIK7K}Fw;#@C}(57UPPYbKQ-Xhf=IcruPQ`mJ}-NM_OsnLA%0q24us?*s-Roi)s zoI;*CohPw{@Zv$5{@RCMhJW730U@l2@W+K}|6*y{0B?M3g|A6Be z2)Ck-tu+9ssR4+WHB0~lLWES<5#kF#C{A8Wz$+FI%I|SI2?*$)ANbD) z;}aDV5)tD^yiWtrY{*G{h*#chly7(;oY~MHaYRNiphFNV<00w+AMPLRhmihgKZNGz z_Jh1YbR7t4nNhyuMxa85-?aI7g<{p)w(J{-MJ~T!Stlu2Gl$D+}35 zOJPgUDQL*+8fhxRTpVoOJz$!8a;hrwFnTT?9$6O`uxC zzgb`xgj(5JdPreoN!Y`$N`WZ8B6D%Gb@JfW1Q$C#hg>w5TT@Nh+0E7$T!Y!%K^yKa z!Gp*T7W-QK&&zv&-7?&R+tLkg?&0kAtqhigy9bEg=J(Yhmg7CyL`8zXvx3g#a0pOIUEX(_~$#Kp(Q#eY_ppHGZmM2wf;Sb_(6>ECQGxSp~H{G5Zi z&CgiDTMq}fvXSDI;Q1CsGL+{VM_+IX$~%Z{asT3w+PSg$ok&tfKu~MpYy$c`S*#8J~$5A zf@1T(aK!o((!Pt%KjYPZ!g%$K!M}Sx|F?8Ie?i`N8TzODL9pVRdh;)LKkl9ux+hw% zi#e!;U$%9!cD{U~$^2_t&u`RHSt~nF(Clr60BXZ6e<+sUrSR9v#P1aEzp0J>N-O)L z>WwAwO({e$?whKJi2s|f7Jo@5qV!K#!4z^xtf3M{KO}_pb`ybVOkefgBd{EWr*X0#JzA+2^M$i9coBvGF|DmD&PSgKM z?tc>epP+x|mV!^g{|V9kJ)M6cyIg!CzY)8yBK;TOvuFQYc13>+{zrC^FRUl8yWjil zza_ii?Nb5!YS7T3iRif1%^iQdY5(ZW{#5Y4bqoJuZ_DlC$gSz@?xADpX6piW=|5~8 zzkGuK<2~-LNJL2M*M>Nmb2-30K*Q5-n)d5X>koF1@7R8CQ~GP-e_g|`x99M}Jc3GnZU{R;{Hi&6Y9!2i1j_x~Rx*u}-_|H1(OS7iP)$gBP{!Xu_Q z{!>Qyulk>?rV40OLF``n?M?r?62!~P%@4j~{m}G&rALBuZ(iX0o~pB@{SQRe<__*~ z9>m1fuZntrd!zm+^XF4f;H=))4qX>%sQ9T_-_0Grs^gDjep4KOPvx(${0Wf~-)a0+ z!JkR|R`Kt3%pW$C-;?-_LJ1z^Y^W4Aa#k0*h@92+LCz*4XUjp4l{Y9d$E(MyP;?Y+ zs0|t`^Z+^E{q5=~3M+Dc+X^fR&R9c{^Uybs!8l?T{Cl{936Mi#kxAHh;2$E$+2a)? znBeQoIbzlxff<6Fb!J9h!~0QC+8^Ai5-}eQu6+Uq#H_XtGEM$HO@qYx37JN?sUQR7 zq|}K=0oYPR9+s2YY=krN*G$NgTgZemz+-II<} z2npf(0YT#21=9fNm<;-G{8@m0KwSQ_E1=KEf8ZLTZd6PJZqQ8!K>>gwbMpJjMH&!# z!o?H*P#}^}9q@2M4LPLHI~VeuPW^Wsnwg@P}~vzYJJ_ZcUzG99aXh$j^sw z-2EBT&)2`R|7YOW<|05&o(>M+3E>BZZsF|dWaX}5VP^@Zz9QDP^g#GiAw&Vt1)VIw zO>%7zaYRssTYLPRmh*6SJV_%70<>+ee7%lLqk~(5TEgA+9aP=H!jRw8gND2Yf)P&e z7|4W*!cVv{Y}}kZU48>X2R#RDY@Ogvo{nG{97P=jc5u!Vgn?;Xb59RvCAbsZ4eay~ zj}w5{;rVN3?32t02;z#0qYVr^{a4cu^>lO4RWwAnn|)<2g89FNsJYv~e*-}`cks|P zxA_eW&k_!ngZp@>xGU?bsaiNYJ0K8Zegpp|Gu9PnH(yx?Tbpm3!apG%bi6nLgC#Mn z;MV4z4jy0>%L|;``jhMk!#)!H+w7+-Y~-CCoZWt6F5wA&Ii>Fxz#@P;xVbU{y@#`l z2Dl?E{AaImV8B`M`x#yY!jmWZiQ;3F$!NWA4I(@UcPcM(tvb@Lqvgz(F~cWLax`#sagol4LOuQsY%~k%wQg zRrYm*>-ehcTKd{sidwNCe0rpjsJK8hT-LS@2#0kT+}%==US1pAsv29uM-05;2=_4m zx>dE0Bnz^Dn3KC00?fk#LuT=?mt-+i(*#`_ogM5!mqvbW5pI4i0Rc{!wHs)d@^*H! z2VH@LSU{9+R@P$L3g^Be1XGeMUkO9F26+o0ce~~j6&2;-<>%q&=K^zZxnBhxF?_h3 z+!?_7938;QZ4JK{`wc&A4Uy~sE5e2$t5N{TL71&TEeB=}c0(SLES{dWR$>B{<|5YM z3k?@9+)4=aMzK1}Wg!e!XUS^?7qS)<5VhpDX2FJiqubm?P3_NX{B{Q%9eKc7VK500 zpr$6K;B4vX2>OqxC`g@f%*xpktk&h5PuaHyfTp0oZh!>OACQ4$@gP|E6I~#!Coqt$ zAcJ|n-!w#X{_Dd(mHaIp|HH0-*!8zK@V7GmBVGTn>u+)3Z)N^Ry8dC;-{QdE%KVRX z{ll)m#eu(-`5)=}hh2Y*1Ai;?KhpINyZ#mj{#NFHuXKU-oo`klxD#j!@&;`_$FnFR zD)RD|HMKR)si-O<4Ol3wvI=sFD4_Ay(aFP2TS*RPXk-k-cnMmc5c33JFt>Dfk=4{x zMZ}#>3~q?%w*VT!wuet_kFU89xV~NZ7th$1E^Y`L;Q{#Lw*pNzpdAch472j~Z~@_v zL@<8Z!X6nfM8w^6wdFzhV=#_qa}w`G#4S$ZlZdz*NCcSYBO<>IGLEoCgLqEj2%Fw% z575?$0LnYNTt!;{z>oVxMPahY4*+$pg1)Sd?l2W6OJ_G1=Wq7jllCD>0oW&BzJVM= zCjave2>zd7`=o{BD}=Q72kb{ZmY!~2UsDjs3-Alze;(9qG4 z0UaF!0}}%S9SaK^oDRhKZGeDNQD~@WSm@|jxY$_OxcGQrz{f{s`g+1SN&U9m_tbF{ zK!^$9gm6M3ga8U51WE`wo&skTn2%e*=7FD!Bf@uvfsKOz7-*Qkg(5CPP|yiLY9J_R zP!v=&kPxsG1ceYv1kmxxY7wKFyV3{n$K^1bu56am7Fd5}G2<2}zoEkzKR|eb36`=obN*IV-yaf>-s zEqj7v8=o9wR`O-n=tqu4woyf?cN+&>b@t#_>-i0oId7-6URu(|WaMqnD8ZDn#)>Gb2Xz)%gmw)!>29SbGVql(XqVgNt>AuA+Jqg22-;v2Un`6 zO?dn%8WY!7DCdX5y-4D%;9MPdIy6v*TH)i~IO?Q?2P$H0QF`3n$)w~?r3~)kZm;RZ z#bn>SqpngQOXyY~e@xg|mTY5c-Gea>imcc%@Y-m|K3$&UQVwUMr;$G(P=m`Ifh)MG zVg&H94?Hn*kg6_;9W2uk^=4Hv|}HTs(g^(b9 zL*_dP)39-AToG|5t4lrf_jo&F&u)#M?dNZ;R59z^b!8WM$;xtpP`tSUtyWhonMDM} zCz>LHvQSG;EgVfm$c#1oKs}kLcGcI8ZutxcfBZ4v&brL-R*mRr?)})BVDFBZIW_-W zQAx~k|N8l52ckHA%IoQ2%RQ!6S$IDB4a4CR*2RqRZy8oFgt1$As5S4 z;ualMQKuS|Uc4rrRVv3_=)sl;pG>`Q1%7nf#U?iqnb(6C?24=Ml4hZPJ(UavlGdem zV{t2iWSssNQ$GiZFW$F*(6I`g62Zd`q;zr=QHG;+M`z|^ZE+qQz=21zq_c<8IqQVJB^fmMCjhA|h2O-bT z9b$1aH z_lrh7ajJx0+s5vN)RPuv5CQDH=NR{JYckH$OuTZpG^(b@Lg7WT#+$5v-SV0wsy8Qv zc8L^sZaSL^5vc$g7}s>0f>u8ZZ>7q>;mhhy)R z8Z*h)U~R!}7+-Pp>y;x6@T*2w_%w=Z2t8dop%*OV_`GTKZs@_;3<(Ui3ns~{IDBBG zxEnhIaxtA%nryU8;zW#SI|GBk+FTEB6E&N#OmWe!6p^TCjx}>)w7v4z8d)w5=J%hz zet$LO^Wt-%(`1q}VYNw#*X<9y1@f<$De7v=_{?rF`!UECn^zXH8Fr;^&utAsuXxH0 z@v%+$Fof^Qi1*zqk?F=wmSwntnw4LC#=X+&qB@SOJyeC}u3$Em znY{k6p$5)2!{DbVXbS`T;KFVAC%&dkZ6PJG`y{1?+GGACDM9@ivVn5^XN1LQE7jSR zF5jWn3~*F2ljdv^;9$hxuT3&GFX3j_RBfhuSzgm^Q~cREAp+Kk!e>quy_d{p80&6w zy7VBChGqS&mcq{VRFa*+gnziCGO)B{ZaYsiIT}f~p(0KH*vHOpHvcv)_45E$4J-)} zyX-p;fzn6;z7&3zfKmMS*(!FAoz@?|H`obnE6BylkdVCMn^{ZZBrMd(7AWSNohxvf zW4yFp&@yuAp0`yQT9i?jF%|2WpKM%V0b5sKC`uDQgyB|^gve4zLkKVjb&(OL^%=|| zudEdJI=qX;dm6t(lh&!kLHHQB*kfoOucTJ%hkrr4g*}1~fbXO)%@A!z%8F6pm}t%SgEH*iAdCA zD68A}BO!;SpNdTOF_5tT1cpU%9XK2eD;n;wCQqJwrs1q6ULhR-ZnD(g^G8`?0CY9uM+ z95Rd;@DZn<3iaqB3u0A5|KPJ^7t!4_8fHp%;P%!`iTdT{Yh3JChBl|P;BqQW3l;BQ zZ@k9U(~IaHF^itFP8bPoF;2pKl)`3iw?c28Dm-ZJt(~6#pDb3z)08^V4$MycO*vZqpzV1*UMV zWeHCSEp6u(dRzr^9Z2rp(u?z!sGDa5e5=`G=RXl2czj-0-Wq_il}h?g;~WDTml!5A zP{yt|R;F0BDw@$SZoRIVnHG~1iS#;r49LD`TnedXaS2Il-mi=!>}=2OE;8Y;h$L|% zmzi{K(lBKdJO;)`w%LuR2p%X04Ti-Pj#V zap!tTYqlKc3nY&A0E1&|>P(A4A^gRH@$*s&f>|ICb4#q=maok|+idW*Zq2(J3oOZ* zI1O9Q1EpxiGNfk#4L-uW+^FP`@?OoX!(s@t$f}KO)?A^9p{7W%>mzA3nRoVD#Av$} zkW^XoXX+9{T6fCyb7N|AWG!TSCX$oPuOtp)C)tJrWIM!ETOx$a_0$brot?#4P?>9^ zGJ$!FhFK2D5~^C6CAISP@tvL*c>s%`&g|4Ge)LRIcwaP;QKPy)Xe+O)A4#Q!- zF=c^-gbZxC+7U$l69=J8V za*29~*J`2CT!N9hR#uUznKdT{r}K;3ymvo*#Y>N0yO_Y?)VbtXRztMf5IaY4{t9L> z7m9#joD9yu`SS@6x2L^^hzH&X-z+SjL~9fl7_?L64qqwr3aPc3rF6weYuM{P zO=>@EDkieHq!DN!U`JW_diguJAFR#{|ktRTvtu6+U9pA;DZ3Ac~?kU~7*0 zfQ>IdEYT>;xTWGKkE5PCJ65WpJIhpf!N@wukg-&Ff`(aasWZ(~Nb-)Dv1Uoo?G)&u z_>yv6lzo%2cB;x!<2Geq3_jW+ac|hm>6AR zc;#M{xRO9UwdpMG>N!jnpiF4q-<#1TF0Uw9D71Sc1;sr8@Ws1kXIB-Wr)N~^5WQsB z3TaU}Wnx>~1@jMbvwy!Oy_Sa-_eCiCD4#tU7K^zx1k@ajy?EDVjWMtCMuQ$b-$re? zEZMj%KA*Ff7hCwPhRo#f{b@VgNwQ29LJ19A)+ww|PtEpB1#B zs_dyqcc|$Lm6^AF2zE@39^FfMEiY3w@BYT*d0-A-hxwAo;*w7ifq~r}_9{Fxl^91w z8@F1E!q<=e$y}Da`t2IN2oFaa=U!f=x>0>l^Lc%^)Fe>IP&ZN*lH>DHNpi~%%eRt+ zLod#X^K55~Y>`=1;9P$h^GO^SW&elD9Cyg4LmzPWldxzSTCt{!webg)C~W)<0r z4g^Vf6StU}WNA&*wQJikxrE4E#dDRYEv?1$>>`PXh=`R1x~O(CDT25Zb4Bpl6$;PF4+ZQ%9MWlbWMSE98}`NORrjF zob4;{1B+AqRRY%XLr@~ildmi7ut^+lK|hu)>lr&}&_CuUsR*om#4PDqf+aiWG!x^P z?qW}`{5JYi5w@3KOZWqlgw5?mDj^Se?X9|McvRdd>sy#8abBRkenc3lXlpz+C*Nde z%3!W=+ta3$fC-Gx+x)(^{mJ?lbkpN#TBz$R(VmT%k`&DnymUQXT;Hl2DU;>YVAE|^ zfJW$Gx6fXYn{)SlYRX&v@U@L)Ykla}nR%?yIB^=WWTGU?(Ylf<`i(no)?)r*c5F{3 z^ezg8PIp_CAKXZ{TVmFrW3$%GsnSa4OOWsa?CfT82i}(Ld*b)CYwfs9pB2lghmLWw z!>6l?UZzA}+S5I6zga3ov{|SZ8JPm<$uBU7(CZ>)>e?Y1Dxwx^FBWcOm#hU;j!3pVK@QI7VtlMn`pXwqg0=rg-tDgf^jr`c%GbphNf@m1&`L zP9sn4-JK^mMOQon+q2_4ZrCK(-XZqA9I2-kwtL{M`R?p{)U_gPmV5VVE6eKRQsbp6 z^C>!P&4#)(u~SAJxBAg#t(z_M(Pz5Iudtb5dOZyK%v!)mPknT9B z5G8`qQOT(pBJ-i09%FB@2ph+l=m94;OU+}~Xp@xJ_intd$*W@}Ivqm0QkTzN%rRj% z9asyA--vr|89iR8_r9ZSD!zBB6%E@v%a5Djvk7V0(p~ekHX;>q2%~zT?AZ}_19Nr= zSu&GSeSU$5?$&r=ABtB$ZuNmeP)T^{%WC%OF*mGMJdE6x{AoMG!2DQK5sRq$ryC_a zI9&R*CWM0)E9nAGe$z{+s6OHBfp8_2g~BrFvIv0+cG)7sk4-L=uCM#wym!oFm$xU1 zZgt#Uqi8^Hu`iu1_HPYH%qpB&&O^V~T3W$whW4lGaVaQ`y}Ffo7?x@upQb zWS4jFx18P$qFkTLT~yq#8`U#mics?43#FNi4k+9<3??YPd;U|(gv{y361R=3+|YE< zEn56xhaMqJ8;y_P3U?#`vQnACexV=4_}awoKsUe9ywSKvDep9ovi#+gEn_rlxS6(_QN)>aJD!Fx(tF#u5`-v`fCN>f3X^~xg(MEkf;2AxOF1)?Q zZqrpIAq+_3TPad*<{WDP%G##k82uT5Say7AD|O<{qgz}kQ%}dc?_zg&V8J$_eu|uA z`VWYxEiS05Ew5x(chH_fnU~$)oVAH`848y%WC+A=vlhQ_sIVTFZH+g7XQQd(x@GW( z(@EoNwLZ1l7csRVqbjKC@f2dVr!KBmWsB8X25qXx@X*f_}V;pZV#$Eswd@`|MvPI+gV z1}8FR(lZala-w&mEjRm3_S-%#j9s*(VPMT_kmj;qY3+LknuLgr`$M!_(gGC(t?(Hn z+8bU{?c|-YS>fPMh>SJC45~??RYTLOm8+{C^|M!&O3m0!&aCIOd{^Gqkj1fmoS)MlIw{)(dZH)dbyNih$ zYK|693=F9u0^#Dmp@cGDfZWIb3yQgarJcWp=_UkvUOk2fhZjyPt7CR>Xv z1*XDedpL#Nf$|{)B3KfK=k^AeHjB!Klw6DqW|gHgCqwhnDrut}eY{HaA%>Zou@KtG zsI64}LX;Hg{mF_i#mG!T;TZy@P&!%Jn2VQEz476qZHjS!Iwe>w;}8WNfbhJ|i}eiP)~z5x%1Hi$<Sno54=#`0P#8Qc7GBU#Z4$tx znV(KkyPEW7J{(oOHA+>`LkXU$ewMn8uVT5bl*8`vU@WKRZd>lGOv2XS9USjCQ%^K6 zQVZ2eDvGP?GkGa;RE@P46ghXp7&kwholv}VxvuKNGwLZ>=#4nB*KF6*IVwpv0fnhB zbZg5yYSu%c9K(wyK3g?dIEGHIT9=Ljas7?^8pRGWQtp~XR~AykKUe76L!088R#<|S z2L_b%{5^{58Rns!D$=2`Q2laP`T0$w-6pEUD_Dwh_Y7vK=5C+II@sxV(~YLe4pb#5 zV{k%MP)~vM(^Bzmnutw!Xv*xZNvlaghh#R!!jm1_VsBh5aD1Bf4D-vds3&`HzbvLM zX3vf5s?_it0?10$kiIx6>RPrFmJIvuJ+hFHgixGpu#G=JtF)SkJf^!` z?&gF(lV(z>QGA(;xdRuc%sgbM)xyM~f+R^lmR!BnGlcldV)5D}`Kc+>BmUJICsM`{J{(T{Fg<70|D zzcz3qlM`xxjwXDjf=HhqMbdjhCugdSJ-=HIatv@JM(rx$YA(14)M%pwVCJhrdfSVc z&paL>m}$oGHr!e)U7BHJlRIoLbbdL;Ynx>!L+><1=CrbhD(8o0pUfbcnG1tq%1+uF7*yd_ryCOUZv{dTl6eG zQff^S8#|NpT+ts8w}3IDqda%fWNvr6q;WJvp1NgK^>e0i6=|JA#}=V|85ZlLl5(^$ zT3!VJi%9I|kJQ{kO&RQ0+Z)J+82VcqX$(teW=5lA8`;Tq&(c(qg&h%#;ohXy&oMQR zi)M^N0k+-AfzB zdV}3F*T%j5xwvIL@l;IY{>`$_qtc*dX?sZWCe@~w`29eIjor2K2UL4CWtyzqHR8Hyb;y1ilMIHS7ys)ojhPwPR9WEqj}gB(f;o?%H(l>}h*^v^=mRXrV|Y2p`3L%%e{ zRetcp3(!#XEIxH-2m8i+xU>7yeC`lFCH=y)u7=P3v74uHuJG7%`c4g3aB?*SQPsmX zhifrcYlMW++3(LbyMb2FKD_*BXR5GD?n80Rg-DeJSf-evUE-#iV94X^B^FkGO|+LC z!F{QD6FmD$w+@z2sW#DVLf@_x)w)2^CgWb3XDVwd?BQQ_l<}ONNp8Xu_v$5-%7)}p zeI8*i)^jvXQb3i;5OV1!nab?e&!MG{z{)%)JBU~4rQ%^72q~?c7F!>>%j#rvjnIw9 zJORM-Lr+xh!RrZ!ScTLiu%rO^?@Nov6N@p}jDx6OJ!SNaZWui8>iYrL98OD{B=0Jz zy7u$|Jzcj0-=@Lccwwj$MR&^JY*U(=?gHlvvIJ`Matb$}RXLId6piOruA_uvRm@3n z>tUrF>?dXivcVSUo1OxC40>=&;EOnIya=NPZS*nl(x`37);L=$t^Z@ZJq+@UtNyKV ztH#&cGJOE+LT9n0+M-jC=oupc0()E-&9dcmhd8`2k|afTdTJtNKj;xUHACH|(k8WS6G!#HqDqTXlQMOy=( zTDH^L>!n6*@TChIk2HmnPBp}ysaW_@jgDg)HDDyVnCcpKO8ObU zLE(9td?6o-OyzTWo5VY4cdW}r{mhou7I>99FJO;o*K$9zZ{if|+p`Ux&s0!mydLFW ziJDnZUQjYq%Va0(X~hmh6CfV;2-7hx+2BeF_3o6(ysu_}wgSZGWgq3ldW-KbP7jjH ziCf&mCdCc7<(uepbnl)`@+Yx?+lHFk zUBUsp7g34paci3EuHughr01v_qL0R?ES5axJU8SztJAc42@c4Q(ELA+?zII=Ep{hKWL2h*d&_c2$rm-chgo;vISg`Aj7c}1z zKDtsyXU>5I55p=A3gT;pNbFFg5G36f_j-|-OzRe_@xDh(cStcQL3mc8U$5`_j{I1bP*zS1wA5&X^oM6M_tPKh#>xc^c+sjE#WOWf%9%9@ zu*Kp4%F)5DgSlppI8IHS55t~)L);tG3$0sjw?T!Jl_&DR4G$DmkFoM>* zm{~QeLi8ba@@8$OQ8yQKpsr0Tl(vD^B;rMZ$TPXU_TcT>HZ-=@{c3t^>kIcJ|wfZ}$=K0rxbul+0#cWq3R*`dQ5efFdeJK! z1JqJI;l-=zQa8nAW2cW49DB4$z~PewW-(8d5-9fxwpPry>d74uq5ou$z;_irIeen) z5$B6ayR47$k1&#ZSk?!}%~KolvAf$_KH<_8q-Lq17!O|1l>@vh1E!u7=opal6?Z2> z&0M@pBjyeZ?k-=1C+W#EnqGDYXJie0HSBB42z(xh7?CX3(`Y6Mhvp1)HW)5Jz;;%kgH&|TUkfe1%8!ZlKNG9B(sHEt-mtDHM zyY2V9u+vX?!eE-|-~y+YmFURjop8P;=hB&CqWYE55qcSVEOD}#x^lcV?f!b75B>nz zwAhjO*3fJG2joJxwKP*?ng~Cd^_8AC9wdy~swx>{A5GDgdX|~b@xYqSR+z;BCwa?! z*LBkNCKe%3oNo{JBz~i5)-{?6HL_LI&`Bb#qKIf#SNIfrb|_qSE<$6Kgv`lijI5POa!+?J!P|Rjio{VUepcsg7}I3G?K6a-zpJgG(;drBm%P0fTI#DtZah z+`cs&wHjBZ_Jg}r^Xv-3K3v6BMb(H3Y`snPB2}7tr{k?UwWp_nWzbwzn0P4E@`HNn zQxqxb_`2fPW|oys;%m>*%XQ55i>YtF8gt*MtYTK)i4tVRXZomhp#%fxQn^y{l#m$c z95iT8GTal9`dqr?jwydS9!4h#scV?gm^aJ7)oY8dnm-i{KJ4X` zY;ddaZgA@dSk*q81;JPhKW5N!i=z#=`4>Z1V6z@@J5AQYPXYQYKQohUV@h-U^8s9@ zcasXepFv+Y=bYWtB5u{)W;m)uR5Oc=DA}6V2x~`WPwusI*`VD_$DF#`s7YD(N)EX*U4bP=A_U~_sX zw8dUs7=0|oW+JbD?oFtH8l^^r7h6++B? zyCt2~wR4MWR*oJnT~T9aCp{I!TU+OrPw$1AkZXJuoX6#yrrW1J9Zt=V_1Zx5k{G3f z-Ze~fG&Yqlc)_+}IvjoXh1p2dMVw)q+gk&!+C%o7 zg*bONq7(9qWLSMat#T#bwKtRP$nEMUW+)ll7ALg^<|@M91E2cQ5;(6FO@C@_;BVN`(Z6#TpZ)(LWy!_@+Oz9 zr#^$fduOJMJ^THdCu1wuZ`LW1#cVw-mIh5|1P`=?^Kyp9eW@R*uG%?RL)T%LKy)^sdX`YYJ-e%yCQ`N`7+3mngtue&}s%f}OFbEDz_ftlg!x zdHQOf%G4Nlfw)smYfCJe?z9xwGG6JGua9j+r@1V-)ht*V7_!k)nyfH;lDJD=skl${ zT&{H0H>hGbwpt^`F8%|*UumpWbR)HDXm#aGy+!OpigCT*1FMa#41P+r!fmdq>iM#~ z`4aVc{5gv1#LtEfxsR@oS}i?oB+jR6W6Q%7zI}m>k-90<_YvKaaewisfPeoro0XlI zoxupEh8F)9)@@_)kV{n}i}^(M9zJM826G7nmJd|+?68N7;A+Lol!n$CPiw+c`L35g zWLG!sWJD1`xxd?99bsrtSQ~!D(<>uecrrKPKybrgcVtYmA7WXV)znwZAxt$qzi_@P zl$<(GVQI-iu(I4oLF2VZdH_eo+{0mSgC?s-gx--fiM(|#0-XdZZ#8zyXteKjz^`f3 zpJnjLq_o}UE%?OtXt<$N0lH$tNN_VV@2I9l9M=qIwMt5M9$xvD;N18_Tl#rxcB9*L z%oT6RVH-1b`6=07PQM{Ri{#diyTdOTDLXW#+JsRVJUP|yjzceL>#a-)%}9-5a;OZS zs?R=wC##Le0(JeWIhotC7-&vgFa9WH13w0wBIe1wVE8?zUdtKls8aZbd~t^g@ZE&n zB`kZ=r?$2$yyB-NEU!?7R=v76a+x|-toj`NjU! zZrr1bYw@kB33wuRPx(%{Fdv}canXqzr83r%4{1#+br=hsBr5HenqPVeKez~cT9xYW z`0SlC*N#Y6TvWK`xsIDx>sQj-YXciPGTES;BB1%j=SC_j;ZQTE9f3iE5q&;V_UyXo z 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

  • |lultBr{hHkFMD?FJ_-sBxY`iQo_Wt5 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 *O`GNRq>R}dl1&GMpKExbA_l_D>5o@eDBL!8N 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

    @+N!w$bJ`wlYWT#WxV}}Iz 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 z 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

    1O81m@65=3Q=+CIP!hxNF7p%y33_{@2*$P4cS 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 literal 0 HcmV?d00001 diff --git a/examples/src/HelloNames.kt b/examples/src/HelloNames.kt new file mode 100644 index 00000000000..00ee6b812b2 --- /dev/null +++ b/examples/src/HelloNames.kt @@ -0,0 +1,18 @@ +namespace HelloNames + +fun main(args : Array) { + var names : String = "" + + for (i in args.indices) { + names += args[i] + if (i + 1 < args.size) + names += ", " + } + // string templates + println("Hello, $names!") +} + +fun println(message : String) { + // System.out is a nullable field + System.out?.println(message) +} From 1b4bebaaf030eb6a7fd94fa50a3ed5c07c44c8b0 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Tue, 18 Oct 2011 22:30:28 +0400 Subject: [PATCH 03/22] Autocasts for 'this' and stable qualified expressions --- .../jet/lang/resolve/AnnotationResolver.java | 4 +- .../jet/lang/resolve/BodyResolver.java | 6 +- .../jet/lang/resolve/calls/AutoCastUtils.java | 135 ------ .../jet/lang/resolve/calls/CallResolver.java | 13 +- .../jet/lang/resolve/calls/DataFlowInfo.java | 224 ---------- .../lang/resolve/calls/ResolutionTask.java | 1 + .../lang/resolve/calls/TaskPrioritizer.java | 3 + .../{ => autocasts}/AutoCastService.java | 4 +- .../{ => autocasts}/AutoCastServiceImpl.java | 2 +- .../calls/autocasts/AutoCastUtils.java | 109 +++++ .../resolve/calls/autocasts/DataFlowInfo.java | 390 ++++++++++++++++++ .../calls/autocasts/DataFlowValue.java | 72 ++++ .../calls/autocasts/DataFlowValueFactory.java | 156 +++++++ .../resolve/calls/autocasts/Nullability.java | 83 ++++ .../scopes/receivers/ClassReceiver.java | 9 +- .../scopes/receivers/ExtensionReceiver.java | 14 +- .../receivers/ImplicitReceiverDescriptor.java | 25 -- .../receivers/ThisReceiverDescriptor.java | 15 + .../BasicExpressionTypingVisitor.java | 2 +- .../ControlStructureTypingVisitor.java | 2 +- .../expressions/ExpressionTypingContext.java | 2 +- .../ExpressionTypingInternals.java | 2 +- .../expressions/ExpressionTypingServices.java | 12 +- .../expressions/ExpressionTypingUtils.java | 165 +++++--- .../ExpressionTypingVisitorDispatcher.java | 2 +- .../PatternMatchingTypingVisitor.java | 37 +- idea/testData/checker/infos/Autocasts.jet | 4 +- .../quick/AutocastsForStableIdentifiers.jet | 91 ++++ .../jetbrains/jet/resolve/JetResolveTest.java | 4 +- 29 files changed, 1094 insertions(+), 494 deletions(-) delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastUtils.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DataFlowInfo.java rename compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/{ => autocasts}/AutoCastService.java (90%) rename compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/{ => autocasts}/AutoCastServiceImpl.java (95%) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastUtils.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValue.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/Nullability.java delete mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ImplicitReceiverDescriptor.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ThisReceiverDescriptor.java create mode 100644 idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java index c7ebed1f1e9..f05397f66a5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AnnotationResolver.java @@ -10,7 +10,7 @@ import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetModifierList; import org.jetbrains.jet.lang.resolve.calls.CallMaker; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; @@ -36,7 +36,7 @@ public class AnnotationResolver { this.trace = trace; // this.typeInferrer = new JetTypeInferrer(JetFlowInformationProvider.THROW_EXCEPTION, semanticServices); // this.services = typeInferrer.getServices(this.trace); - this.callResolver = new CallResolver(semanticServices, DataFlowInfo.getEmpty()); + this.callResolver = new CallResolver(semanticServices, DataFlowInfo.EMPTY); } @NotNull diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java index 1eba532f34c..7bc2afd02c8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BodyResolver.java @@ -10,7 +10,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.calls.CallMaker; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; @@ -176,7 +176,7 @@ public class BodyResolver { JetTypeReference typeReference = call.getTypeReference(); if (typeReference != null) { if (descriptor.getUnsubstitutedPrimaryConstructor() != null) { - JetType supertype = new CallResolver(context.getSemanticServices(), DataFlowInfo.getEmpty()).resolveCall( + JetType supertype = new CallResolver(context.getSemanticServices(), DataFlowInfo.EMPTY).resolveCall( context.getTrace(), scopeForConstructor, CallMaker.makeCall(ReceiverDescriptor.NO_RECEIVER, null, call), NO_EXPECTED_TYPE); if (supertype != null) { @@ -322,7 +322,7 @@ public class BodyResolver { private void resolveSecondaryConstructorBody(JetConstructor declaration, final ConstructorDescriptor descriptor, final JetScope declaringScope) { final JetScope functionInnerScope = getInnerScopeForConstructor(descriptor, declaringScope, false); - final CallResolver callResolver = new CallResolver(context.getSemanticServices(), DataFlowInfo.getEmpty()); // TODO: dataFlowInfo + final CallResolver callResolver = new CallResolver(context.getSemanticServices(), DataFlowInfo.EMPTY); // TODO: dataFlowInfo JetClass containingClass = PsiTreeUtil.getParentOfType(declaration, JetClass.class); assert containingClass != null : "This must be guaranteed by the parser"; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastUtils.java deleted file mode 100644 index 63d47a2746f..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastUtils.java +++ /dev/null @@ -1,135 +0,0 @@ -package org.jetbrains.jet.lang.resolve.calls; - -import com.google.common.collect.Lists; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.*; -import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.psi.JetPsiUtil; -import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; -import org.jetbrains.jet.lang.psi.JetThisExpression; -import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.BindingTrace; -import org.jetbrains.jet.lang.resolve.scopes.receivers.*; -import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.JetTypeChecker; - -import java.util.Collections; -import java.util.List; - -import static org.jetbrains.jet.lang.diagnostics.Errors.AUTOCAST_IMPOSSIBLE; -import static org.jetbrains.jet.lang.resolve.BindingContext.AUTOCAST; -import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; - -/** - * @author abreslav - */ -public class AutoCastUtils { - - private AutoCastUtils() {} - - public static List getAutoCastVariants(@NotNull final BindingContext bindingContext, @NotNull final DataFlowInfo dataFlowInfo, @NotNull ReceiverDescriptor receiverToCast) { - return receiverToCast.accept(new ReceiverDescriptorVisitor, Object>() { - @Override - public List visitNoReceiver(ReceiverDescriptor noReceiver, Object data) { - return Collections.emptyList(); - } - - @Override - public List visitTransientReceiver(TransientReceiver receiver, Object data) { - return Collections.emptyList(); - } - - @Override - public List visitExtensionReceiver(ExtensionReceiver receiver, Object data) { - return castThis(dataFlowInfo, receiver); - } - - @Override - public List visitClassReceiver(ClassReceiver receiver, Object data) { - return castThis(dataFlowInfo, receiver); - } - - @Override - public List visitExpressionReceiver(ExpressionReceiver receiver, Object data) { - JetExpression expression = receiver.getExpression(); - VariableDescriptor variableDescriptor = getVariableDescriptorFromSimpleName(bindingContext, expression); - if (variableDescriptor != null) { - List result = Lists.newArrayList(); - for (JetType possibleType : dataFlowInfo.getPossibleTypesForVariable(variableDescriptor)) { - result.add(new AutoCastReceiver(receiver, possibleType, isAutoCastable(variableDescriptor))); - } - return result; - } - else if (expression instanceof JetThisExpression) { - return castThis(dataFlowInfo, receiver); - } - return Collections.emptyList(); - } - }, null); - } - - private static List castThis(@NotNull DataFlowInfo dataFlowInfo, @NotNull ReceiverDescriptor receiver) { - assert receiver.exists(); - List result = Lists.newArrayList(); - for (JetType possibleType : dataFlowInfo.getPossibleTypesForReceiver(receiver)) { - result.add(new AutoCastReceiver(receiver, possibleType, true)); - } - return result; - } - - @Nullable - public static JetType castExpression(@NotNull JetExpression expression, @NotNull JetType expectedType, @NotNull DataFlowInfo dataFlowInfo, @NotNull BindingTrace trace) { - JetTypeChecker typeChecker = JetTypeChecker.INSTANCE; - VariableDescriptor variableDescriptor = getVariableDescriptorFromSimpleName(trace.getBindingContext(), expression); - if (variableDescriptor != null) { - List possibleTypes = Lists.newArrayList(dataFlowInfo.getPossibleTypesForVariable(variableDescriptor)); - Collections.reverse(possibleTypes); - for (JetType possibleType : possibleTypes) { - if (typeChecker.isSubtypeOf(possibleType, expectedType)) { - if (isAutoCastable(variableDescriptor)) { - trace.record(AUTOCAST, expression, possibleType); - } - else { - trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); - } - return possibleType; - } - } - } - return null; - } - - @Nullable - public static VariableDescriptor getVariableDescriptorFromSimpleName(@NotNull BindingContext bindingContext, @NotNull JetExpression expression) { - JetExpression receiver = JetPsiUtil.deparenthesize(expression); - VariableDescriptor variableDescriptor = null; - if (receiver instanceof JetSimpleNameExpression) { - JetSimpleNameExpression nameExpression = (JetSimpleNameExpression) receiver; - DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, nameExpression); - if (declarationDescriptor instanceof VariableDescriptor) { - variableDescriptor = (VariableDescriptor) declarationDescriptor; - } - } - return variableDescriptor; - } - - public static boolean isAutoCastable(@NotNull VariableDescriptor variableDescriptor) { - if (variableDescriptor.isVar()) return false; - if (variableDescriptor instanceof PropertyDescriptor) { - PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor; - DeclarationDescriptor containingDeclaration = propertyDescriptor.getContainingDeclaration(); - if (containingDeclaration instanceof ClassDescriptor) { - ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; - if (classDescriptor.getModality().isOverridable() && propertyDescriptor.getModality().isOverridable()) return false; - } - else { - assert !propertyDescriptor.getModality().isOverridable() : "Property outside a class must not be overridable"; - } - PropertyGetterDescriptor getter = propertyDescriptor.getGetter(); - if (getter == null || !getter.isDefault()) return false; - } - return true; - } - -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index 4395382f451..2832cfb9b4f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -11,6 +11,8 @@ import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.*; +import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastServiceImpl; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; @@ -149,7 +151,7 @@ public class CallResolver { trace.report(NO_CONSTRUCTOR.on(reportAbsenceOn)); return checkArgumentTypesAndFail(trace, scope, call); } - prioritizedTasks.add(new ResolutionTask(TaskPrioritizer.convertWithImpliedThis(scope, Collections.singletonList(NO_RECEIVER), constructors), call, DataFlowInfo.getEmpty())); + prioritizedTasks.add(new ResolutionTask(TaskPrioritizer.convertWithImpliedThis(scope, Collections.singletonList(NO_RECEIVER), constructors), call, DataFlowInfo.EMPTY)); } else { // trace.getErrorHandler().genericError(calleeExpression.getNode(), "Not a class"); @@ -169,7 +171,7 @@ public class CallResolver { trace.report(NO_CONSTRUCTOR.on(reportAbsenceOn)); return checkArgumentTypesAndFail(trace, scope, call); } - prioritizedTasks = Collections.singletonList(new ResolutionTask(ResolvedCall.convertCollection(constructors), call, DataFlowInfo.getEmpty())); + prioritizedTasks = Collections.singletonList(new ResolutionTask(ResolvedCall.convertCollection(constructors), call, DataFlowInfo.EMPTY)); } else { throw new UnsupportedOperationException("Type argument inference not implemented for " + call); @@ -301,7 +303,10 @@ public class CallResolver { JetBinaryExpression binaryExpression = (JetBinaryExpression) callElement; JetSimpleNameExpression operationReference = binaryExpression.getOperationReference(); String operationString = operationReference.getReferencedNameElementType() == JetTokens.IDENTIFIER ? operationReference.getText() : OperatorConventions.getNameForOperationSymbol(operationReference.getReferencedNameElementType()); - trace.report(UNSAFE_INFIX_CALL.on(reference, binaryExpression.getLeft().getText(), operationString, binaryExpression.getRight().getText())); + JetExpression right = binaryExpression.getRight(); + if (right != null) { + trace.report(UNSAFE_INFIX_CALL.on(reference, binaryExpression.getLeft().getText(), operationString, right.getText())); + } } else { trace.report(UNSAFE_CALL.on(reference, type)); @@ -618,7 +623,7 @@ public class CallResolver { // } // } // if (autoCastType != null) { -// if (AutoCastUtils.isAutoCastable(variableDescriptor)) { +// if (AutoCastUtils.isStableVariable(variableDescriptor)) { // temporaryTrace.record(AUTOCAST, argumentExpression, autoCastType); // } // else { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DataFlowInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DataFlowInfo.java deleted file mode 100644 index 0b91738ee7f..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/DataFlowInfo.java +++ /dev/null @@ -1,224 +0,0 @@ -package org.jetbrains.jet.lang.resolve.calls; - -import com.google.common.collect.*; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.lang.descriptors.VariableDescriptor; -import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; -import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.TypeUtils; -import org.jetbrains.jet.util.CommonSuppliers; - -import java.util.*; - -/** - * @author abreslav - */ -public class DataFlowInfo { - - public static abstract class CompositionOperator { - - public abstract DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b); - } - public static final CompositionOperator AND = new CompositionOperator() { - @Override - public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { - return a.and(b); - } - }; - - public static final CompositionOperator OR = new CompositionOperator() { - @Override - public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { - return a.or(b); - } - }; - - private static DataFlowInfo EMPTY = new DataFlowInfo(ImmutableMap.of(), Multimaps.newListMultimap(Collections.>emptyMap(), CommonSuppliers.getArrayListSupplier())); - - public static DataFlowInfo getEmpty() { - return EMPTY; - } - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - - private final ImmutableMap nullabilityInfo; - - private final ListMultimap typeInfo; - - private DataFlowInfo(ImmutableMap nullabilityInfo, ListMultimap typeInfo) { - this.nullabilityInfo = nullabilityInfo; - this.typeInfo = typeInfo; - } - - @Nullable - public JetType getOutType(@NotNull VariableDescriptor variableDescriptor) { - JetType outType = variableDescriptor.getOutType(); - if (outType == null) return null; - if (!outType.isNullable()) return outType; - NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); - if (nullabilityFlags != null && !nullabilityFlags.canBeNull()) { - return TypeUtils.makeNotNullable(outType); - } - return outType; - } - - @NotNull - private List getPossibleTypes(Object key, @NotNull JetType originalType) { - List types = typeInfo.get(key); - NullabilityFlags nullabilityFlags = nullabilityInfo.get(key); - if (nullabilityFlags == null || nullabilityFlags.canBeNull()) { - return types; - } - List enrichedTypes = Lists.newArrayListWithCapacity(types.size()); - if (originalType.isNullable()) { - enrichedTypes.add(TypeUtils.makeNotNullable(originalType)); - } - for (JetType type: types) { - if (type.isNullable()) { - enrichedTypes.add(TypeUtils.makeNotNullable(type)); - } - else { - enrichedTypes.add(type); - } - } - return enrichedTypes; - } - - @NotNull - public List getPossibleTypesForVariable(@NotNull VariableDescriptor variableDescriptor) { - return getPossibleTypes(variableDescriptor, variableDescriptor.getOutType()); - } - - public List getPossibleTypesForReceiver(@NotNull ReceiverDescriptor receiver) { - return getPossibleTypes(receiver, receiver.getType()); - } - - public DataFlowInfo equalsToNull(@NotNull VariableDescriptor variableDescriptor, boolean notNull) { - return new DataFlowInfo(getEqualsToNullMap(variableDescriptor, notNull), typeInfo); - } - - private ImmutableMap getEqualsToNullMap(VariableDescriptor variableDescriptor, boolean notNull) { - Map builder = Maps.newHashMap(nullabilityInfo); - NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); - boolean varNotNull = notNull || (nullabilityFlags != null && !nullabilityFlags.canBeNull); - builder.put(variableDescriptor, new NullabilityFlags(!varNotNull, varNotNull)); - return ImmutableMap.copyOf(builder); - } - - private ImmutableMap getEqualsToNullMap(VariableDescriptor[] variableDescriptors, boolean notNull) { - if (variableDescriptors.length == 0) return nullabilityInfo; - Map builder = Maps.newHashMap(nullabilityInfo); - for (VariableDescriptor variableDescriptor : variableDescriptors) { - if (variableDescriptor != null) { - NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); - boolean varNotNull = notNull || (nullabilityFlags != null && !nullabilityFlags.canBeNull); - builder.put(variableDescriptor, new NullabilityFlags(!varNotNull, varNotNull)); - } - } - return ImmutableMap.copyOf(builder); - } - - public DataFlowInfo isInstanceOf(@NotNull VariableDescriptor variableDescriptor, @NotNull JetType type) { - ListMultimap newTypeInfo = copyTypeInfo(); - newTypeInfo.put(variableDescriptor, type); - return new DataFlowInfo(getEqualsToNullMap(variableDescriptor, !type.isNullable()), newTypeInfo); - } - - public DataFlowInfo isInstanceOf(@NotNull VariableDescriptor[] variableDescriptors, @NotNull JetType type) { - if (variableDescriptors.length == 0) return this; - ListMultimap newTypeInfo = copyTypeInfo(); - for (VariableDescriptor variableDescriptor : variableDescriptors) { - if (variableDescriptor != null) { - newTypeInfo.put(variableDescriptor, type); - } - } - return new DataFlowInfo(getEqualsToNullMap(variableDescriptors, !type.isNullable()), newTypeInfo); - } - - public DataFlowInfo and(DataFlowInfo other) { - Map nullabilityMapBuilder = Maps.newHashMap(); - nullabilityMapBuilder.putAll(nullabilityInfo); - for (Map.Entry entry : other.nullabilityInfo.entrySet()) { - Object key = entry.getKey(); - NullabilityFlags otherFlags = entry.getValue(); - NullabilityFlags thisFlags = nullabilityInfo.get(key); - if (thisFlags != null) { - nullabilityMapBuilder.put(key, thisFlags.and(otherFlags)); - } - else { - nullabilityMapBuilder.put(key, otherFlags); - } - } - - ListMultimap newTypeInfo = copyTypeInfo(); - newTypeInfo.putAll(other.typeInfo); - return new DataFlowInfo(ImmutableMap.copyOf(nullabilityMapBuilder), newTypeInfo); - } - - private ListMultimap copyTypeInfo() { - ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); - newTypeInfo.putAll(typeInfo); - return newTypeInfo; - } - - public DataFlowInfo or(DataFlowInfo other) { - Map builder = Maps.newHashMap(nullabilityInfo); - builder.keySet().retainAll(other.nullabilityInfo.keySet()); - for (Map.Entry entry : builder.entrySet()) { - Object key = entry.getKey(); - NullabilityFlags thisFlags = entry.getValue(); - NullabilityFlags otherFlags = other.nullabilityInfo.get(key); - assert (otherFlags != null); - builder.put(key, thisFlags.or(otherFlags)); - } - - ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); - - Set keys = newTypeInfo.keySet(); - keys.retainAll(other.typeInfo.keySet()); - - for (Object key : keys) { - Collection thisTypes = typeInfo.get(key); - Collection otherTypes = other.typeInfo.get(key); - - Collection newTypes = Sets.newHashSet(thisTypes); - newTypes.retainAll(otherTypes); - - newTypeInfo.putAll(key, newTypes); - } - - return new DataFlowInfo(ImmutableMap.copyOf(builder), newTypeInfo); - } - - public DataFlowInfo nullabilityOnly() { - return new DataFlowInfo(nullabilityInfo, EMPTY.copyTypeInfo()); - } - - private static class NullabilityFlags { - private final boolean canBeNull; - private final boolean canBeNonNull; - - private NullabilityFlags(boolean canBeNull, boolean canBeNonNull) { - this.canBeNull = canBeNull; - this.canBeNonNull = canBeNonNull; - } - - public boolean canBeNull() { - return canBeNull; - } - - public boolean canBeNonNull() { - return canBeNonNull; - } - - public NullabilityFlags and(NullabilityFlags other) { - return new NullabilityFlags(this.canBeNull && other.canBeNull, this.canBeNonNull && other.canBeNonNull); - } - - public NullabilityFlags or(NullabilityFlags other) { - return new NullabilityFlags(this.canBeNull || other.canBeNull, this.canBeNonNull || other.canBeNonNull); - } - - } -} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java index 189a2550d0d..1fbce7ba838 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java @@ -4,6 +4,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.psi.Call; import org.jetbrains.jet.lang.resolve.BindingTrace; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import java.util.Collection; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java index 581d5251e68..ad1b4c55512 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java @@ -8,6 +8,9 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.psi.Call; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastService; +import org.jetbrains.jet.lang.resolve.calls.autocasts.AutoCastServiceImpl; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.JetType; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastService.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastService.java similarity index 90% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastService.java rename to compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastService.java index 60fbb920eac..4c0de1c1ca5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastService.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastService.java @@ -1,4 +1,4 @@ -package org.jetbrains.jet.lang.resolve.calls; +package org.jetbrains.jet.lang.resolve.calls.autocasts; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; @@ -13,7 +13,7 @@ public interface AutoCastService { AutoCastService NO_AUTO_CASTS = new AutoCastService() { @Override public DataFlowInfo getDataFlowInfo() { - return DataFlowInfo.getEmpty(); + return DataFlowInfo.EMPTY; } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastServiceImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastServiceImpl.java similarity index 95% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastServiceImpl.java rename to compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastServiceImpl.java index d0f8c6f102d..c5cf125e80a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/AutoCastServiceImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastServiceImpl.java @@ -1,4 +1,4 @@ -package org.jetbrains.jet.lang.resolve.calls; +package org.jetbrains.jet.lang.resolve.calls.autocasts; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.resolve.BindingContext; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastUtils.java new file mode 100644 index 00000000000..e1b62313964 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/AutoCastUtils.java @@ -0,0 +1,109 @@ +package org.jetbrains.jet.lang.resolve.calls.autocasts; + +import com.google.common.collect.Lists; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.calls.AutoCastReceiver; +import org.jetbrains.jet.lang.resolve.scopes.receivers.*; +import org.jetbrains.jet.lang.types.JetType; + +import java.util.Collections; +import java.util.List; + +/** + * @author abreslav + */ +public class AutoCastUtils { + + private AutoCastUtils() {} + + public static List getAutoCastVariants(@NotNull final BindingContext bindingContext, @NotNull final DataFlowInfo dataFlowInfo, @NotNull ReceiverDescriptor receiverToCast) { + return receiverToCast.accept(new ReceiverDescriptorVisitor, Object>() { + @Override + public List visitNoReceiver(ReceiverDescriptor noReceiver, Object data) { + return Collections.emptyList(); + } + + @Override + public List visitTransientReceiver(TransientReceiver receiver, Object data) { + return Collections.emptyList(); + } + + @Override + public List visitExtensionReceiver(ExtensionReceiver receiver, Object data) { + return castThis(dataFlowInfo, receiver); + } + + @Override + public List visitClassReceiver(ClassReceiver receiver, Object data) { + return castThis(dataFlowInfo, receiver); + } + + @Override + public List visitExpressionReceiver(ExpressionReceiver receiver, Object data) { +// JetExpression expression = receiver.getExpression(); +// VariableDescriptor variableDescriptor = DataFlowValueFactory.getVariableDescriptorFromSimpleName(bindingContext, expression); +// if (variableDescriptor != null) { +// List result = Lists.newArrayList(); +// for (JetType possibleType : dataFlowInfo.getPossibleTypesForVariable(variableDescriptor)) { +// result.add(new AutoCastReceiver(receiver, possibleType, DataFlowValueFactory.isStableVariable(variableDescriptor))); +// } +// return result; +// } +// else if (expression instanceof JetThisExpression) { +// return castThis(dataFlowInfo, receiver); +// } + DataFlowValue dataFlowValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(receiver.getExpression(),receiver.getType(), bindingContext); + List result = Lists.newArrayList(); + for (JetType possibleType : dataFlowInfo.getPossibleTypes(dataFlowValue)) { + result.add(new AutoCastReceiver(receiver, possibleType, dataFlowValue.isStableIdentifier())); + } + return result; + } + }, null); + } + + private static List castThis(@NotNull DataFlowInfo dataFlowInfo, @NotNull ThisReceiverDescriptor receiver) { + assert receiver.exists(); + List result = Lists.newArrayList(); + for (JetType possibleType : dataFlowInfo.getPossibleTypes(DataFlowValueFactory.INSTANCE.createDataFlowValue(receiver))) { + result.add(new AutoCastReceiver(receiver, possibleType, true)); + } + return result; + } + +// @Nullable +// public static JetType castExpression(@NotNull JetExpression expression, @NotNull JetType expectedType, @NotNull DataFlowInfo dataFlowInfo, @NotNull BindingTrace trace) { +// JetTypeChecker typeChecker = JetTypeChecker.INSTANCE; +// DataFlowValue dataFlowValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(expression, trace.getBindingContext()); +// for (JetType possibleType : dataFlowInfo.getPossibleTypes(dataFlowValue)) { +// if (typeChecker.isSubtypeOf(possibleType, expectedType)) { +// if (dataFlowValue.isStableIdentifier()) { +// trace.record(AUTOCAST, expression, possibleType); +// } +// else { +// trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); +// } +// return possibleType; +// } +// } +//// VariableDescriptor variableDescriptor = DataFlowValueFactory.getVariableDescriptorFromSimpleName(trace.getBindingContext(), expression); +//// if (variableDescriptor != null) { +//// List possibleTypes = Lists.newArrayList(dataFlowInfo.getPossibleTypes(variableDescriptor)); +//// Collections.reverse(possibleTypes); +//// for (JetType possibleType : possibleTypes) { +//// if (typeChecker.isSubtypeOf(possibleType, expectedType)) { +//// if (DataFlowValueFactory.isStableVariable(variableDescriptor)) { +//// trace.record(AUTOCAST, expression, possibleType); +//// } +//// else { +//// trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); +//// } +//// return possibleType; +//// } +//// } +//// } +// return null; +// } + +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java new file mode 100644 index 00000000000..f1148ec21d2 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowInfo.java @@ -0,0 +1,390 @@ +package org.jetbrains.jet.lang.resolve.calls.autocasts; + +import com.google.common.collect.*; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.TypeUtils; +import org.jetbrains.jet.util.CommonSuppliers; + +import java.util.*; + +import static org.jetbrains.jet.lang.resolve.calls.autocasts.Nullability.NOT_NULL; + +/** + * @author abreslav + */ + +public class DataFlowInfo { + + public static abstract class CompositionOperator { + public abstract DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b); + } + + public static final CompositionOperator AND = new CompositionOperator() { + @Override + public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { + return a.and(b); + } + }; + + public static final CompositionOperator OR = new CompositionOperator() { + @Override + public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { + return a.or(b); + } + }; + + public static DataFlowInfo EMPTY = new DataFlowInfo(ImmutableMap.of(), Multimaps.newListMultimap(Collections.>emptyMap(), CommonSuppliers.getArrayListSupplier())); + + private final ImmutableMap nullabilityInfo; + private final ListMultimap typeInfo; + + private DataFlowInfo(ImmutableMap nullabilityInfo, ListMultimap typeInfo) { + this.nullabilityInfo = nullabilityInfo; + this.typeInfo = typeInfo; + } + + @NotNull + private Nullability getNullability(@NotNull DataFlowValue a) { + if (!a.isStableIdentifier()) return a.getImmanentNullability(); + Nullability nullability = nullabilityInfo.get(a); + if (nullability == null) { + nullability = a.getImmanentNullability(); + } + return nullability; + } + + private boolean putNullability(@NotNull Map map, @NotNull DataFlowValue value, @NotNull Nullability nullability) { + if (!value.isStableIdentifier()) return false; + return map.put(value, nullability) != nullability; + } + + @NotNull + public List getPossibleTypes(DataFlowValue key) { + JetType originalType = key.getType(); + List types = typeInfo.get(key); + Nullability nullability = getNullability(key); + if (nullability.canBeNull()) { + return types; + } + List enrichedTypes = Lists.newArrayListWithCapacity(types.size()); + if (originalType.isNullable()) { + enrichedTypes.add(TypeUtils.makeNotNullable(originalType)); + } + for (JetType type: types) { + if (type.isNullable()) { + enrichedTypes.add(TypeUtils.makeNotNullable(type)); + } + else { + enrichedTypes.add(type); + } + } + return enrichedTypes; + } + + @NotNull + public DataFlowInfo equate(@NotNull DataFlowValue a, @NotNull DataFlowValue b) { + Map builder = Maps.newHashMap(nullabilityInfo); + Nullability nullabilityOfA = getNullability(a); + Nullability nullabilityOfB = getNullability(b); + + boolean changed = false; + changed |= putNullability(builder, a, nullabilityOfA.refine(nullabilityOfB)); + changed |= putNullability(builder, b, nullabilityOfA.refine(nullabilityOfA)); + return changed ? new DataFlowInfo(ImmutableMap.copyOf(builder), typeInfo) : this; + } + + @NotNull + public DataFlowInfo disequate(@NotNull DataFlowValue a, @NotNull DataFlowValue b) { + Map builder = Maps.newHashMap(nullabilityInfo); + Nullability nullabilityOfA = getNullability(a); + Nullability nullabilityOfB = getNullability(b); + + boolean changed = false; + changed |= putNullability(builder, a, nullabilityOfA.refine(nullabilityOfB.invert())); + changed |= putNullability(builder, b, nullabilityOfA.refine(nullabilityOfA.invert())); + return changed ? new DataFlowInfo(ImmutableMap.copyOf(builder), typeInfo) : this; + } + + @NotNull + public DataFlowInfo establishSubtyping(@NotNull DataFlowValue[] values, @NotNull JetType type) { + ListMultimap newTypeInfo = copyTypeInfo(); + Map newNullabilityInfo = Maps.newHashMap(nullabilityInfo); + boolean changed = false; + for (DataFlowValue value : values) { +// if (!value.isStableIdentifier()) continue; + changed = true; + newTypeInfo.put(value, type); + if (!type.isNullable()) { + putNullability(newNullabilityInfo, value, NOT_NULL); + } + } + if (!changed) return this; + return new DataFlowInfo(ImmutableMap.copyOf(newNullabilityInfo), newTypeInfo); + } + + private ListMultimap copyTypeInfo() { + ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); + newTypeInfo.putAll(typeInfo); + return newTypeInfo; + } + + public DataFlowInfo and(DataFlowInfo other) { + Map nullabilityMapBuilder = Maps.newHashMap(); + nullabilityMapBuilder.putAll(nullabilityInfo); + for (Map.Entry entry : other.nullabilityInfo.entrySet()) { + DataFlowValue key = entry.getKey(); + Nullability otherFlags = entry.getValue(); + Nullability thisFlags = nullabilityInfo.get(key); + if (thisFlags != null) { + nullabilityMapBuilder.put(key, thisFlags.and(otherFlags)); + } + else { + nullabilityMapBuilder.put(key, otherFlags); + } + } + + ListMultimap newTypeInfo = copyTypeInfo(); + newTypeInfo.putAll(other.typeInfo); + return new DataFlowInfo(ImmutableMap.copyOf(nullabilityMapBuilder), newTypeInfo); + } + + public DataFlowInfo or(DataFlowInfo other) { + Map builder = Maps.newHashMap(nullabilityInfo); + builder.keySet().retainAll(other.nullabilityInfo.keySet()); + for (Map.Entry entry : builder.entrySet()) { + DataFlowValue key = entry.getKey(); + Nullability thisFlags = entry.getValue(); + Nullability otherFlags = other.nullabilityInfo.get(key); + assert (otherFlags != null); + builder.put(key, thisFlags.or(otherFlags)); + } + + ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); + + Set keys = newTypeInfo.keySet(); + keys.retainAll(other.typeInfo.keySet()); + + for (DataFlowValue key : keys) { + Collection thisTypes = typeInfo.get(key); + Collection otherTypes = other.typeInfo.get(key); + + Collection newTypes = Sets.newHashSet(thisTypes); + newTypes.retainAll(otherTypes); + + newTypeInfo.putAll(key, newTypes); + } + + return new DataFlowInfo(ImmutableMap.copyOf(builder), newTypeInfo); + } + +} + +//public class DataFlowInfo { +// +// public static abstract class CompositionOperator { +// +// public abstract DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b); +// } +// public static final CompositionOperator AND = new CompositionOperator() { +// @Override +// public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { +// return a.and(b); +// } +// }; +// +// public static final CompositionOperator OR = new CompositionOperator() { +// @Override +// public DataFlowInfo compose(DataFlowInfo a, DataFlowInfo b) { +// return a.or(b); +// } +// }; +// +// private static DataFlowInfo EMPTY = new DataFlowInfo(ImmutableMap.of(), Multimaps.newListMultimap(Collections.>emptyMap(), CommonSuppliers.getArrayListSupplier())); +// +// public static DataFlowInfo getEmpty() { +// return EMPTY; +// } +// +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +// +// private final ImmutableMap nullabilityInfo; +// +// private final ListMultimap typeInfo; +// +// private DataFlowInfo(ImmutableMap nullabilityInfo, ListMultimap typeInfo) { +// this.nullabilityInfo = nullabilityInfo; +// this.typeInfo = typeInfo; +// } +// +// @Nullable +// public JetType getOutType(@NotNull VariableDescriptor variableDescriptor) { +// JetType outType = variableDescriptor.getOutType(); +// if (outType == null) return null; +// if (!outType.isNullable()) return outType; +// NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); +// if (nullabilityFlags != null && !nullabilityFlags.canBeNull()) { +// return TypeUtils.makeNotNullable(outType); +// } +// return outType; +// } +// +// @NotNull +// private List getPossibleTypes(Object key, @NotNull JetType originalType) { +// List types = typeInfo.get(key); +// NullabilityFlags nullabilityFlags = nullabilityInfo.get(key); +// if (nullabilityFlags == null || nullabilityFlags.canBeNull()) { +// return types; +// } +// List enrichedTypes = Lists.newArrayListWithCapacity(types.size()); +// if (originalType.isNullable()) { +// enrichedTypes.add(TypeUtils.makeNotNullable(originalType)); +// } +// for (JetType type: types) { +// if (type.isNullable()) { +// enrichedTypes.add(TypeUtils.makeNotNullable(type)); +// } +// else { +// enrichedTypes.add(type); +// } +// } +// return enrichedTypes; +// } +// +// @NotNull +// public List getPossibleTypesForVariable(@NotNull VariableDescriptor variableDescriptor) { +// return getPossibleTypes(variableDescriptor, variableDescriptor.getOutType()); +// } +// +// public List getPossibleTypesForReceiver(@NotNull ReceiverDescriptor receiver) { +// return getPossibleTypes(receiver, receiver.getType()); +// } +// +// public DataFlowInfo establishEqualityToNull(@NotNull VariableDescriptor variableDescriptor, boolean notNull) { +// return new DataFlowInfo(getEqualsToNullMap(variableDescriptor, notNull), typeInfo); +// } +// +// private ImmutableMap getEqualsToNullMap(VariableDescriptor variableDescriptor, boolean notNull) { +// Map builder = Maps.newHashMap(nullabilityInfo); +// NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); +// boolean varNotNull = notNull || (nullabilityFlags != null && !nullabilityFlags.canBeNull); +// builder.put(variableDescriptor, new NullabilityFlags(!varNotNull, varNotNull)); +// return ImmutableMap.copyOf(builder); +// } +// +// private ImmutableMap getEqualsToNullMap(VariableDescriptor[] variableDescriptors, boolean notNull) { +// if (variableDescriptors.length == 0) return nullabilityInfo; +// Map builder = Maps.newHashMap(nullabilityInfo); +// for (VariableDescriptor variableDescriptor : variableDescriptors) { +// if (variableDescriptor != null) { +// NullabilityFlags nullabilityFlags = nullabilityInfo.get(variableDescriptor); +// boolean varNotNull = notNull || (nullabilityFlags != null && !nullabilityFlags.canBeNull); +// builder.put(variableDescriptor, new NullabilityFlags(!varNotNull, varNotNull)); +// } +// } +// return ImmutableMap.copyOf(builder); +// } +// +// public DataFlowInfo isInstanceOf(@NotNull VariableDescriptor variableDescriptor, @NotNull JetType type) { +// ListMultimap newTypeInfo = copyTypeInfo(); +// newTypeInfo.put(variableDescriptor, type); +// return new DataFlowInfo(getEqualsToNullMap(variableDescriptor, !type.isNullable()), newTypeInfo); +// } +// +// public DataFlowInfo isInstanceOf(@NotNull VariableDescriptor[] variableDescriptors, @NotNull JetType type) { +// if (variableDescriptors.length == 0) return this; +// ListMultimap newTypeInfo = copyTypeInfo(); +// for (VariableDescriptor variableDescriptor : variableDescriptors) { +// if (variableDescriptor != null) { +// newTypeInfo.put(variableDescriptor, type); +// } +// } +// return new DataFlowInfo(getEqualsToNullMap(variableDescriptors, !type.isNullable()), newTypeInfo); +// } +// +// public DataFlowInfo and(DataFlowInfo other) { +// Map nullabilityMapBuilder = Maps.newHashMap(); +// nullabilityMapBuilder.putAll(nullabilityInfo); +// for (Map.Entry entry : other.nullabilityInfo.entrySet()) { +// Object key = entry.getKey(); +// NullabilityFlags otherFlags = entry.getValue(); +// NullabilityFlags thisFlags = nullabilityInfo.get(key); +// if (thisFlags != null) { +// nullabilityMapBuilder.put(key, thisFlags.and(otherFlags)); +// } +// else { +// nullabilityMapBuilder.put(key, otherFlags); +// } +// } +// +// ListMultimap newTypeInfo = copyTypeInfo(); +// newTypeInfo.putAll(other.typeInfo); +// return new DataFlowInfo(ImmutableMap.copyOf(nullabilityMapBuilder), newTypeInfo); +// } +// +// private ListMultimap copyTypeInfo() { +// ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); +// newTypeInfo.putAll(typeInfo); +// return newTypeInfo; +// } +// +// public DataFlowInfo or(DataFlowInfo other) { +// Map builder = Maps.newHashMap(nullabilityInfo); +// builder.keySet().retainAll(other.nullabilityInfo.keySet()); +// for (Map.Entry entry : builder.entrySet()) { +// Object key = entry.getKey(); +// NullabilityFlags thisFlags = entry.getValue(); +// NullabilityFlags otherFlags = other.nullabilityInfo.get(key); +// assert (otherFlags != null); +// builder.put(key, thisFlags.or(otherFlags)); +// } +// +// ListMultimap newTypeInfo = Multimaps.newListMultimap(Maps.>newHashMap(), CommonSuppliers.getArrayListSupplier()); +// +// Set keys = newTypeInfo.keySet(); +// keys.retainAll(other.typeInfo.keySet()); +// +// for (Object key : keys) { +// Collection thisTypes = typeInfo.get(key); +// Collection otherTypes = other.typeInfo.get(key); +// +// Collection newTypes = Sets.newHashSet(thisTypes); +// newTypes.retainAll(otherTypes); +// +// newTypeInfo.putAll(key, newTypes); +// } +// +// return new DataFlowInfo(ImmutableMap.copyOf(builder), newTypeInfo); +// } +// +// public DataFlowInfo nullabilityOnly() { +// return new DataFlowInfo(nullabilityInfo, EMPTY.copyTypeInfo()); +// } +// +// private static class NullabilityFlags { +// private final boolean canBeNull; +// private final boolean canBeNonNull; +// +// private NullabilityFlags(boolean canBeNull, boolean canBeNonNull) { +// this.canBeNull = canBeNull; +// this.canBeNonNull = canBeNonNull; +// } +// +// public boolean canBeNull() { +// return canBeNull; +// } +// +// public boolean canBeNonNull() { +// return canBeNonNull; +// } +// +// public NullabilityFlags and(NullabilityFlags other) { +// return new NullabilityFlags(this.canBeNull && other.canBeNull, this.canBeNonNull && other.canBeNonNull); +// } +// +// public NullabilityFlags or(NullabilityFlags other) { +// return new NullabilityFlags(this.canBeNull || other.canBeNull, this.canBeNonNull || other.canBeNonNull); +// } +// +// } +//} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValue.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValue.java new file mode 100644 index 00000000000..eaec974829b --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValue.java @@ -0,0 +1,72 @@ +package org.jetbrains.jet.lang.resolve.calls.autocasts; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.types.JetStandardClasses; +import org.jetbrains.jet.lang.types.JetType; + +/** + * @author abreslav + */ +public class DataFlowValue { + + public static final DataFlowValue NULL = new DataFlowValue(new Object(), JetStandardClasses.getNullableNothingType(), false, Nullability.NULL); + public static final DataFlowValue NULLABLE = new DataFlowValue(new Object(), JetStandardClasses.getNullableAnyType(), false, Nullability.UNKNOWN); + + private final boolean stableIdentifier; + private final JetType type; + private final Object id; + private final Nullability immanentNullability; + + // Use DataFlowValueFactory + /*package*/ DataFlowValue(Object id, JetType type, boolean stableIdentifier, Nullability immanentNullability) { + this.stableIdentifier = stableIdentifier; + this.type = type; + this.id = id; + this.immanentNullability = immanentNullability; + } + + @NotNull + public Nullability getImmanentNullability() { + return immanentNullability; + } + + /** + * Stable identifier is a non-literal value that is statically known to be immutable + * @return + */ + public boolean isStableIdentifier() { + return stableIdentifier; + } + + @NotNull + public JetType getType() { + return type; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + DataFlowValue that = (DataFlowValue) o; + + if (stableIdentifier != that.stableIdentifier) return false; + if (id != null ? !id.equals(that.id) : that.id != null) return false; + if (type != null ? !type.equals(that.type) : that.type != null) return false; + + return true; + } + + @Override + public String toString() { + return (stableIdentifier ? "stable " : "unstable ") + (id == null ? null : id.toString()) + " " + immanentNullability; + } + + @Override + public int hashCode() { + int result = (stableIdentifier ? 1 : 0); + result = 31 * result + (type != null ? type.hashCode() : 0); + result = 31 * result + (id != null ? id.hashCode() : 0); + return result; + } +} \ No newline at end of file diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java new file mode 100644 index 00000000000..9051c404887 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java @@ -0,0 +1,156 @@ +package org.jetbrains.jet.lang.resolve.calls.autocasts; + +import com.intellij.openapi.util.Pair; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.JetNodeTypes; +import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.JetModuleUtil; +import org.jetbrains.jet.lang.resolve.scopes.receivers.ThisReceiverDescriptor; +import org.jetbrains.jet.lang.types.JetType; + +import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; + +/** + * @author abreslav + */ +public class DataFlowValueFactory { + public static final DataFlowValueFactory INSTANCE = new DataFlowValueFactory(); + + private DataFlowValueFactory() {} + + @NotNull + public DataFlowValue createDataFlowValue(@NotNull JetExpression expression, @NotNull JetType type, @NotNull BindingContext bindingContext) { + if (expression instanceof JetConstantExpression) { + JetConstantExpression constantExpression = (JetConstantExpression) expression; + if (constantExpression.getNode().getElementType() == JetNodeTypes.NULL) return DataFlowValue.NULL; + } + Pair result = getIdForStableIdentifier(expression, bindingContext, false); + return new DataFlowValue(result.first == null ? expression : result.first, type, result.second, getImmanentNullability(type)); + } + + @NotNull + public DataFlowValue createDataFlowValue(@NotNull ThisReceiverDescriptor receiver) { + JetType type = receiver.getType(); + return new DataFlowValue(receiver.getDeclarationDescriptor(), type, true, getImmanentNullability(type)); + } + + @NotNull + public DataFlowValue createDataFlowValue(@NotNull VariableDescriptor variableDescriptor) { + JetType type = variableDescriptor.getOutType(); + return new DataFlowValue(variableDescriptor, type, isStableVariable(variableDescriptor), getImmanentNullability(type)); + } + +// private Object getId(@NotNull JetExpression expression, @NotNull BindingContext bindingContext) { +// if (expression instanceof JetThisExpression) { +// JetThisExpression thisExpression = (JetThisExpression) expression; +// DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getThisReference()); +// if (declarationDescriptor instanceof CallableDescriptor) { +// return ((CallableDescriptor) declarationDescriptor).getReceiverParameter(); +// } +// if (declarationDescriptor instanceof ClassDescriptor) { +// return ((ClassDescriptor) declarationDescriptor).getImplicitReceiver(); +// } +//// throw new AssertionError("No resolution data for expression " + expression.getText()); +// } +// else if (expression instanceof JetReferenceExpression) { +// JetReferenceExpression referenceExpression = (JetReferenceExpression) expression; +// DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, referenceExpression); +// if (declarationDescriptor != null) { +// return declarationDescriptor; +// } +//// throw new AssertionError("No resolution data for expression " + expression.getText() + DiagnosticUtils.atLocation(expression)); +// } +// return expression; +// } + + private Nullability getImmanentNullability(JetType type) { + return type.isNullable() ? Nullability.UNKNOWN : Nullability.NOT_NULL; + } + + @NotNull + private static Pair getIdForStableIdentifier(@NotNull JetExpression expression, @NotNull BindingContext bindingContext, boolean allowNamespaces) { + if (expression instanceof JetParenthesizedExpression) { + JetParenthesizedExpression parenthesizedExpression = (JetParenthesizedExpression) expression; + JetExpression innerExpression = parenthesizedExpression.getExpression(); + if (innerExpression == null) { + return Pair.create(null, false); + } + return getIdForStableIdentifier(innerExpression, bindingContext, allowNamespaces); + } + else if (expression instanceof JetQualifiedExpression) { + JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) expression; + JetExpression selectorExpression = qualifiedExpression.getSelectorExpression(); + if (selectorExpression == null) { + return Pair.create(null, false); + } + Pair receiverId = getIdForStableIdentifier(qualifiedExpression.getReceiverExpression(), bindingContext, true); + Pair selectorId = getIdForStableIdentifier(selectorExpression, bindingContext, allowNamespaces); + return receiverId.second ? selectorId : Pair.create(receiverId.first, false); + } + if (expression instanceof JetSimpleNameExpression) { + JetSimpleNameExpression simpleNameExpression = (JetSimpleNameExpression) expression; + DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, simpleNameExpression); + if (declarationDescriptor instanceof VariableDescriptor) { + return Pair.create((Object) declarationDescriptor, isStableVariable((VariableDescriptor) declarationDescriptor)); + } + if (declarationDescriptor instanceof NamespaceDescriptor) { + return Pair.create((Object) declarationDescriptor, allowNamespaces); + } + if (declarationDescriptor instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) declarationDescriptor; + return Pair.create((Object) classDescriptor, classDescriptor.isClassObjectAValue()); + } + } + else if (expression instanceof JetThisExpression) { + JetThisExpression thisExpression = (JetThisExpression) expression; + DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getThisReference()); + if (declarationDescriptor instanceof CallableDescriptor) { + return Pair.create((Object) ((CallableDescriptor) declarationDescriptor).getReceiverParameter(), true); + } + if (declarationDescriptor instanceof ClassDescriptor) { + return Pair.create((Object) ((ClassDescriptor) declarationDescriptor).getImplicitReceiver(), true); + } + return Pair.create(null, true); + } + else if (expression instanceof JetRootNamespaceExpression) { + return Pair.create((Object) JetModuleUtil.getRootNamespaceType(expression), allowNamespaces); + } + return Pair.create(null, false); + } + + @Nullable + public static VariableDescriptor getVariableDescriptorFromSimpleName(@NotNull BindingContext bindingContext, @NotNull JetExpression expression) { + JetExpression receiver = JetPsiUtil.deparenthesize(expression); + VariableDescriptor variableDescriptor = null; + if (receiver instanceof JetSimpleNameExpression) { + JetSimpleNameExpression nameExpression = (JetSimpleNameExpression) receiver; + DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, nameExpression); + if (declarationDescriptor instanceof VariableDescriptor) { + variableDescriptor = (VariableDescriptor) declarationDescriptor; + } + } + return variableDescriptor; + } + + public static boolean isStableVariable(@NotNull VariableDescriptor variableDescriptor) { + if (variableDescriptor.isVar()) return false; + if (variableDescriptor instanceof PropertyDescriptor) { + PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor; + DeclarationDescriptor containingDeclaration = propertyDescriptor.getContainingDeclaration(); + if (containingDeclaration instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; + if (classDescriptor.getModality().isOverridable() && propertyDescriptor.getModality().isOverridable()) return false; + } + else { + assert !propertyDescriptor.getModality().isOverridable() : "Property outside a class must not be overridable"; + } + // TODO: check that it's internal + PropertyGetterDescriptor getter = propertyDescriptor.getGetter(); + if (getter != null && !getter.isDefault()) return false; + } + return true; + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/Nullability.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/Nullability.java new file mode 100644 index 00000000000..52582233db3 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/Nullability.java @@ -0,0 +1,83 @@ +package org.jetbrains.jet.lang.resolve.calls.autocasts; + +import org.jetbrains.annotations.NotNull; + +/** +* @author abreslav +*/ +public enum Nullability { + NULL(true, false), + NOT_NULL(false, true), + UNKNOWN(true, true), + IMPOSSIBLE(false, false); + + @NotNull + public static Nullability fromFlags(boolean canBeNull, boolean canBeNonNull) { + if (!canBeNull && !canBeNonNull) return IMPOSSIBLE; + if (!canBeNull && canBeNonNull) return NOT_NULL; + if (canBeNull && !canBeNonNull) return NULL; + return UNKNOWN; + } + + private final boolean canBeNull; + private final boolean canBeNonNull; + + Nullability(boolean canBeNull, boolean canBeNonNull) { + this.canBeNull = canBeNull; + this.canBeNonNull = canBeNonNull; + } + + public boolean canBeNull() { + return canBeNull; + } + + public boolean canBeNonNull() { + return canBeNonNull; + } + + @NotNull + public Nullability refine(@NotNull Nullability other) { + switch (this) { + case UNKNOWN: + return other; + case IMPOSSIBLE: + return other; + case NULL: + switch (other) { + case NOT_NULL: return NOT_NULL; + default: return NULL; + } + case NOT_NULL: + switch (other) { + case NULL: return NOT_NULL; + default: return NOT_NULL; + } + } + throw new IllegalStateException(); + } + + @NotNull + public Nullability invert() { + switch (this) { + case NULL: + return NOT_NULL; + case NOT_NULL: + return UNKNOWN; + case UNKNOWN: + return UNKNOWN; + case IMPOSSIBLE: + return UNKNOWN; + } + throw new IllegalStateException(); + } + + @NotNull + public Nullability and(@NotNull Nullability other) { + return fromFlags(this.canBeNull && other.canBeNull, this.canBeNonNull && other.canBeNonNull); + } + + @NotNull + public Nullability or(@NotNull Nullability other) { + return fromFlags(this.canBeNull || other.canBeNull, this.canBeNonNull || other.canBeNonNull); + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ClassReceiver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ClassReceiver.java index ac1ac9c5b4a..2f5f916a626 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ClassReceiver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ClassReceiver.java @@ -2,12 +2,13 @@ package org.jetbrains.jet.lang.resolve.scopes.receivers; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.types.JetType; /** * @author abreslav */ -public class ClassReceiver implements ReceiverDescriptor { +public class ClassReceiver implements ThisReceiverDescriptor { private final ClassDescriptor classDescriptor; @@ -26,6 +27,12 @@ public class ClassReceiver implements ReceiverDescriptor { return classDescriptor.getDefaultType(); } + @NotNull + @Override + public DeclarationDescriptor getDeclarationDescriptor() { + return classDescriptor; + } + @Override public R accept(@NotNull ReceiverDescriptorVisitor visitor, D data) { return visitor.visitClassReceiver(this, data); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ExtensionReceiver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ExtensionReceiver.java index 834b1420c42..ed7e876e29c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ExtensionReceiver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ExtensionReceiver.java @@ -2,15 +2,25 @@ package org.jetbrains.jet.lang.resolve.scopes.receivers; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.types.JetType; /** * @author abreslav */ -public class ExtensionReceiver extends ImplicitReceiverDescriptor { +public class ExtensionReceiver extends AbstractReceiverDescriptor implements ThisReceiverDescriptor { + + private final CallableDescriptor descriptor; public ExtensionReceiver(@NotNull CallableDescriptor callableDescriptor, @NotNull JetType receiverType) { - super(callableDescriptor, receiverType); + super(receiverType); + this.descriptor = callableDescriptor; + } + + @NotNull + @Override + public DeclarationDescriptor getDeclarationDescriptor() { + return descriptor; } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ImplicitReceiverDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ImplicitReceiverDescriptor.java deleted file mode 100644 index 4c566658f83..00000000000 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ImplicitReceiverDescriptor.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.jetbrains.jet.lang.resolve.scopes.receivers; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.types.JetType; - -/** - * Describes a "this" receiver - * - * @author abreslav - */ -public abstract class ImplicitReceiverDescriptor extends AbstractReceiverDescriptor { - private final DeclarationDescriptor declarationDescriptor; - - protected ImplicitReceiverDescriptor(@NotNull DeclarationDescriptor declarationDescriptor, @NotNull JetType receiverType) { - super(receiverType); - this.declarationDescriptor = declarationDescriptor; - } - - @NotNull - public DeclarationDescriptor getDeclarationDescriptor() { - return declarationDescriptor; - } -} - diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ThisReceiverDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ThisReceiverDescriptor.java new file mode 100644 index 00000000000..a6cff4192e5 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/receivers/ThisReceiverDescriptor.java @@ -0,0 +1,15 @@ +package org.jetbrains.jet.lang.resolve.scopes.receivers; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; + +/** + * Describes a "this" receiver + * + * @author abreslav + */ +public interface ThisReceiverDescriptor extends ReceiverDescriptor { + @NotNull + DeclarationDescriptor getDeclarationDescriptor(); +} + diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 0e69cc0ab93..3a16b72097b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -10,7 +10,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.*; import org.jetbrains.jet.lang.resolve.calls.CallMaker; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.constants.*; import org.jetbrains.jet.lang.resolve.scopes.JetScope; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java index 8d915dbe9b0..8fb7c58659b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java @@ -7,7 +7,7 @@ import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java index 68a1be872b1..e4a7da67786 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java @@ -12,7 +12,7 @@ import org.jetbrains.jet.lang.resolve.ClassDescriptorResolver; import org.jetbrains.jet.lang.resolve.TypeResolver; import org.jetbrains.jet.lang.resolve.calls.CallMaker; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstantResolver; import org.jetbrains.jet.lang.resolve.scopes.JetScope; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingInternals.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingInternals.java index 8dff3d7a264..200174c6bc5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingInternals.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingInternals.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.JetType; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java index c4e0141a02f..0ea1a9c113a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java @@ -14,7 +14,7 @@ import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.DiagnosticWithPsiElement; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.*; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; @@ -56,7 +56,7 @@ public class ExpressionTypingServices { ExpressionTypingContext context = ExpressionTypingContext.newContext( semanticServices, new HashMap(), new HashMap>(), new LabelResolver(), - trace, scope, DataFlowInfo.getEmpty(), expectedType, FORBIDDEN, false + trace, scope, DataFlowInfo.EMPTY, expectedType, FORBIDDEN, false ); return expressionTypingFacade.getType(expression, context); } @@ -65,14 +65,14 @@ public class ExpressionTypingServices { ExpressionTypingContext context = ExpressionTypingContext.newContext( semanticServices, new HashMap(), new HashMap>(), new LabelResolver(), - trace, scope, DataFlowInfo.getEmpty(), NO_EXPECTED_TYPE, FORBIDDEN, + trace, scope, DataFlowInfo.EMPTY, NO_EXPECTED_TYPE, FORBIDDEN, true); return expressionTypingFacade.getType(expression, context); // return ((ExpressionTypingContext) ExpressionTyperVisitorWithNamespaces).INSTANCE.getType(expression, ExpressionTypingContext.newRootContext(semanticServices, trace, scope, DataFlowInfo.getEmpty(), TypeUtils.NO_EXPECTED_TYPE, TypeUtils.NO_EXPECTED_TYPE)); } public void checkFunctionReturnType(@NotNull JetScope outerScope, @NotNull JetDeclarationWithBody function, @NotNull FunctionDescriptor functionDescriptor) { - checkFunctionReturnType(outerScope, function, functionDescriptor, DataFlowInfo.getEmpty()); + checkFunctionReturnType(outerScope, function, functionDescriptor, DataFlowInfo.EMPTY); } @NotNull @@ -87,7 +87,7 @@ public class ExpressionTypingServices { public void checkFunctionReturnType(JetScope functionInnerScope, JetDeclarationWithBody function, @NotNull final JetType expectedReturnType) { checkFunctionReturnType(function, ExpressionTypingContext.newContext( semanticServices, new HashMap(), new HashMap>(), new LabelResolver(), - trace, functionInnerScope, DataFlowInfo.getEmpty(), NO_EXPECTED_TYPE, expectedReturnType, false + trace, functionInnerScope, DataFlowInfo.EMPTY, NO_EXPECTED_TYPE, expectedReturnType, false )); } @@ -145,7 +145,7 @@ public class ExpressionTypingServices { assert bodyExpression != null; JetScope functionInnerScope = FunctionDescriptorUtil.getFunctionInnerScope(outerScope, functionDescriptor, trace); expressionTypingFacade.getType(bodyExpression, ExpressionTypingContext.newContext(semanticServices, new HashMap(), new HashMap>(), new LabelResolver(), - trace, functionInnerScope, DataFlowInfo.getEmpty(), NO_EXPECTED_TYPE, FORBIDDEN, false)); + trace, functionInnerScope, DataFlowInfo.EMPTY, NO_EXPECTED_TYPE, FORBIDDEN, false)); //todo function literals final Collection returnedExpressions = Lists.newArrayList(); if (function.hasBlockBody()) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java index 1b181c887b0..7ce0dce8bc2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java @@ -1,5 +1,6 @@ package org.jetbrains.jet.lang.types.expressions; +import com.intellij.openapi.util.Ref; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import org.jetbrains.annotations.NotNull; @@ -12,20 +13,22 @@ import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler; -import org.jetbrains.jet.lang.resolve.calls.AutoCastUtils; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValue; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.types.JetStandardClasses; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.JetTypeChecker; import org.jetbrains.jet.lang.types.TypeUtils; import org.jetbrains.jet.lexer.JetTokens; import java.util.List; -import static org.jetbrains.jet.lang.diagnostics.Errors.RESULT_TYPE_MISMATCH; -import static org.jetbrains.jet.lang.diagnostics.Errors.TYPE_MISMATCH; +import static org.jetbrains.jet.lang.diagnostics.Errors.*; +import static org.jetbrains.jet.lang.resolve.BindingContext.AUTOCAST; import static org.jetbrains.jet.lang.resolve.BindingContext.MUST_BE_WRAPPED_IN_A_REF; /** @@ -100,13 +103,13 @@ public class ExpressionTypingUtils { @NotNull public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) { if (condition == null) return context.dataFlowInfo; - final DataFlowInfo[] result = new DataFlowInfo[] {context.dataFlowInfo}; + final Ref result = new Ref(context.dataFlowInfo); condition.accept(new JetVisitorVoid() { @Override public void visitIsExpression(JetIsExpression expression) { if (conditionValue && !expression.isNegated() || !conditionValue && expression.isNegated()) { JetPattern pattern = expression.getPattern(); - result[0] = context.patternsToDataFlowInfo.get(pattern); + result.set(context.patternsToDataFlowInfo.get(pattern)); if (scopeToExtend != null) { List descriptors = context.patternsToBoundVariableLists.get(pattern); if (descriptors != null) { @@ -143,68 +146,94 @@ public class ExpressionTypingUtils { } dataFlowInfo = operator.compose(dataFlowInfo, rightInfo); } - result[0] = dataFlowInfo; + result.set(dataFlowInfo); } - else if (operationToken == JetTokens.EQEQ - || operationToken == JetTokens.EXCLEQ - || operationToken == JetTokens.EQEQEQ - || operationToken == JetTokens.EXCLEQEQEQ) { + else { JetExpression left = expression.getLeft(); JetExpression right = expression.getRight(); if (right == null) return; - if (!(left instanceof JetSimpleNameExpression)) { - JetExpression tmp = left; - left = right; - right = tmp; - - if (!(left instanceof JetSimpleNameExpression)) { - return; - } - } - - VariableDescriptor variableDescriptor = AutoCastUtils.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), left); - if (variableDescriptor == null) return; - - // TODO : validate that DF makes sense for this variable: local, val, internal w/backing field, etc - - // Comparison to a non-null expression + JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); + if (lhsType == null) return; JetType rhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, right); - if (rhsType != null && !rhsType.isNullable()) { - extendDataFlowWithNullComparison(operationToken, variableDescriptor, !conditionValue); - return; - } + if (rhsType == null) return; - VariableDescriptor rightVariable = AutoCastUtils.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), right); - if (rightVariable != null) { - JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); - if (lhsType != null && !lhsType.isNullable()) { - extendDataFlowWithNullComparison(operationToken, rightVariable, !conditionValue); - return; + BindingContext bindingContext = context.trace.getBindingContext(); + DataFlowValue leftValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(left, lhsType, bindingContext); + DataFlowValue rightValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(right, rhsType, bindingContext); + + Boolean equals = null; + if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { + equals = true; + } + else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { + equals = false; + } + if (equals != null) { + if (equals == conditionValue) { // this means: equals && conditionValue || !equals && !conditionValue + result.set(context.dataFlowInfo.equate(leftValue, rightValue)); + } + else { + result.set(context.dataFlowInfo.disequate(leftValue, rightValue)); } - } - // Comparison to 'null' - if (!(right instanceof JetConstantExpression)) { - return; - } - JetConstantExpression constantExpression = (JetConstantExpression) right; - if (constantExpression.getNode().getElementType() != JetNodeTypes.NULL) { - return; - } + } - extendDataFlowWithNullComparison(operationToken, variableDescriptor, conditionValue); +// if (!(left instanceof JetSimpleNameExpression)) { +// JetExpression tmp = left; +// left = right; +// right = tmp; +// +// if (!(left instanceof JetSimpleNameExpression)) { +// return; +// } +// } +// +// VariableDescriptor variableDescriptor = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), left); +// if (variableDescriptor == null) return; +// +// // TODO : validate that DF makes sense for this variable: local, val, internal w/backing field, etc +// +// // Comparison to a non-null expression +// JetType rhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, right); +// if (rhsType != null && !rhsType.isNullable()) { +// extendDataFlowWithNullComparison(operationToken, variableDescriptor, !conditionValue); +// return; +// } +// +// VariableDescriptor rightVariable = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), right); +// if (rightVariable != null) { +// JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); +// if (lhsType != null && !lhsType.isNullable()) { +// extendDataFlowWithNullComparison(operationToken, rightVariable, !conditionValue); +// return; +// } +// } +// +// // Comparison to 'null' +// if (!(right instanceof JetConstantExpression)) { +// return; +// } +// JetConstantExpression constantExpression = (JetConstantExpression) right; +// if (constantExpression.getNode().getElementType() != JetNodeTypes.NULL) { +// return; +// } +// +// extendDataFlowWithNullComparison(operationToken, variableDescriptor, conditionValue); } } - private void extendDataFlowWithNullComparison(IElementType operationToken, @NotNull VariableDescriptor variableDescriptor, boolean equalsToNull) { - if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { - result[0] = context.dataFlowInfo.equalsToNull(variableDescriptor, !equalsToNull); - } - else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { - result[0] = context.dataFlowInfo.equalsToNull(variableDescriptor, equalsToNull); - } - } +// private void extendDataFlowWithNullComparison(IElementType operationToken, @NotNull VariableDescriptor variableDescriptor, boolean equalsToNull) { +// boolean equality; +// if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { +//// result[0] = context.dataFlowInfo.establishEqualityToNull(variableDescriptor, !equalsToNull); +// equality = true; +// } +// else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { +//// result[0] = context.dataFlowInfo.establishEqualityToNull(variableDescriptor, equalsToNull); +// equality = false; +// } +// } @Override public void visitUnaryExpression(JetUnaryExpression expression) { @@ -212,7 +241,7 @@ public class ExpressionTypingUtils { if (operationTokenType == JetTokens.EXCL) { JetExpression baseExpression = expression.getBaseExpression(); if (baseExpression != null) { - result[0] = extractDataFlowInfoFromCondition(baseExpression, !conditionValue, scopeToExtend, context); + result.set(extractDataFlowInfoFromCondition(baseExpression, !conditionValue, scopeToExtend, context)); } } } @@ -225,10 +254,10 @@ public class ExpressionTypingUtils { } } }); - if (result[0] == null) { + if (result.get() == null) { return context.dataFlowInfo; } - return result[0]; + return result.get(); } public static boolean isTypeFlexible(@Nullable JetExpression expression) { @@ -246,17 +275,27 @@ public class ExpressionTypingUtils { context.semanticServices.getTypeChecker().isSubtypeOf(expressionType, context.expectedType)) { return expressionType; } - if (AutoCastUtils.castExpression(expression, context.expectedType, context.dataFlowInfo, context.trace) == null) { - context.trace.report(TYPE_MISMATCH.on(expression, context.expectedType, expressionType)); - return expressionType; + + DataFlowValue dataFlowValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(expression, expressionType, context.trace.getBindingContext()); + for (JetType possibleType : context.dataFlowInfo.getPossibleTypes(dataFlowValue)) { + if (JetTypeChecker.INSTANCE.isSubtypeOf(possibleType, context.expectedType)) { + if (dataFlowValue.isStableIdentifier()) { + context.trace.record(AUTOCAST, expression, possibleType); + } + else { + context.trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); + } + return possibleType; + } } - return context.expectedType; + context.trace.report(TYPE_MISMATCH.on(expression, context.expectedType, expressionType)); + return expressionType; } public static void checkWrappingInRef(JetExpression expression, ExpressionTypingContext context) { if (!(expression instanceof JetSimpleNameExpression)) return; JetSimpleNameExpression simpleName = (JetSimpleNameExpression) expression; - VariableDescriptor variable = AutoCastUtils.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), simpleName); + VariableDescriptor variable = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), simpleName); if (variable != null) { DeclarationDescriptor containingDeclaration = variable.getContainingDeclaration(); if (context.scope.getContainingDeclaration() != containingDeclaration && containingDeclaration instanceof CallableDescriptor) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java index 0a8b5efd150..735f0e5e6b3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java @@ -6,7 +6,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.DeferredType; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java index 3cd9cc80cab..5d1783f026b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java @@ -2,12 +2,14 @@ package org.jetbrains.jet.lang.types.expressions; import com.google.common.collect.Sets; import com.intellij.lang.ASTNode; +import com.intellij.openapi.util.Ref; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.calls.AutoCastUtils; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValue; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; @@ -19,8 +21,6 @@ import java.util.List; import java.util.Set; import static org.jetbrains.jet.lang.diagnostics.Errors.*; -import static org.jetbrains.jet.lang.diagnostics.Errors.INCOMPATIBLE_TYPES; -import static org.jetbrains.jet.lang.diagnostics.Errors.UNSUPPORTED; import static org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils.ensureBooleanResultWithCustomSubject; import static org.jetbrains.jet.lang.types.expressions.ExpressionTypingUtils.newWritableScopeImpl; @@ -35,11 +35,12 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { @Override public JetType visitIsExpression(JetIsExpression expression, ExpressionTypingContext contextWithExpectedType) { ExpressionTypingContext context = contextWithExpectedType.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE); - JetType knownType = facade.safeGetType(expression.getLeftHandSide(), context.replaceScope(context.scope)); + JetExpression leftHandSide = expression.getLeftHandSide(); + JetType knownType = facade.safeGetType(leftHandSide, context.replaceScope(context.scope)); JetPattern pattern = expression.getPattern(); if (pattern != null) { WritableScopeImpl scopeToExtend = newWritableScopeImpl(context).setDebugName("Scope extended in 'is'"); - DataFlowInfo newDataFlowInfo = checkPatternType(pattern, knownType, scopeToExtend, context, AutoCastUtils.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), expression.getLeftHandSide())); + DataFlowInfo newDataFlowInfo = checkPatternType(pattern, knownType, scopeToExtend, context, DataFlowValueFactory.INSTANCE.createDataFlowValue(leftHandSide, knownType, context.trace.getBindingContext())); context.patternsToDataFlowInfo.put(pattern, newDataFlowInfo); context.patternsToBoundVariableLists.put(pattern, scopeToExtend.getDeclaredVariables()); } @@ -53,7 +54,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { final JetExpression subjectExpression = expression.getSubjectExpression(); final JetType subjectType = subjectExpression != null ? context.getServices().safeGetType(context.scope, subjectExpression, TypeUtils.NO_EXPECTED_TYPE) : ErrorUtils.createErrorType("Unknown type"); - final VariableDescriptor variableDescriptor = subjectExpression != null ? AutoCastUtils.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), subjectExpression) : null; + final DataFlowValue variableDescriptor = subjectExpression != null ? DataFlowValueFactory.INSTANCE.createDataFlowValue(subjectExpression, subjectType, context.trace.getBindingContext()) : null; // TODO : exhaustive patterns @@ -108,7 +109,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { return null; } - private DataFlowInfo checkWhenCondition(@Nullable final JetExpression subjectExpression, final JetType subjectType, JetWhenCondition condition, final WritableScope scopeToExtend, final ExpressionTypingContext context, final VariableDescriptor... subjectVariables) { + private DataFlowInfo checkWhenCondition(@Nullable final JetExpression subjectExpression, final JetType subjectType, JetWhenCondition condition, final WritableScope scopeToExtend, final ExpressionTypingContext context, final DataFlowValue... subjectVariables) { final DataFlowInfo[] newDataFlowInfo = new DataFlowInfo[]{context.dataFlowInfo}; condition.accept(new JetVisitorVoid() { @@ -151,8 +152,8 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { return newDataFlowInfo[0]; } - private DataFlowInfo checkPatternType(@NotNull JetPattern pattern, @NotNull final JetType subjectType, @NotNull final WritableScope scopeToExtend, final ExpressionTypingContext context, @NotNull final VariableDescriptor... subjectVariables) { - final DataFlowInfo[] result = new DataFlowInfo[] {context.dataFlowInfo}; + private DataFlowInfo checkPatternType(@NotNull JetPattern pattern, @NotNull final JetType subjectType, @NotNull final WritableScope scopeToExtend, final ExpressionTypingContext context, @NotNull final DataFlowValue... subjectVariables) { + final Ref result = new Ref(context.dataFlowInfo); pattern.accept(new JetVisitorVoid() { @Override public void visitTypePattern(JetTypePattern typePattern) { @@ -160,7 +161,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { if (typeReference != null) { JetType type = context.getTypeResolver().resolveType(context.scope, typeReference); checkTypeCompatibility(type, subjectType, typePattern); - result[0] = context.dataFlowInfo.isInstanceOf(subjectVariables, type); + result.set(context.dataFlowInfo.establishSubtyping(subjectVariables, type)); } } @@ -187,7 +188,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { JetPattern entryPattern = entry.getPattern(); if (entryPattern != null) { - result[0] = result[0].and(checkPatternType(entryPattern, type, scopeToExtend, context)); + result.set(result.get().and(checkPatternType(entryPattern, type, scopeToExtend, context))); } } } @@ -200,7 +201,9 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { ReceiverDescriptor receiver = new TransientReceiver(subjectType); JetType selectorReturnType = facade.getSelectorReturnType(receiver, null, decomposerExpression, context); - result[0] = checkPatternType(pattern.getArgumentList(), selectorReturnType == null ? ErrorUtils.createErrorType("No type") : selectorReturnType, scopeToExtend, context); + result.set(checkPatternType(pattern.getArgumentList(), selectorReturnType == null + ? ErrorUtils.createErrorType("No type") + : selectorReturnType, scopeToExtend, context)); } } @@ -235,10 +238,10 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { JetWhenCondition condition = pattern.getCondition(); if (condition != null) { int oldLength = subjectVariables.length; - VariableDescriptor[] newSubjectVariables = new VariableDescriptor[oldLength + 1]; + DataFlowValue[] newSubjectVariables = new DataFlowValue[oldLength + 1]; System.arraycopy(subjectVariables, 0, newSubjectVariables, 0, oldLength); - newSubjectVariables[oldLength] = variableDescriptor; - result[0] = checkWhenCondition(null, subjectType, condition, scopeToExtend, context, newSubjectVariables); + newSubjectVariables[oldLength] = DataFlowValueFactory.INSTANCE.createDataFlowValue(variableDescriptor); + result.set(checkWhenCondition(null, subjectType, condition, scopeToExtend, context, newSubjectVariables)); } } @@ -259,7 +262,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { context.trace.report(UNSUPPORTED.on(element, getClass().getCanonicalName())); } }); - return result[0]; + return result.get(); } } diff --git a/idea/testData/checker/infos/Autocasts.jet b/idea/testData/checker/infos/Autocasts.jet index 062b26b75a2..a7e1c07bd34 100644 --- a/idea/testData/checker/infos/Autocasts.jet +++ b/idea/testData/checker/infos/Autocasts.jet @@ -189,11 +189,11 @@ fun tuples(a: Any?) { val s: (Any, String) = (a, a) } if (a is String) { - val s: (Any, String) = (a, a) + val s: (Any, String) = (a, a) } fun illegalTupleReturnType(): (Any, String) = (a, a) if (a is String) { - fun legalTupleReturnType(): (Any, String) = (a, a) + fun legalTupleReturnType(): (Any, String) = (a, a) } val illegalFunctionLiteral: Function0 = { a } val illegalReturnValueInFunctionLiteral: Function0 = { (): Int => a } diff --git a/idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet b/idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet new file mode 100644 index 00000000000..6bb9d5f51db --- /dev/null +++ b/idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet @@ -0,0 +1,91 @@ +namespace example; + +namespace ns { + val y : Any? = 2 +} + +object Obj { + val y : Any? = 2 +} + +class AClass() { + class object { + val y : Any? = 2 + } +} + +val x : Any? = 1 + +fun Any?.vars(a: Any?) : Int { + var b: Int = 0 + if (ns.y is Int) { + b = ns.y + } + if (ns.y is Int) { + b = example.ns.y + } + if (example.ns.y is Int) { + b = ns.y + } + if (example.ns.y is Int) { + b = example.ns.y + } +// if (namespace.bottles.ns.y is Int) { +// b = ns.y +// } + if (Obj.y is Int) { + b = Obj.y + } + if (example.Obj.y is Int) { + b = Obj.y + } + if (AClass.y is Int) { + b = AClass.y + } + if (example.AClass.y is Int) { + b = AClass.y + } + if (x is Int) { + b = x + } + if (example.x is Int) { + b = x + } + if (example.x is Int) { + b = example.x + } + return 1 +} + +fun Any?.foo() : Int { + if (this is Int) + return this + if (this@foo is Int) + return this + if (this@foo is Int) + return this@foo + if (this is Int) + return this@foo + return 1 +} + + +trait T {} + +open class C { + fun foo() { + var t : T? = null + if (this is T) { + t = this + } + if (this is T) { + t = this@C + } + if (this@C is T) { + t = this + } + if (this@C is T) { + t = this@C + } + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java b/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java index 2f07aa92e9f..f921ed4ba05 100644 --- a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java +++ b/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java @@ -17,7 +17,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.resolve.calls.CallResolver; -import org.jetbrains.jet.lang.resolve.calls.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; @@ -111,7 +111,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { List parameterTypeList = Arrays.asList(parameterType); // JetTypeInferrer.Services typeInferrerServices = JetSemanticServices.createSemanticServices(getProject()).getTypeInferrerServices(new BindingTraceContext()); - CallResolver callResolver = new CallResolver(JetSemanticServices.createSemanticServices(getProject()), DataFlowInfo.getEmpty()); + CallResolver callResolver = new CallResolver(JetSemanticServices.createSemanticServices(getProject()), DataFlowInfo.EMPTY); OverloadResolutionResults functions = callResolver.resolveExactSignature( classDescriptor.getMemberScope(typeArguments), ReceiverDescriptor.NO_RECEIVER, name, parameterTypeList); for (ResolvedCall resolvedCall : functions.getResults()) { From 33d09eb1df1aa9889b6672e38785f8de39a12dbd Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Wed, 19 Oct 2011 07:42:31 +0200 Subject: [PATCH 04/22] default args --- .../jetbrains/jet/codegen/CallableMethod.java | 9 + .../jetbrains/jet/codegen/ClosureCodegen.java | 67 ++++- .../jet/codegen/ExpressionCodegen.java | 104 +++++-- .../jet/codegen/FunctionCodegen.java | 276 +++++++++++++----- .../jet/codegen/FunctionOrClosureCodegen.java | 10 + .../jet/lang/resolve/calls/ResolvedCall.java | 5 + .../codegen/functions/defaultargs.jet | 49 ++++ idea/testData/codegen/functions/namedargs.jet | 19 ++ .../codegen/functions/nothisnoclosure.jet | 13 + .../jet/codegen/FunctionGenTest.java | 19 ++ 10 files changed, 475 insertions(+), 96 deletions(-) create mode 100644 idea/testData/codegen/functions/defaultargs.jet create mode 100644 idea/testData/codegen/functions/namedargs.jet create mode 100644 idea/testData/codegen/functions/nothisnoclosure.jet create mode 100644 idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java index 01b0d082f3b..4582e2e5e6c 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java @@ -2,6 +2,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import org.objectweb.asm.commons.InstructionAdapter; import org.objectweb.asm.commons.Method; @@ -89,4 +90,12 @@ public class CallableMethod implements Callable { public Type getGenerateCalleeType() { return generateCalleeType; } + + public void invokeWithDefault(InstructionAdapter v, int mask) { + v.iconst(mask); + String desc = getSignature().getDescriptor().replace(")", "I)"); + if(getInvokeOpcode() != Opcodes.INVOKESTATIC) + desc = desc.replace("(", "(L" + getOwner() + ";"); + v.visitMethodInsn(Opcodes.INVOKESTATIC, getInvokeOpcode() == Opcodes.INVOKEINTERFACE ? getOwner() + "$$TImpl" : getOwner(), getSignature().getName() + "$default", desc); + } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 8e507409cb9..81d12c3f568 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -13,10 +13,7 @@ import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.JetType; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.Type; +import org.objectweb.asm.*; import org.objectweb.asm.commons.InstructionAdapter; import org.objectweb.asm.commons.Method; import org.objectweb.asm.signature.SignatureWriter; @@ -26,6 +23,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import static org.objectweb.asm.Opcodes.*; + public class ClosureCodegen extends FunctionOrClosureCodegen { public ClosureCodegen(GenerationState state, ExpressionCodegen exprContext, ClassContext context) { @@ -68,8 +67,8 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { appendType(signatureWriter, funDescriptor.getReturnType(), '='); signatureWriter.visitEnd(); - cv.visit(Opcodes.V1_6, - Opcodes.ACC_PUBLIC, + cv.visit(V1_6, + ACC_PUBLIC, name, null, funClass, @@ -79,7 +78,7 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { generateBridge(name, funDescriptor, cv); - boolean captureThis = generateBody(funDescriptor, cv, fun.getFunctionLiteral()); + captureThis = generateBody(funDescriptor, cv, fun.getFunctionLiteral()); final Type enclosingType = context.enclosingClassType(state.getTypeMapper()); if (enclosingType == null) captureThis = false; @@ -89,6 +88,10 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { cv.visitField(0, "this$0", enclosingType.getDescriptor(), null, null); } + if(isConst()) { + generateConstInstance(); + } + cv.visitEnd(); final GeneratedAnonymousClassDescriptor answer = new GeneratedAnonymousClassDescriptor(name, constructor, captureThis); @@ -99,6 +102,48 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { return answer; } + private void generateConstInstance() { + cv.visitField(ACC_PRIVATE| ACC_STATIC, "$instance", "Ljava/lang/ref/SoftReference;", null, null); + + MethodVisitor mv = cv.visitMethod(ACC_PUBLIC | ACC_STATIC, "$getInstance", "()L" + name + ";", null, new String[0]); + mv.visitCode(); + mv.visitFieldInsn(GETSTATIC, name, "$instance", "Ljava/lang/ref/SoftReference;"); + mv.visitInsn(DUP); + Label makeNew = new Label(); + mv.visitJumpInsn(IFNULL, makeNew); + + mv.visitMethodInsn(INVOKEVIRTUAL, "java/lang/ref/SoftReference", "get", "()Ljava/lang/Object;"); + mv.visitInsn(DUP); + + Label ret = new Label(); + mv.visitJumpInsn(IFNULL, makeNew); + mv.visitTypeInsn(CHECKCAST, name); + mv.visitJumpInsn(GOTO, ret); + + mv.visitLabel(makeNew); + mv.visitInsn(POP); + + mv.visitTypeInsn(NEW, "java/lang/ref/SoftReference"); + mv.visitInsn(DUP); + + mv.visitTypeInsn(NEW, name); + mv.visitInsn(DUP); + mv.visitVarInsn(ASTORE, 0); + + mv.visitInsn(DUP); + mv.visitMethodInsn(INVOKESPECIAL, name, "", "()V"); + + mv.visitMethodInsn(INVOKESPECIAL, "java/lang/ref/SoftReference", "", "(Ljava/lang/Object;)V"); + mv.visitFieldInsn(PUTSTATIC, name, "$instance", "Ljava/lang/ref/SoftReference;"); + + mv.visitVarInsn(ALOAD, 0); + + mv.visitLabel(ret); + mv.visitInsn(ARETURN); + mv.visitMaxs(0,0); + mv.visitEnd(); + } + private boolean generateBody(FunctionDescriptor funDescriptor, ClassVisitor cv, JetFunctionLiteral body) { final ClassContext closureContext = context.intoClosure(name, this); FunctionCodegen fc = new FunctionCodegen(closureContext, cv, state); @@ -110,7 +155,7 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { final Method bridge = erasedInvokeSignature(funDescriptor); final Method delegate = invokeSignature(funDescriptor); - final MethodVisitor mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "invoke", bridge.getDescriptor(), state.getTypeMapper().genericSignature(funDescriptor), new String[0]); + final MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, "invoke", bridge.getDescriptor(), state.getTypeMapper().genericSignature(funDescriptor), new String[0]); mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); @@ -164,7 +209,7 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { } final Method constructor = new Method("", Type.VOID_TYPE, argTypes); - final MethodVisitor mv = cv.visitMethod(Opcodes.ACC_PUBLIC, "", constructor.getDescriptor(), null, new String[0]); + final MethodVisitor mv = cv.visitMethod(ACC_PUBLIC, "", constructor.getDescriptor(), null, new String[0]); mv.visitCode(); InstructionAdapter iv = new InstructionAdapter(mv); ExpressionCodegen expressionCodegen = new ExpressionCodegen(mv, null, Type.VOID_TYPE, context, state); @@ -190,7 +235,7 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { StackValue.field(type, name, fieldName, false).store(iv); } - iv.visitInsn(Opcodes.RETURN); + iv.visitInsn(RETURN); mv.visitMaxs(0, 0); mv.visitEnd(); @@ -219,7 +264,7 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { public static CallableMethod asCallableMethod(FunctionDescriptor fd) { Method descriptor = erasedInvokeSignature(fd); String owner = getInternalClassName(fd); - final CallableMethod result = new CallableMethod(owner, descriptor, Opcodes.INVOKEVIRTUAL, Arrays.asList(descriptor.getArgumentTypes())); + final CallableMethod result = new CallableMethod(owner, descriptor, INVOKEVIRTUAL, Arrays.asList(descriptor.getArgumentTypes())); if (fd.getReceiverParameter().exists()) { result.setNeedsReceiver(null); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 782ec25c56a..17e9aa6a456 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -13,6 +13,7 @@ import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; 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.calls.*; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.java.JavaClassDescriptor; import org.jetbrains.jet.lang.types.*; @@ -543,23 +544,29 @@ public class ExpressionCodegen extends JetVisitor { return generateBlock(expression.getFunctionLiteral().getBodyExpression().getStatements()); } else { - final GeneratedAnonymousClassDescriptor closure = new ClosureCodegen(state, this, context).gen(expression); + ClosureCodegen closureCodegen = new ClosureCodegen(state, this, context); + final GeneratedAnonymousClassDescriptor closure = closureCodegen.gen(expression); - v.anew(Type.getObjectType(closure.getClassname())); - v.dup(); - - final Method cons = closure.getConstructor(); - - if (closure.isCaptureThis()) { - v.load(0, JetTypeMapper.TYPE_OBJECT); + if(closureCodegen.isConst()) { + v.invokestatic(closure.getClassname(), "$getInstance", "()L" + closure.getClassname() + ";"); } + else { + v.anew(Type.getObjectType(closure.getClassname())); + v.dup(); - for (int i = 0; i < closure.getArgs().size(); i++) { - StackValue arg = closure.getArgs().get(i); - arg.put(cons.getArgumentTypes()[i], v); + final Method cons = closure.getConstructor(); + + if (closure.isCaptureThis()) { + v.load(0, JetTypeMapper.TYPE_OBJECT); + } + + for (int i = 0; i < closure.getArgs().size(); i++) { + StackValue arg = closure.getArgs().get(i); + arg.put(cons.getArgumentTypes()[i], v); + } + + v.invokespecial(closure.getClassname(), "", cons.getDescriptor()); } - - v.invokespecial(closure.getClassname(), "", cons.getDescriptor()); return StackValue.onStack(Type.getObjectType(closure.getClassname())); } } @@ -1018,11 +1025,14 @@ public class ExpressionCodegen extends JetVisitor { } receiver.put(JetTypeMapper.TYPE_OBJECT, v); } - pushMethodArguments(expression, callableMethod.getValueParameterTypes()); + int mask = pushMethodArguments(expression, callableMethod.getValueParameterTypes()); if (callableMethod.acceptsTypeArguments()) { pushTypeArguments(expression); } - callableMethod.invoke(v); + if(mask == 0) + callableMethod.invoke(v); + else + callableMethod.invokeWithDefault(v, mask); } private void setOwnerFromCall(CallableMethod callableMethod, JetCallElement expression) { @@ -1118,11 +1128,52 @@ public class ExpressionCodegen extends JetVisitor { return false; } - private void pushMethodArguments(JetCallElement expression, List valueParameterTypes) { + private int pushMethodArguments(JetCallElement expression, List valueParameterTypes) { + ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); List args = expression.getValueArguments(); - for (int i = 0, argsSize = args.size(); i < argsSize; i++) { - ValueArgument arg = args.get(i); - gen(arg.getArgumentExpression(), valueParameterTypes.get(i)); + if(resolvedCall != null) { + Map valueArguments = resolvedCall.getValueArguments(); + CallableDescriptor fd = resolvedCall.getResultingDescriptor(); + + int index = 0; + int mask = 0; + for (ValueParameterDescriptor valueParameterDescriptor : fd.getValueParameters()) { + ResolvedValueArgument resolvedValueArgument = valueArguments.get(valueParameterDescriptor); + if(resolvedValueArgument instanceof ExpressionValueArgument) { + ExpressionValueArgument valueArgument = (ExpressionValueArgument) resolvedValueArgument; + gen(valueArgument.getExpression(), valueParameterTypes.get(index)); + } + else if(resolvedValueArgument instanceof DefaultValueArgument) { + Type type = valueParameterTypes.get(index); + if(type.getSort() == Type.OBJECT||type.getSort() == Type.ARRAY) + v.aconst(null); + else if(type.getSort() == Type.FLOAT) { + v.aconst(0f); + } + else if(type.getSort() == Type.DOUBLE) { + v.aconst(0d); + } + else { + v.iconst(0); + } + mask |= (1 << index); + } + else if(resolvedValueArgument instanceof VarargValueArgument) { + throw new UnsupportedOperationException("Varargs are not supported yet"); + } + else { + throw new UnsupportedOperationException(); + } + index++; + } + return mask; + } + else { + for (int i = 0, argsSize = args.size(); i < argsSize; i++) { + ValueArgument arg = args.get(i); + gen(arg.getArgumentExpression(), valueParameterTypes.get(i)); + } + return 0; } } @@ -1739,6 +1790,21 @@ public class ExpressionCodegen extends JetVisitor { } private void pushTypeArguments(JetCallElement expression) { +// todo when frontend calculates +// ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); +// if(resolvedCall != null) { +// Map typeArguments = resolvedCall.getTypeArguments(); +// CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); +// for (TypeParameterDescriptor typeParameterDescriptor : resultingDescriptor.getTypeParameters()) { +// JetType jetType = typeArguments.get(typeParameterDescriptor); +// generateTypeInfo(jetType); +// } +// } +// else { +// for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { +// pushTypeArgument(jetTypeArgument); +// } +// } for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { pushTypeArgument(jetTypeArgument); } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index 1fcd98e320c..fcc3f8f0173 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -1,26 +1,22 @@ package org.jetbrains.jet.codegen; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; -import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; -import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; -import org.jetbrains.jet.lang.psi.JetDeclarationWithBody; -import org.jetbrains.jet.lang.psi.JetExpression; -import org.jetbrains.jet.lang.psi.JetNamedFunction; +import com.intellij.psi.PsiElement; +import org.jetbrains.jet.lang.descriptors.*; +import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; -import org.objectweb.asm.Type; +import org.objectweb.asm.*; import org.objectweb.asm.commons.InstructionAdapter; import org.objectweb.asm.commons.Method; import java.util.List; import java.util.Set; +import static org.objectweb.asm.Opcodes.*; + /** * @author max * @author yole + * @author alex.tkachman */ public class FunctionCodegen { private final ClassContext owner; @@ -54,74 +50,81 @@ public class FunctionCodegen { List paramDescrs = functionDescriptor.getValueParameters(); List typeParameters = functionDescriptor.getTypeParameters(); - int flags = Opcodes.ACC_PUBLIC; // TODO. + int flags = ACC_PUBLIC; // TODO. OwnerKind kind = context.getContextKind(); - if(kind == OwnerKind.TRAIT_IMPL && bodyExpressions == null) - return; + if (kind != OwnerKind.TRAIT_IMPL || bodyExpressions != null) { - boolean isStatic = kind == OwnerKind.NAMESPACE || kind == OwnerKind.TRAIT_IMPL; - if (isStatic) flags |= Opcodes.ACC_STATIC; + boolean isStatic = kind == OwnerKind.NAMESPACE || kind == OwnerKind.TRAIT_IMPL; + if (isStatic) flags |= ACC_STATIC; - boolean isAbstract = !isStatic && (bodyExpressions == null || CodegenUtil.isInterface(functionDescriptor.getContainingDeclaration())); - if (isAbstract) flags |= Opcodes.ACC_ABSTRACT; + boolean isAbstract = !isStatic && (bodyExpressions == null || CodegenUtil.isInterface(functionDescriptor.getContainingDeclaration())); + if (isAbstract) flags |= ACC_ABSTRACT; - final MethodVisitor mv = v.visitMethod(flags, jvmSignature.getName(), jvmSignature.getDescriptor(), null, null); - if (!isAbstract) { - mv.visitCode(); - FrameMap frameMap = context.prepareFrame(); + final MethodVisitor mv = v.visitMethod(flags, jvmSignature.getName(), jvmSignature.getDescriptor(), null, null); + if (!isAbstract) { + mv.visitCode(); + FrameMap frameMap = context.prepareFrame(); - ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, jvmSignature.getReturnType(), context, state); + ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, jvmSignature.getReturnType(), context, state); - Type[] argTypes = jvmSignature.getArgumentTypes(); - for (int i = 0; i < paramDescrs.size(); i++) { - ValueParameterDescriptor parameter = paramDescrs.get(i); - frameMap.enter(parameter, argTypes[i].getSize()); - } - - for (final TypeParameterDescriptor typeParameterDescriptor : typeParameters) { - int slot = frameMap.enterTemp(); - codegen.addTypeParameter(typeParameterDescriptor, StackValue.local(slot, JetTypeMapper.TYPE_TYPEINFO)); - } - - if (kind instanceof OwnerKind.DelegateKind) { - OwnerKind.DelegateKind dk = (OwnerKind.DelegateKind) kind; - InstructionAdapter iv = new InstructionAdapter(mv); - iv.load(0, JetTypeMapper.TYPE_OBJECT); - dk.getDelegate().put(JetTypeMapper.TYPE_OBJECT, iv); - for (int i = 0; i < argTypes.length; i++) { - Type argType = argTypes[i]; - iv.load(i + 1, argType); - } - iv.invokeinterface(dk.getOwnerClass(), jvmSignature.getName(), jvmSignature.getDescriptor()); - iv.areturn(jvmSignature.getReturnType()); - } - else { + Type[] argTypes = jvmSignature.getArgumentTypes(); for (int i = 0; i < paramDescrs.size(); i++) { ValueParameterDescriptor parameter = paramDescrs.get(i); - - Type sharedVarType = codegen.getSharedVarType(parameter); - Type localVarType = state.getTypeMapper().mapType(parameter.getOutType()); - if(sharedVarType != null) { - int index = frameMap.getIndex(parameter); - mv.visitTypeInsn(Opcodes.NEW, sharedVarType.getInternalName()); - mv.visitInsn(Opcodes.DUP); - mv.visitInsn(Opcodes.DUP); - mv.visitMethodInsn(Opcodes.INVOKESPECIAL, sharedVarType.getInternalName(), "", "()V"); - mv.visitVarInsn(localVarType.getOpcode(Opcodes.ILOAD), index); - mv.visitFieldInsn(Opcodes.PUTFIELD, sharedVarType.getInternalName(), "ref", StackValue.refType(localVarType).getDescriptor()); - mv.visitVarInsn(sharedVarType.getOpcode(Opcodes.ISTORE), index); - } + frameMap.enter(parameter, argTypes[i].getSize()); } - codegen.returnExpression(bodyExpressions); - } - mv.visitMaxs(0, 0); - mv.visitEnd(); + for (final TypeParameterDescriptor typeParameterDescriptor : typeParameters) { + int slot = frameMap.enterTemp(); + codegen.addTypeParameter(typeParameterDescriptor, StackValue.local(slot, JetTypeMapper.TYPE_TYPEINFO)); + } - generateBridgeIfNeeded(owner, state, v, jvmSignature, functionDescriptor, kind); + if (kind instanceof OwnerKind.DelegateKind) { + OwnerKind.DelegateKind dk = (OwnerKind.DelegateKind) kind; + InstructionAdapter iv = new InstructionAdapter(mv); + iv.load(0, JetTypeMapper.TYPE_OBJECT); + dk.getDelegate().put(JetTypeMapper.TYPE_OBJECT, iv); + for (int i = 0; i < argTypes.length; i++) { + Type argType = argTypes[i]; + iv.load(i + 1, argType); + } + iv.invokeinterface(dk.getOwnerClass(), jvmSignature.getName(), jvmSignature.getDescriptor()); + iv.areturn(jvmSignature.getReturnType()); + } + else { + for (int i = 0; i < paramDescrs.size(); i++) { + ValueParameterDescriptor parameter = paramDescrs.get(i); + + Type sharedVarType = codegen.getSharedVarType(parameter); + Type localVarType = state.getTypeMapper().mapType(parameter.getOutType()); + if (sharedVarType != null) { + int index = frameMap.getIndex(parameter); + mv.visitTypeInsn(NEW, sharedVarType.getInternalName()); + mv.visitInsn(DUP); + mv.visitInsn(DUP); + mv.visitMethodInsn(INVOKESPECIAL, sharedVarType.getInternalName(), "", "()V"); + mv.visitVarInsn(localVarType.getOpcode(ILOAD), index); + mv.visitFieldInsn(PUTFIELD, sharedVarType.getInternalName(), "ref", StackValue.refType(localVarType).getDescriptor()); + mv.visitVarInsn(sharedVarType.getOpcode(ISTORE), index); + } + } + + codegen.returnExpression(bodyExpressions); + } + try { + mv.visitMaxs(0, 0); + } + catch (Throwable t) { + System.out.println(t); + } + mv.visitEnd(); + + generateBridgeIfNeeded(owner, state, v, jvmSignature, functionDescriptor, kind); + } } + + generateDefaultIfNeeded(context, state, v, jvmSignature, functionDescriptor, kind); } static void generateBridgeIfNeeded(ClassContext owner, GenerationState state, ClassVisitor v, Method jvmSignature, FunctionDescriptor functionDescriptor, OwnerKind kind) { @@ -135,12 +138,153 @@ public class FunctionCodegen { } } + static void generateDefaultIfNeeded(ClassContext owner, GenerationState state, ClassVisitor v, Method jvmSignature, FunctionDescriptor functionDescriptor, OwnerKind kind) { + DeclarationDescriptor contextClass = owner.getContextClass(); + + if(kind != OwnerKind.TRAIT_IMPL) { + // we don't generate defaults for traits but do for traitImpl + if(contextClass instanceof ClassDescriptor) { + PsiElement psiElement = state.getBindingContext().get(BindingContext.DESCRIPTOR_TO_DECLARATION, contextClass); + if(psiElement instanceof JetClass) { + JetClass element = (JetClass) psiElement; + if(element.isTrait()) + return; + } + } + } + + boolean needed = false; + for (ValueParameterDescriptor parameterDescriptor : functionDescriptor.getValueParameters()) { + if(parameterDescriptor.hasDefaultValue()) { + needed = true; + break; + } + } + + if(needed) { + boolean hasReceiver = functionDescriptor.getReceiverParameter().exists(); + boolean isStatic = kind == OwnerKind.NAMESPACE; + + if(kind == OwnerKind.TRAIT_IMPL) { + String correctedDescr = "(" + jvmSignature.getDescriptor().substring(jvmSignature.getDescriptor().indexOf(";") + 1); + jvmSignature = new Method(jvmSignature.getName(), correctedDescr); + } + + int flags = ACC_PUBLIC; // TODO. + + String ownerInternalName = contextClass instanceof NamespaceDescriptor ? + JetTypeMapper.jvmName((NamespaceDescriptor) contextClass) : + state.getTypeMapper().jvmName((ClassDescriptor) contextClass, OwnerKind.IMPLEMENTATION); + + String descriptor = jvmSignature.getDescriptor().replace(")","I)"); + if(!isStatic) + descriptor = descriptor.replace("(","(L" + ownerInternalName + ";"); + final MethodVisitor mv = v.visitMethod(flags| ACC_STATIC, jvmSignature.getName() + "$default", descriptor, null, null); + InstructionAdapter iv = new InstructionAdapter(mv); + mv.visitCode(); + + FrameMap frameMap = owner.prepareFrame(); + + ExpressionCodegen codegen = new ExpressionCodegen(mv, frameMap, jvmSignature.getReturnType(), owner, state); + + int var = 0; + if(!isStatic) { + frameMap.enterTemp(); + var++; + } + + if(hasReceiver) { + frameMap.enterTemp(); + var++; + } + + Type[] argTypes = jvmSignature.getArgumentTypes(); + List paramDescrs = functionDescriptor.getValueParameters(); + for (int i = 0; i < paramDescrs.size(); i++) { + ValueParameterDescriptor parameter = paramDescrs.get(i); + int size = argTypes[i + (hasReceiver ? 1 : 0)].getSize(); + var += size; + frameMap.enter(parameter, size); + } + + List typeParameters = functionDescriptor.getTypeParameters(); + for (final TypeParameterDescriptor typeParameterDescriptor : typeParameters) { + int slot = frameMap.enterTemp(); + codegen.addTypeParameter(typeParameterDescriptor, StackValue.local(slot, JetTypeMapper.TYPE_TYPEINFO)); + var++; + } + + frameMap.enterTemp(); + + int maskIndex = var; + + var = 0; + if(!isStatic) { + mv.visitVarInsn(ALOAD, var++); + } + + if(hasReceiver) { + mv.visitVarInsn(ALOAD, var++); + } + + Type[] argumentTypes = jvmSignature.getArgumentTypes(); + for (int index = 0; index < paramDescrs.size(); index++) { + ValueParameterDescriptor parameterDescriptor = paramDescrs.get(index); + + Type t = argumentTypes[(hasReceiver ? 1 : 0) + index]; + Label endArg = null; + if (parameterDescriptor.hasDefaultValue()) { + iv.load(maskIndex, Type.INT_TYPE); + iv.iconst(1 << index); + iv.and(Type.INT_TYPE); + Label loadArg = new Label(); + iv.ifeq(loadArg); + + JetParameter jetParameter = (JetParameter) state.getBindingContext().get(BindingContext.DESCRIPTOR_TO_DECLARATION, parameterDescriptor); + codegen.gen(jetParameter.getDefaultValue(), t); + + endArg = new Label(); + iv.goTo(endArg); + + iv.mark(loadArg); + } + + iv.load(var, t); + var += t.getSize(); + + if (parameterDescriptor.hasDefaultValue()) { + iv.mark(endArg); + } + } + + for (final TypeParameterDescriptor typeParameterDescriptor : typeParameters) { + iv.load(var++, JetTypeMapper.TYPE_OBJECT); + } + + if(!isStatic) { + if(kind == OwnerKind.TRAIT_IMPL) { + iv.invokeinterface(ownerInternalName, jvmSignature.getName(), jvmSignature.getDescriptor()); + } + else + iv.invokevirtual(ownerInternalName, jvmSignature.getName(), jvmSignature.getDescriptor()); + } + else { + iv.invokestatic(ownerInternalName, jvmSignature.getName(), jvmSignature.getDescriptor()); + } + + iv.areturn(jvmSignature.getReturnType()); + + mv.visitMaxs(0, 0); + mv.visitEnd(); + } + } + private static void checkOverride(ClassContext owner, GenerationState state, ClassVisitor v, Method jvmSignature, FunctionDescriptor functionDescriptor, FunctionDescriptor overriddenFunction) { Type type1 = state.getTypeMapper().mapType(overriddenFunction.getOriginal().getReturnType()); Type type2 = state.getTypeMapper().mapType(functionDescriptor.getReturnType()); if(!type1.equals(type2)) { Method overriden = state.getTypeMapper().mapSignature(overriddenFunction.getName(), overriddenFunction.getOriginal()); - int flags = Opcodes.ACC_PUBLIC; // TODO. + int flags = ACC_PUBLIC; // TODO. final MethodVisitor mv = v.visitMethod(flags, jvmSignature.getName(), overriden.getDescriptor(), null, null); mv.visitCode(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionOrClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionOrClosureCodegen.java index a6a57ece6b5..a9834ed153d 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionOrClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionOrClosureCodegen.java @@ -13,6 +13,8 @@ import java.util.Map; * @author alex.tkachman */ public class FunctionOrClosureCodegen { + protected boolean captureThis; + public final GenerationState state; protected final ExpressionCodegen exprContext; protected final ClassContext context; @@ -54,4 +56,12 @@ public class FunctionOrClosureCodegen { return null; } + + public boolean isCaptureThis() { + return captureThis; + } + + public boolean isConst () { + return !captureThis && closure.isEmpty(); + } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java index 73021e8890f..c5a870da312 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java @@ -55,6 +55,7 @@ public class ResolvedCall { private D resultingDescriptor; // Probably substituted private ReceiverDescriptor thisObject = NO_RECEIVER; // receiver object of a method private ReceiverDescriptor receiverArgument = NO_RECEIVER; // receiver of an extension function + private final Map typeArguments = Maps.newLinkedHashMap(); private final Map autoCasts = Maps.newHashMap(); private final Map valueArguments = Maps.newHashMap(); @@ -144,4 +145,8 @@ public class ResolvedCall { public boolean isDirty() { return someArgumentHasNoType; } + + public Map getTypeArguments() { + return typeArguments; + } } diff --git a/idea/testData/codegen/functions/defaultargs.jet b/idea/testData/codegen/functions/defaultargs.jet new file mode 100644 index 00000000000..9486bf5b856 --- /dev/null +++ b/idea/testData/codegen/functions/defaultargs.jet @@ -0,0 +1,49 @@ +fun reformat( + str : String, + normalizeCase : Boolean = true, + uppercaseFirstLetter : Boolean = true, + divideByCamelHumps : Boolean = true, + wordSeparator : String = " " +) = + (normalizeCase, uppercaseFirstLetter, divideByCamelHumps, wordSeparator) + +trait A { + fun bar2(arg: Int = 239) : Int + + fun bar(arg: Int = 240) : Int = bar2(arg/2) +} + +open abstract class B() : A { + fun foo(arg: Int = 239 + 1) : Int = arg + + abstract fun foo2(arg: Int = 239) : Int + + override fun bar2(arg: Int) : Int = arg +} + +class C() : B() { + override fun foo2(arg: Int) : Int = arg +} + +// fun T.toPrefixedString(prefix: String = "") = prefix + (this as java.lang.Object).toString() + +fun box() : String { + val expected = (true, true, true, " ") + +// if("mama".toPrefixedString("papa") != "papamama") return "fail" +// if("mama".toPrefixedString() != "mama") return "fail" + if(C().bar(10) != 5) return "fail" + if(C().bar() != 120) return "fail" + if(C().foo(10) != 10) return "fail" + if(C().foo() != 240) return "fail" + if(C().foo2() != 239) return "fail" + if(C().foo2(10) != 10) return "fail" + if(C().bar2() != 239) return "fail" + if(C().bar2(10) != 10) return "fail" + if(reformat("", true, true, true, " ") != expected) return "fail" + if(reformat("", true, true, true) != expected) return "fail" + if(reformat("", true, true) != expected) return "fail" + if(reformat("", true) != expected) return "fail" + if(reformat("") != expected) return "fail" + return "OK" +} diff --git a/idea/testData/codegen/functions/namedargs.jet b/idea/testData/codegen/functions/namedargs.jet new file mode 100644 index 00000000000..e237c28f4d8 --- /dev/null +++ b/idea/testData/codegen/functions/namedargs.jet @@ -0,0 +1,19 @@ +fun reformat( + str : String, + normalizeCase : Boolean = true, + uppercaseFirstLetter : Boolean = true, + divideByCamelHumps : Boolean = false, + wordSeparator : String = " " +) = + (normalizeCase, uppercaseFirstLetter, divideByCamelHumps, wordSeparator) + +fun box() : String { + val expected = (true, true, false, " ") + if(reformat("", true, true, false, " ") != expected) return "fail" +// if(reformat(str="", wordSeparator=" ") != expected) return "fail" +// if(reformat("", true, true, false) != expected) return "fail" +// if(reformat("", true, true) != expected) return "fail" +// if(reformat("", true) != expected) return "fail" +// if(reformat("") != expected) return "fail" + return "OK" +} \ No newline at end of file diff --git a/idea/testData/codegen/functions/nothisnoclosure.jet b/idea/testData/codegen/functions/nothisnoclosure.jet new file mode 100644 index 00000000000..cb161d00ce0 --- /dev/null +++ b/idea/testData/codegen/functions/nothisnoclosure.jet @@ -0,0 +1,13 @@ +fun loop(times : Int) { + while(times > 0) { + val u : fun(value : Int) : Unit = { + System.out?.println(it) + } + u(times--) + } +} + +fun box() : String { + loop(5) + return "OK" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java b/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java new file mode 100644 index 00000000000..5f79fc05480 --- /dev/null +++ b/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java @@ -0,0 +1,19 @@ +package org.jetbrains.jet.codegen; + +/** + * @author alex.tkachman + */ +public class FunctionGenTest extends CodegenTestCase { + public void testDefaultArgs() throws Exception { + blackBoxFile("functions/defaultargs.jet"); + } + + public void testNamedArgs() throws Exception { + blackBoxFile("functions/defaultargs.jet"); + } + + public void testNoThisNoClosure() throws Exception { + blackBoxFile("functions/nothisnoclosure.jet"); + System.out.println(generateToText()); + } +} From 3031db559d588e34f313d4e276b0575c37bcc793 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 11:21:15 +0400 Subject: [PATCH 05/22] KT-366 Frontend does not calculates type parameters in ResolvedCall --- .../jetbrains/jet/lang/resolve/calls/CallResolver.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index 2832cfb9b4f..423c44cbfac 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -420,6 +420,9 @@ public class CallResolver { assert substitute != null; replaceValueParametersWithSubstitutedOnes(candidateCall, substitute); candidateCall.setResultingDescriptor(substitute); + for (TypeParameterDescriptor typeParameterDescriptor : candidateCall.getCandidateDescriptor().getTypeParameters()) { + candidateCall.recordTypeArgument(typeParameterDescriptor, solution.getValue(typeParameterDescriptor)); + } candidateCall.setStatus(SUCCESS); } else { @@ -459,6 +462,12 @@ public class CallResolver { candidateCall.setResultingDescriptor(substitutedDescriptor); replaceValueParametersWithSubstitutedOnes(candidateCall, substitutedDescriptor); + + List typeParameters = candidateCall.getCandidateDescriptor().getTypeParameters(); + for (int i = 0; i < typeParameters.size(); i++) { + TypeParameterDescriptor typeParameterDescriptor = typeParameters.get(i); + candidateCall.recordTypeArgument(typeParameterDescriptor, typeArguments.get(i)); + } candidateCall.setStatus(checkAllValueArguments(scope, tracing, task, candidateCall)); } else { From c51e3742589994342fca61e6f527e3eb8cab0df1 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 11:52:16 +0400 Subject: [PATCH 06/22] Read-only interface extracted from ResolvedCall --- .../jet/codegen/ExpressionCodegen.java | 4 +- .../AmbiguousDescriptorDiagnosticFactory.java | 8 +- .../jet/lang/resolve/BindingContext.java | 6 +- .../jet/lang/resolve/calls/CallResolver.java | 92 +++++++++---------- .../calls/OverloadResolutionResults.java | 18 ++-- .../calls/OverloadingConflictResolver.java | 16 ++-- .../lang/resolve/calls/ResolutionTask.java | 6 +- ...esolvedCall.java => ResolvedCallImpl.java} | 29 +++--- .../resolve/calls/ResolvedCallInterface.java | 35 +++++++ .../lang/resolve/calls/TaskPrioritizer.java | 38 ++++---- .../lang/resolve/calls/TracingStrategy.java | 16 ++-- .../ValueArgumentsToParametersMapper.java | 4 +- .../annotations/DebugInfoAnnotator.java | 4 +- .../plugin/references/JetPsiReference.java | 8 +- .../jetbrains/jet/resolve/JetResolveTest.java | 4 +- 15 files changed, 165 insertions(+), 123 deletions(-) rename compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/{ResolvedCall.java => ResolvedCallImpl.java} (77%) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 17e9aa6a456..defea4e3aab 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1129,7 +1129,7 @@ public class ExpressionCodegen extends JetVisitor { } private int pushMethodArguments(JetCallElement expression, List valueParameterTypes) { - ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); + ResolvedCallImpl resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); List args = expression.getValueArguments(); if(resolvedCall != null) { Map valueArguments = resolvedCall.getValueArguments(); @@ -1791,7 +1791,7 @@ public class ExpressionCodegen extends JetVisitor { private void pushTypeArguments(JetCallElement expression) { // todo when frontend calculates -// ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); +// ResolvedCallImpl resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); // if(resolvedCall != null) { // Map typeArguments = resolvedCall.getTypeArguments(); // CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/AmbiguousDescriptorDiagnosticFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/AmbiguousDescriptorDiagnosticFactory.java index b9d4050f915..23126722df9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/AmbiguousDescriptorDiagnosticFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/AmbiguousDescriptorDiagnosticFactory.java @@ -2,7 +2,7 @@ package org.jetbrains.jet.lang.diagnostics; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.Collection; @@ -10,7 +10,7 @@ import java.util.Collection; /** * @author abreslav */ -public class AmbiguousDescriptorDiagnosticFactory extends ParameterizedDiagnosticFactory1>> { +public class AmbiguousDescriptorDiagnosticFactory extends ParameterizedDiagnosticFactory1>> { public static AmbiguousDescriptorDiagnosticFactory create(String messageTemplate) { return new AmbiguousDescriptorDiagnosticFactory(messageTemplate); } @@ -20,9 +20,9 @@ public class AmbiguousDescriptorDiagnosticFactory extends ParameterizedDiagnosti } @Override - protected String makeMessageFor(@NotNull Collection> argument) { + protected String makeMessageFor(@NotNull Collection> argument) { StringBuilder stringBuilder = new StringBuilder("\n"); - for (ResolvedCall call : argument) { + for (ResolvedCallImpl call : argument) { stringBuilder.append(DescriptorRenderer.TEXT.render(call.getResultingDescriptor())).append("\n"); } return stringBuilder.toString(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java index e5d49d0c837..8c7fcf345a1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java @@ -6,7 +6,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.DeferredType; @@ -27,9 +27,9 @@ public interface BindingContext { WritableSlice EXPRESSION_TYPE = new BasicWritableSlice("EXPRESSION_TYPE", RewritePolicy.DO_NOTHING); WritableSlice REFERENCE_TARGET = new BasicWritableSlice("REFERENCE_TARGET", RewritePolicy.DO_NOTHING); - WritableSlice> RESOLVED_CALL = new BasicWritableSlice>("RESOLVED_CALL", RewritePolicy.DO_NOTHING); + WritableSlice> RESOLVED_CALL = new BasicWritableSlice>("RESOLVED_CALL", RewritePolicy.DO_NOTHING); - WritableSlice>> AMBIGUOUS_REFERENCE_TARGET = new BasicWritableSlice>>("AMBIGUOUS_REFERENCE_TARGET", RewritePolicy.DO_NOTHING); + WritableSlice>> AMBIGUOUS_REFERENCE_TARGET = new BasicWritableSlice>>("AMBIGUOUS_REFERENCE_TARGET", RewritePolicy.DO_NOTHING); WritableSlice LOOP_RANGE_ITERATOR = Slices.createSimpleSlice("LOOP_RANGE_ITERATOR"); WritableSlice LOOP_RANGE_HAS_NEXT = Slices.createSimpleSlice("LOOP_RANGE_HAS_NEXT"); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index 423c44cbfac..3840d59e444 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -27,8 +27,8 @@ import java.util.*; import static org.jetbrains.jet.lang.diagnostics.Errors.*; import static org.jetbrains.jet.lang.resolve.BindingContext.*; import static org.jetbrains.jet.lang.resolve.calls.ResolutionStatus.*; -import static org.jetbrains.jet.lang.resolve.calls.ResolvedCall.MAP_TO_CANDIDATE; -import static org.jetbrains.jet.lang.resolve.calls.ResolvedCall.MAP_TO_RESULT; +import static org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl.MAP_TO_CANDIDATE; +import static org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl.MAP_TO_RESULT; import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor.NO_RECEIVER; import static org.jetbrains.jet.lang.types.TypeUtils.NO_EXPECTED_TYPE; @@ -171,7 +171,7 @@ public class CallResolver { trace.report(NO_CONSTRUCTOR.on(reportAbsenceOn)); return checkArgumentTypesAndFail(trace, scope, call); } - prioritizedTasks = Collections.singletonList(new ResolutionTask(ResolvedCall.convertCollection(constructors), call, DataFlowInfo.EMPTY)); + prioritizedTasks = Collections.singletonList(new ResolutionTask(ResolvedCallImpl.convertCollection(constructors), call, DataFlowInfo.EMPTY)); } else { throw new UnsupportedOperationException("Type argument inference not implemented for " + call); @@ -194,12 +194,12 @@ public class CallResolver { @NotNull JetType expectedType, @NotNull final List> prioritizedTasks, // high to low priority @NotNull final JetReferenceExpression reference) { - ResolvedCall resolvedCall = doResolveCall(trace, scope, call, expectedType, prioritizedTasks, reference); + ResolvedCallImpl resolvedCall = doResolveCall(trace, scope, call, expectedType, prioritizedTasks, reference); return resolvedCall == null ? null : resolvedCall.getResultingDescriptor(); } @Nullable - private ResolvedCall doResolveCall( + private ResolvedCallImpl doResolveCall( @NotNull BindingTrace trace, @NotNull JetScope scope, @NotNull final Call call, @@ -210,7 +210,7 @@ public class CallResolver { OverloadResolutionResults resultsForFirstNonemptyCandidateSet = null; TracingStrategy tracing = new TracingStrategy() { @Override - public void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCall resolvedCall) { + public void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCallImpl resolvedCall) { D descriptor = resolvedCall.getCandidateDescriptor(); // if (descriptor instanceof VariableAsFunctionDescriptor) { // VariableAsFunctionDescriptor variableAsFunctionDescriptor = (VariableAsFunctionDescriptor) descriptor; @@ -223,7 +223,7 @@ public class CallResolver { } @Override - public void recordAmbiguity(BindingTrace trace, Collection> candidates) { + public void recordAmbiguity(BindingTrace trace, Collection> candidates) { trace.record(AMBIGUOUS_REFERENCE_TARGET, reference, candidates); } @@ -272,12 +272,12 @@ public class CallResolver { } @Override - public void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors) { + public void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors) { trace.report(OVERLOAD_RESOLUTION_AMBIGUITY.on(call.getCallNode(), descriptors)); } @Override - public void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors) { + public void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors) { trace.report(NONE_APPLICABLE.on(reference, descriptors)); } @@ -352,7 +352,7 @@ public class CallResolver { @NotNull private OverloadResolutionResults performResolution(@NotNull BindingTrace trace, @NotNull JetScope scope, @NotNull JetType expectedType, @NotNull ResolutionTask task, @NotNull TracingStrategy tracing) { - for (ResolvedCall candidateCall : task.getCandidates()) { + for (ResolvedCallImpl candidateCall : task.getCandidates()) { D candidate = candidateCall.getCandidateDescriptor(); TemporaryBindingTrace temporaryTrace = TemporaryBindingTrace.create(trace); candidateCall.setTrace(temporaryTrace); @@ -483,9 +483,9 @@ public class CallResolver { recordAutoCastIfNecessary(candidateCall.getThisObject(), candidateCall.getTrace()); } - Set> successfulCandidates = Sets.newLinkedHashSet(); - Set> failedCandidates = Sets.newLinkedHashSet(); - for (ResolvedCall candidateCall : task.getCandidates()) { + Set> successfulCandidates = Sets.newLinkedHashSet(); + Set> failedCandidates = Sets.newLinkedHashSet(); + for (ResolvedCallImpl candidateCall : task.getCandidates()) { ResolutionStatus status = candidateCall.getStatus(); if (status.isSuccess()) { successfulCandidates.add(candidateCall); @@ -555,7 +555,7 @@ public class CallResolver { // }; // } - private void replaceValueParametersWithSubstitutedOnes(ResolvedCall candidateCall, @NotNull D substitutedDescriptor) { + private void replaceValueParametersWithSubstitutedOnes(ResolvedCallImpl candidateCall, @NotNull D substitutedDescriptor) { Map parameterMap = Maps.newHashMap(); for (ValueParameterDescriptor valueParameterDescriptor : substitutedDescriptor.getValueParameters()) { parameterMap.put(valueParameterDescriptor.getOriginal(), valueParameterDescriptor); @@ -571,14 +571,14 @@ public class CallResolver { } } - private ResolutionStatus checkAllValueArguments(JetScope scope, TracingStrategy tracing, ResolutionTask task, ResolvedCall candidateCall) { + private ResolutionStatus checkAllValueArguments(JetScope scope, TracingStrategy tracing, ResolutionTask task, ResolvedCallImpl candidateCall) { ResolutionStatus result = checkValueArgumentTypes(scope, candidateCall); result = result.combine(checkReceiver(tracing, candidateCall, candidateCall.getResultingDescriptor().getReceiverParameter(), candidateCall.getReceiverArgument(), task)); result = result.combine(checkReceiver(tracing, candidateCall, candidateCall.getResultingDescriptor().getExpectedThisObject(), candidateCall.getThisObject(), task)); return result; } - private ResolutionStatus checkReceiver(TracingStrategy tracing, ResolvedCall candidateCall, ReceiverDescriptor receiverParameter, ReceiverDescriptor receiverArgument, ResolutionTask task) { + private ResolutionStatus checkReceiver(TracingStrategy tracing, ResolvedCallImpl candidateCall, ReceiverDescriptor receiverParameter, ReceiverDescriptor receiverArgument, ResolutionTask task) { ResolutionStatus result = SUCCESS; if (receiverParameter.exists() && receiverArgument.exists()) { ASTNode callOperationNode = task.getCall().getCallOperationNode(); @@ -606,7 +606,7 @@ public class CallResolver { return result; } - private ResolutionStatus checkValueArgumentTypes(JetScope scope, ResolvedCall candidateCall) { + private ResolutionStatus checkValueArgumentTypes(JetScope scope, ResolvedCallImpl candidateCall) { ResolutionStatus result = SUCCESS; for (Map.Entry entry : candidateCall.getValueArguments().entrySet()) { ValueParameterDescriptor parameterDescriptor = entry.getKey(); @@ -653,16 +653,16 @@ public class CallResolver { private OverloadResolutionResults computeResultAndReportErrors( BindingTrace trace, TracingStrategy tracing, - Set> successfulCandidates, - Set> failedCandidates) { + Set> successfulCandidates, + Set> failedCandidates) { // TODO : maybe it's better to filter overrides out first, and only then look for the maximally specific if (successfulCandidates.size() > 0) { return chooseAndReportMaximallySpecific(trace, tracing, successfulCandidates); } else if (!failedCandidates.isEmpty()) { if (failedCandidates.size() != 1) { - Set> weakErrors = Sets.newLinkedHashSet(); - for (ResolvedCall candidate : failedCandidates) { + Set> weakErrors = Sets.newLinkedHashSet(); + for (ResolvedCallImpl candidate : failedCandidates) { if (candidate.getStatus().isWeakError()) { weakErrors.add(candidate); } @@ -676,7 +676,7 @@ public class CallResolver { return OverloadResolutionResults.manyFailedCandidates(results.getResults()); } - Set> noOverrides = OverridingUtil.filterOverrides(failedCandidates, MAP_TO_CANDIDATE); + Set> noOverrides = OverridingUtil.filterOverrides(failedCandidates, MAP_TO_CANDIDATE); if (noOverrides.size() != 1) { // tracing.reportOverallResolutionError(trace, "None of the following functions can be called with the arguments supplied: " // + makeErrorMessageForMultipleDescriptors(noOverrides)); @@ -686,7 +686,7 @@ public class CallResolver { } failedCandidates = noOverrides; } - ResolvedCall failed = failedCandidates.iterator().next(); + ResolvedCallImpl failed = failedCandidates.iterator().next(); failed.getTrace().commit(); return OverloadResolutionResults.singleFailedCandidate(failed); } @@ -696,12 +696,12 @@ public class CallResolver { } } - private OverloadResolutionResults chooseAndReportMaximallySpecific(BindingTrace trace, TracingStrategy tracing, Set> candidates) { + private OverloadResolutionResults chooseAndReportMaximallySpecific(BindingTrace trace, TracingStrategy tracing, Set> candidates) { if (candidates.size() != 1) { - Set> cleanCandidates = Sets.newLinkedHashSet(candidates); + Set> cleanCandidates = Sets.newLinkedHashSet(candidates); boolean allClean = true; - for (Iterator> iterator = cleanCandidates.iterator(); iterator.hasNext(); ) { - ResolvedCall candidate = iterator.next(); + for (Iterator> iterator = cleanCandidates.iterator(); iterator.hasNext(); ) { + ResolvedCallImpl candidate = iterator.next(); if (candidate.isDirty()) { iterator.remove(); allClean = false; @@ -711,17 +711,17 @@ public class CallResolver { if (cleanCandidates.isEmpty()) { cleanCandidates = candidates; } - ResolvedCall maximallySpecific = overloadingConflictResolver.findMaximallySpecific(cleanCandidates, false); + ResolvedCallImpl maximallySpecific = overloadingConflictResolver.findMaximallySpecific(cleanCandidates, false); if (maximallySpecific != null) { return OverloadResolutionResults.success(maximallySpecific); } - ResolvedCall maximallySpecificGenericsDiscriminated = overloadingConflictResolver.findMaximallySpecific(cleanCandidates, true); + ResolvedCallImpl maximallySpecificGenericsDiscriminated = overloadingConflictResolver.findMaximallySpecific(cleanCandidates, true); if (maximallySpecificGenericsDiscriminated != null) { return OverloadResolutionResults.success(maximallySpecificGenericsDiscriminated); } - Set> noOverrides = OverridingUtil.filterOverrides(candidates, MAP_TO_RESULT); + Set> noOverrides = OverridingUtil.filterOverrides(candidates, MAP_TO_RESULT); if (allClean) { // tracing.reportOverallResolutionError(trace, "Overload resolution ambiguity: " // + makeErrorMessageForMultipleDescriptors(noOverrides)); @@ -733,7 +733,7 @@ public class CallResolver { return OverloadResolutionResults.ambiguity(noOverrides); } else { - ResolvedCall result = candidates.iterator().next(); + ResolvedCallImpl result = candidates.iterator().next(); TemporaryBindingTrace temporaryTrace = result.getTrace(); temporaryTrace.commit(); @@ -762,24 +762,24 @@ public class CallResolver { @NotNull public OverloadResolutionResults resolveExactSignature(@NotNull JetScope scope, @NotNull ReceiverDescriptor receiver, @NotNull String name, @NotNull List parameterTypes) { - List> result = findCandidatesByExactSignature(scope, receiver, name, parameterTypes); + List> result = findCandidatesByExactSignature(scope, receiver, name, parameterTypes); BindingTraceContext trace = new BindingTraceContext(); TemporaryBindingTrace temporaryBindingTrace = TemporaryBindingTrace.create(trace); - Set> candidates = Sets.newLinkedHashSet(); - for (ResolvedCall call : result) { + Set> candidates = Sets.newLinkedHashSet(); + for (ResolvedCallImpl call : result) { call.setTrace(temporaryBindingTrace); candidates.add(call); } - return computeResultAndReportErrors(trace, TracingStrategy.EMPTY, candidates, Collections.>emptySet()); + return computeResultAndReportErrors(trace, TracingStrategy.EMPTY, candidates, Collections.>emptySet()); } - private List> findCandidatesByExactSignature(JetScope scope, ReceiverDescriptor receiver, String name, List parameterTypes) { - List> result = Lists.newArrayList(); + private List> findCandidatesByExactSignature(JetScope scope, ReceiverDescriptor receiver, String name, List parameterTypes) { + List> result = Lists.newArrayList(); if (receiver.exists()) { - Collection> extensionFunctionDescriptors = ResolvedCall.convertCollection(scope.getFunctions(name)); - List> nonlocal = Lists.newArrayList(); - List> local = Lists.newArrayList(); + Collection> extensionFunctionDescriptors = ResolvedCallImpl.convertCollection(scope.getFunctions(name)); + List> nonlocal = Lists.newArrayList(); + List> local = Lists.newArrayList(); TaskPrioritizer.splitLexicallyLocalDescriptors(extensionFunctionDescriptors, scope.getContainingDeclaration(), local, nonlocal); @@ -787,7 +787,7 @@ public class CallResolver { return result; } - Collection> functionDescriptors = ResolvedCall.convertCollection(receiver.getType().getMemberScope().getFunctions(name)); + Collection> functionDescriptors = ResolvedCallImpl.convertCollection(receiver.getType().getMemberScope().getFunctions(name)); if (lookupExactSignature(functionDescriptors, parameterTypes, result)) { return result; @@ -796,14 +796,14 @@ public class CallResolver { return result; } else { - lookupExactSignature(ResolvedCall.convertCollection(scope.getFunctions(name)), parameterTypes, result); + lookupExactSignature(ResolvedCallImpl.convertCollection(scope.getFunctions(name)), parameterTypes, result); return result; } } - private boolean lookupExactSignature(Collection> candidates, List parameterTypes, List> result) { + private boolean lookupExactSignature(Collection> candidates, List parameterTypes, List> result) { boolean found = false; - for (ResolvedCall resolvedCall : candidates) { + for (ResolvedCallImpl resolvedCall : candidates) { FunctionDescriptor functionDescriptor = resolvedCall.getResultingDescriptor(); if (functionDescriptor.getReceiverParameter().exists()) continue; if (!functionDescriptor.getTypeParameters().isEmpty()) continue; @@ -814,9 +814,9 @@ public class CallResolver { return found; } - private boolean findExtensionFunctions(Collection> candidates, ReceiverDescriptor receiver, List parameterTypes, List> result) { + private boolean findExtensionFunctions(Collection> candidates, ReceiverDescriptor receiver, List parameterTypes, List> result) { boolean found = false; - for (ResolvedCall resolvedCall : candidates) { + for (ResolvedCallImpl resolvedCall : candidates) { FunctionDescriptor functionDescriptor = resolvedCall.getResultingDescriptor(); ReceiverDescriptor functionReceiver = functionDescriptor.getReceiverParameter(); if (!functionReceiver.exists()) continue; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java index e93b7a0a2db..dfe84f5f26c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadResolutionResults.java @@ -29,40 +29,40 @@ public class OverloadResolutionResults { } - public static OverloadResolutionResults success(@NotNull ResolvedCall descriptor) { + public static OverloadResolutionResults success(@NotNull ResolvedCallImpl descriptor) { return new OverloadResolutionResults(Code.SUCCESS, Collections.singleton(descriptor)); } public static OverloadResolutionResults nameNotFound() { - return new OverloadResolutionResults(Code.NAME_NOT_FOUND, Collections.>emptyList()); + return new OverloadResolutionResults(Code.NAME_NOT_FOUND, Collections.>emptyList()); } - public static OverloadResolutionResults singleFailedCandidate(ResolvedCall candidate) { + public static OverloadResolutionResults singleFailedCandidate(ResolvedCallImpl candidate) { return new OverloadResolutionResults(Code.SINGLE_CANDIDATE_ARGUMENT_MISMATCH, Collections.singleton(candidate)); } - public static OverloadResolutionResults manyFailedCandidates(Collection> failedCandidates) { + public static OverloadResolutionResults manyFailedCandidates(Collection> failedCandidates) { return new OverloadResolutionResults(Code.MANY_FAILED_CANDIDATES, failedCandidates); } - public static OverloadResolutionResults ambiguity(Collection> descriptors) { + public static OverloadResolutionResults ambiguity(Collection> descriptors) { return new OverloadResolutionResults(Code.AMBIGUITY, descriptors); } - private final Collection> results; + private final Collection> results; private final Code resultCode; - private OverloadResolutionResults(@NotNull Code resultCode, @NotNull Collection> results) { + private OverloadResolutionResults(@NotNull Code resultCode, @NotNull Collection> results) { this.results = results; this.resultCode = resultCode; } @NotNull - public Collection> getResults() { + public Collection> getResults() { return results; } @NotNull - public ResolvedCall getResult() { + public ResolvedCallImpl getResult() { assert singleDescriptor(); return results.iterator().next(); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadingConflictResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadingConflictResolver.java index dc12c9ab9bc..4758dfd54af 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadingConflictResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/OverloadingConflictResolver.java @@ -28,23 +28,23 @@ public class OverloadingConflictResolver { } @Nullable - public ResolvedCall findMaximallySpecific(Set> candidates, boolean discriminateGenericDescriptors) { - // Different autocasts may lead to the same candidate descriptor wrapped into different ResolvedCall objects - Set> maximallySpecific = new THashSet>(new TObjectHashingStrategy>() { + public ResolvedCallImpl findMaximallySpecific(Set> candidates, boolean discriminateGenericDescriptors) { + // Different autocasts may lead to the same candidate descriptor wrapped into different ResolvedCallImpl objects + Set> maximallySpecific = new THashSet>(new TObjectHashingStrategy>() { @Override - public boolean equals(ResolvedCall o1, ResolvedCall o2) { + public boolean equals(ResolvedCallImpl o1, ResolvedCallImpl o2) { return o1 == null ? o2 == null : o1.getResultingDescriptor().equals(o2.getResultingDescriptor()); } @Override - public int computeHashCode(ResolvedCall object) { + public int computeHashCode(ResolvedCallImpl object) { return object == null ? 0 : object.getResultingDescriptor().hashCode(); } }); meLoop: - for (ResolvedCall candidateCall : candidates) { + for (ResolvedCallImpl candidateCall : candidates) { D me = candidateCall.getResultingDescriptor(); - for (ResolvedCall otherCall : candidates) { + for (ResolvedCallImpl otherCall : candidates) { D other = otherCall.getResultingDescriptor(); if (other == me) continue; if (!moreSpecific(me, other, discriminateGenericDescriptors) || moreSpecific(other, me, discriminateGenericDescriptors)) { @@ -54,7 +54,7 @@ public class OverloadingConflictResolver { maximallySpecific.add(candidateCall); } if (maximallySpecific.size() == 1) { - ResolvedCall result = maximallySpecific.iterator().next(); + ResolvedCallImpl result = maximallySpecific.iterator().next(); result.getTrace().commit(); return result; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java index 1fbce7ba838..ecde91cc4ed 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolutionTask.java @@ -13,13 +13,13 @@ import java.util.Collection; */ /*package*/ class ResolutionTask { private final Call call; - private final Collection> candidates; + private final Collection> candidates; private final DataFlowInfo dataFlowInfo; private DescriptorCheckStrategy checkingStrategy; public ResolutionTask( - @NotNull Collection> candidates, + @NotNull Collection> candidates, @NotNull Call call, @NotNull DataFlowInfo dataFlowInfo ) { @@ -34,7 +34,7 @@ import java.util.Collection; } @NotNull - public Collection> getCandidates() { + public Collection> getCandidates() { return candidates; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java similarity index 77% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java rename to compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java index c5a870da312..d1eb79faa4a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java @@ -21,30 +21,30 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor /** * @author abreslav */ -public class ResolvedCall { +public class ResolvedCallImpl implements ResolvedCallInterface { - public static final Function, CallableDescriptor> MAP_TO_CANDIDATE = new Function, CallableDescriptor>() { + public static final Function, CallableDescriptor> MAP_TO_CANDIDATE = new Function, CallableDescriptor>() { @Override - public CallableDescriptor fun(ResolvedCall resolvedCall) { + public CallableDescriptor fun(ResolvedCallImpl resolvedCall) { return resolvedCall.getCandidateDescriptor(); } }; - public static final Function, CallableDescriptor> MAP_TO_RESULT = new Function, CallableDescriptor>() { + public static final Function, CallableDescriptor> MAP_TO_RESULT = new Function, CallableDescriptor>() { @Override - public CallableDescriptor fun(ResolvedCall resolvedCall) { + public CallableDescriptor fun(ResolvedCallImpl resolvedCall) { return resolvedCall.getResultingDescriptor(); } }; @NotNull - public static ResolvedCall create(@NotNull D descriptor) { - return new ResolvedCall(descriptor); + public static ResolvedCallImpl create(@NotNull D descriptor) { + return new ResolvedCallImpl(descriptor); } @NotNull - public static List> convertCollection(@NotNull Collection descriptors) { - List> result = Lists.newArrayList(); + public static List> convertCollection(@NotNull Collection descriptors) { + List> result = Lists.newArrayList(); for (D descriptor : descriptors) { result.add(create(descriptor)); } @@ -63,10 +63,11 @@ public class ResolvedCall { private TemporaryBindingTrace trace; private ResolutionStatus status = UNKNOWN_STATUS; - private ResolvedCall(@NotNull D candidateDescriptor) { + private ResolvedCallImpl(@NotNull D candidateDescriptor) { this.candidateDescriptor = candidateDescriptor; } + @Override @NotNull public ResolutionStatus getStatus() { return status; @@ -85,17 +86,19 @@ public class ResolvedCall { this.trace = trace; } + @Override @NotNull public D getCandidateDescriptor() { return candidateDescriptor; } + @Override @NotNull public D getResultingDescriptor() { return resultingDescriptor == null ? candidateDescriptor : resultingDescriptor; } - public ResolvedCall setResultingDescriptor(@NotNull D resultingDescriptor) { + public ResolvedCallImpl setResultingDescriptor(@NotNull D resultingDescriptor) { this.resultingDescriptor = resultingDescriptor; return this; } @@ -115,6 +118,7 @@ public class ResolvedCall { autoCasts.put(parameter, target); } + @Override @NotNull public ReceiverDescriptor getReceiverArgument() { return receiverArgument; @@ -124,6 +128,7 @@ public class ResolvedCall { this.receiverArgument = receiverParameter; } + @Override @NotNull public ReceiverDescriptor getThisObject() { return thisObject; @@ -133,6 +138,7 @@ public class ResolvedCall { this.thisObject = thisObject; } + @Override @NotNull public Map getValueArguments() { return valueArguments; @@ -146,6 +152,7 @@ public class ResolvedCall { return someArgumentHasNoType; } + @Override public Map getTypeArguments() { return typeArguments; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java new file mode 100644 index 00000000000..4e250bab4b4 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java @@ -0,0 +1,35 @@ +package org.jetbrains.jet.lang.resolve.calls; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.lang.descriptors.CallableDescriptor; +import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor; +import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; +import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; +import org.jetbrains.jet.lang.types.JetType; + +import java.util.Map; + +/** + * @author abreslav + */ +public interface ResolvedCallInterface { + @NotNull + ResolutionStatus getStatus(); + + @NotNull + D getCandidateDescriptor(); + + @NotNull + D getResultingDescriptor(); + + @NotNull + ReceiverDescriptor getReceiverArgument(); + + @NotNull + ReceiverDescriptor getThisObject(); + + @NotNull + Map getValueArguments(); + + Map getTypeArguments(); +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java index ad1b4c55512..5bfc0947a8e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java @@ -29,9 +29,9 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor /*package*/ abstract class TaskPrioritizer { public static void splitLexicallyLocalDescriptors( - Collection> allDescriptors, DeclarationDescriptor containerOfTheCurrentLocality, Collection> local, Collection> nonlocal) { + Collection> allDescriptors, DeclarationDescriptor containerOfTheCurrentLocality, Collection> local, Collection> nonlocal) { - for (ResolvedCall resolvedCall : allDescriptors) { + for (ResolvedCallImpl resolvedCall : allDescriptors) { if (isLocal(containerOfTheCurrentLocality, resolvedCall.getCandidateDescriptor())) { local.add(resolvedCall); } @@ -96,13 +96,13 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor if (receiver.exists()) { List variantsForExplicitReceiver = autoCastService.getVariantsForReceiver(receiver); - Collection> extensionFunctions = convertWithImpliedThis(scope, variantsForExplicitReceiver, getExtensionsByName(scope, name)); - List> nonlocals = Lists.newArrayList(); - List> locals = Lists.newArrayList(); + Collection> extensionFunctions = convertWithImpliedThis(scope, variantsForExplicitReceiver, getExtensionsByName(scope, name)); + List> nonlocals = Lists.newArrayList(); + List> locals = Lists.newArrayList(); //noinspection unchecked,RedundantTypeArguments TaskPrioritizer.splitLexicallyLocalDescriptors(extensionFunctions, scope.getContainingDeclaration(), locals, nonlocals); - Collection> members = Lists.newArrayList(); + Collection> members = Lists.newArrayList(); for (ReceiverDescriptor variant : variantsForExplicitReceiver) { Collection membersForThisVariant = getMembersByName(variant.getType(), name); convertWithReceivers(membersForThisVariant, Collections.singletonList(variant), Collections.singletonList(NO_RECEIVER), members); @@ -120,10 +120,10 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor addTask(result, call, nonlocals, dataFlowInfo); } else { - Collection> functions = convertWithImpliedThis(scope, Collections.singletonList(receiver), getNonExtensionsByName(scope, name)); + Collection> functions = convertWithImpliedThis(scope, Collections.singletonList(receiver), getNonExtensionsByName(scope, name)); - List> nonlocals = Lists.newArrayList(); - List> locals = Lists.newArrayList(); + List> nonlocals = Lists.newArrayList(); + List> locals = Lists.newArrayList(); //noinspection unchecked,RedundantTypeArguments TaskPrioritizer.splitLexicallyLocalDescriptors(functions, scope.getContainingDeclaration(), locals, nonlocals); @@ -137,18 +137,18 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor } } - private Collection> convertWithReceivers(Collection descriptors, Iterable thisObjects, Iterable receiverParameters) { - Collection> result = Lists.newArrayList(); + private Collection> convertWithReceivers(Collection descriptors, Iterable thisObjects, Iterable receiverParameters) { + Collection> result = Lists.newArrayList(); convertWithReceivers(descriptors, thisObjects, receiverParameters, result); return result; } - private void convertWithReceivers(Collection descriptors, Iterable thisObjects, Iterable receiverParameters, Collection> result) { -// Collection> result = Lists.newArrayList(); + private void convertWithReceivers(Collection descriptors, Iterable thisObjects, Iterable receiverParameters, Collection> result) { +// Collection> result = Lists.newArrayList(); for (ReceiverDescriptor thisObject : thisObjects) { for (ReceiverDescriptor receiverParameter : receiverParameters) { for (D extension : descriptors) { - ResolvedCall resolvedCall = ResolvedCall.create(extension); + ResolvedCallImpl resolvedCall = ResolvedCallImpl.create(extension); resolvedCall.setThisObject(thisObject); resolvedCall.setReceiverArgument(receiverParameter); result.add(resolvedCall); @@ -158,11 +158,11 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor // return result; } - public static Collection> convertWithImpliedThis(JetScope scope, Iterable receiverParameters, Collection descriptors) { - Collection> result = Lists.newArrayList(); + public static Collection> convertWithImpliedThis(JetScope scope, Iterable receiverParameters, Collection descriptors) { + Collection> result = Lists.newArrayList(); for (ReceiverDescriptor receiverParameter : receiverParameters) { for (D extension : descriptors) { - ResolvedCall resolvedCall = ResolvedCall.create(extension); + ResolvedCallImpl resolvedCall = ResolvedCallImpl.create(extension); resolvedCall.setReceiverArgument(receiverParameter); if (setImpliedThis(scope, resolvedCall)) { result.add(resolvedCall); @@ -172,7 +172,7 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor return result; } - private static boolean setImpliedThis(@NotNull JetScope scope, ResolvedCall resolvedCall) { + private static boolean setImpliedThis(@NotNull JetScope scope, ResolvedCallImpl resolvedCall) { ReceiverDescriptor expectedThisObject = resolvedCall.getCandidateDescriptor().getExpectedThisObject(); if (!expectedThisObject.exists()) return true; List receivers = Lists.newArrayList(); @@ -187,7 +187,7 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor return false; } - private void addTask(@NotNull List> result, @NotNull Call call, @NotNull Collection> candidates, @NotNull DataFlowInfo dataFlowInfo) { + private void addTask(@NotNull List> result, @NotNull Call call, @NotNull Collection> candidates, @NotNull DataFlowInfo dataFlowInfo) { if (candidates.isEmpty()) return; result.add(new ResolutionTask(candidates, call, dataFlowInfo)); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TracingStrategy.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TracingStrategy.java index a7e7096b2de..6284ccb5b0d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TracingStrategy.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TracingStrategy.java @@ -16,13 +16,13 @@ import java.util.Set; /*package*/ interface TracingStrategy { TracingStrategy EMPTY = new TracingStrategy() { @Override - public void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCall resolvedCall) {} + public void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCallImpl resolvedCall) {} @Override public void unresolvedReference(@NotNull BindingTrace trace) {} @Override - public void recordAmbiguity(BindingTrace trace, Collection> candidates) {} + public void recordAmbiguity(BindingTrace trace, Collection> candidates) {} @Override public void missingReceiver(@NotNull BindingTrace trace, @NotNull ReceiverDescriptor expectedReceiver) {} @@ -40,10 +40,10 @@ import java.util.Set; public void wrongNumberOfTypeArguments(@NotNull BindingTrace trace, int expectedTypeArgumentCount) {} @Override - public void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors) {} + public void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors) {} @Override - public void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors) {} + public void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors) {} @Override public void instantiationOfAbstractClass(@NotNull BindingTrace trace) {} @@ -58,11 +58,11 @@ import java.util.Set; public void unnecessarySafeCall(@NotNull BindingTrace trace, @NotNull JetType type) {} }; - void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCall resolvedCall); + void bindReference(@NotNull BindingTrace trace, @NotNull ResolvedCallImpl resolvedCall); void unresolvedReference(@NotNull BindingTrace trace); - void recordAmbiguity(BindingTrace trace, Collection> candidates); + void recordAmbiguity(BindingTrace trace, Collection> candidates); void missingReceiver(@NotNull BindingTrace trace, @NotNull ReceiverDescriptor expectedReceiver); @@ -74,9 +74,9 @@ import java.util.Set; void wrongNumberOfTypeArguments(@NotNull BindingTrace trace, int expectedTypeArgumentCount); - void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors); + void ambiguity(@NotNull BindingTrace trace, @NotNull Set> descriptors); - void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors); + void noneApplicable(@NotNull BindingTrace trace, @NotNull Set> descriptors); void instantiationOfAbstractClass(@NotNull BindingTrace trace); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java index 8338f750b11..402b3f1aa62 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ValueArgumentsToParametersMapper.java @@ -23,7 +23,7 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; public static boolean mapValueArgumentsToParameters( @NotNull ResolutionTask task, @NotNull TracingStrategy tracing, - @NotNull ResolvedCall candidateCall + @NotNull ResolvedCallImpl candidateCall ) { TemporaryBindingTrace temporaryTrace = candidateCall.getTrace(); @@ -181,7 +181,7 @@ import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; return error; } - private static void put(ResolvedCall candidateCall, ValueParameterDescriptor valueParameterDescriptor, ValueArgument valueArgument, Map varargs) { + private static void put(ResolvedCallImpl candidateCall, ValueParameterDescriptor valueParameterDescriptor, ValueArgument valueArgument, Map varargs) { if (valueParameterDescriptor.isVararg()) { VarargValueArgument vararg = varargs.get(valueParameterDescriptor); if (vararg == null) { diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java index bade37c7e0b..d749f54e81b 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java @@ -15,7 +15,7 @@ import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnostic; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lexer.JetTokens; import org.jetbrains.jet.plugin.AnalyzerFacade; @@ -92,7 +92,7 @@ public class DebugInfoAnnotator implements Annotator { target = labelTarget.getText(); } else { - Collection> declarationDescriptors = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, expression); + Collection> declarationDescriptors = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, expression); if (declarationDescriptors != null) { target = "[" + declarationDescriptors.size() + " descriptors]"; } diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java index 9916a18468f..76cdd4a0a42 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java @@ -11,7 +11,7 @@ import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetReferenceExpression; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; -import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.Collection; @@ -81,7 +81,7 @@ public abstract class JetPsiReference implements PsiPolyVariantReference { if (psiElement != null) { return psiElement; } - Collection> declarationDescriptors = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, myExpression); + Collection> declarationDescriptors = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, myExpression); if (declarationDescriptors != null) return null; return file; } @@ -89,11 +89,11 @@ public abstract class JetPsiReference implements PsiPolyVariantReference { protected ResolveResult[] doMultiResolve() { JetFile file = (JetFile) getElement().getContainingFile(); BindingContext bindingContext = AnalyzerFacade.analyzeFileWithCache(file); - Collection> resolvedCalls = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, myExpression); + Collection> resolvedCalls = bindingContext.get(AMBIGUOUS_REFERENCE_TARGET, myExpression); if (resolvedCalls == null) return ResolveResult.EMPTY_ARRAY; ResolveResult[] results = new ResolveResult[resolvedCalls.size()]; int i = 0; - for (ResolvedCall resolvedCall : resolvedCalls) { + for (ResolvedCallImpl resolvedCall : resolvedCalls) { PsiElement element = bindingContext.get(DESCRIPTOR_TO_DECLARATION, resolvedCall.getResultingDescriptor()); if (element != null) { results[i] = new PsiElementResolveResult(element, true); diff --git a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java b/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java index f921ed4ba05..2d1afcd62c7 100644 --- a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java +++ b/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java @@ -17,9 +17,9 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.resolve.calls.CallResolver; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; -import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.parsing.JetParsingTest; @@ -114,7 +114,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { CallResolver callResolver = new CallResolver(JetSemanticServices.createSemanticServices(getProject()), DataFlowInfo.EMPTY); OverloadResolutionResults functions = callResolver.resolveExactSignature( classDescriptor.getMemberScope(typeArguments), ReceiverDescriptor.NO_RECEIVER, name, parameterTypeList); - for (ResolvedCall resolvedCall : functions.getResults()) { + for (ResolvedCallImpl resolvedCall : functions.getResults()) { List unsubstitutedValueParameters = resolvedCall.getResultingDescriptor().getValueParameters(); for (int i = 0, unsubstitutedValueParametersSize = unsubstitutedValueParameters.size(); i < unsubstitutedValueParametersSize; i++) { ValueParameterDescriptor unsubstitutedValueParameter = unsubstitutedValueParameters.get(i); From 54646ac8ddfb1d5e7a025dc574a6fcc2196e91a4 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 11:54:37 +0400 Subject: [PATCH 07/22] Read-only interface extracted from ResolvedCall renamed --- .../src/org/jetbrains/jet/codegen/ExpressionCodegen.java | 2 +- .../src/org/jetbrains/jet/lang/resolve/BindingContext.java | 3 ++- .../calls/{ResolvedCallInterface.java => ResolvedCall.java} | 2 +- .../org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) rename compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/{ResolvedCallInterface.java => ResolvedCall.java} (92%) diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index defea4e3aab..936b20af22b 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1129,7 +1129,7 @@ public class ExpressionCodegen extends JetVisitor { } private int pushMethodArguments(JetCallElement expression, List valueParameterTypes) { - ResolvedCallImpl resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); + ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); List args = expression.getValueArguments(); if(resolvedCall != null) { Map valueArguments = resolvedCall.getValueArguments(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java index 8c7fcf345a1..8d012378264 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContext.java @@ -6,6 +6,7 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor; import org.jetbrains.jet.lang.diagnostics.Diagnostic; import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.calls.ResolvedCall; import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.lang.resolve.constants.CompileTimeConstant; import org.jetbrains.jet.lang.resolve.scopes.JetScope; @@ -27,7 +28,7 @@ public interface BindingContext { WritableSlice EXPRESSION_TYPE = new BasicWritableSlice("EXPRESSION_TYPE", RewritePolicy.DO_NOTHING); WritableSlice REFERENCE_TARGET = new BasicWritableSlice("REFERENCE_TARGET", RewritePolicy.DO_NOTHING); - WritableSlice> RESOLVED_CALL = new BasicWritableSlice>("RESOLVED_CALL", RewritePolicy.DO_NOTHING); + WritableSlice> RESOLVED_CALL = new BasicWritableSlice>("RESOLVED_CALL", RewritePolicy.DO_NOTHING); WritableSlice>> AMBIGUOUS_REFERENCE_TARGET = new BasicWritableSlice>>("AMBIGUOUS_REFERENCE_TARGET", RewritePolicy.DO_NOTHING); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java similarity index 92% rename from compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java rename to compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java index 4e250bab4b4..51f9b36ffe7 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallInterface.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java @@ -12,7 +12,7 @@ import java.util.Map; /** * @author abreslav */ -public interface ResolvedCallInterface { +public interface ResolvedCall { @NotNull ResolutionStatus getStatus(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java index d1eb79faa4a..c59bdc39a0d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java @@ -21,7 +21,7 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor /** * @author abreslav */ -public class ResolvedCallImpl implements ResolvedCallInterface { +public class ResolvedCallImpl implements ResolvedCall { public static final Function, CallableDescriptor> MAP_TO_CANDIDATE = new Function, CallableDescriptor>() { @Override From e262d94cc1a555ba4f71b6594a0f34647ae9ee3c Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 12:46:32 +0400 Subject: [PATCH 08/22] Nullable Nothing is exactly null --- .../calls/autocasts/DataFlowValueFactory.java | 3 + .../jet/lang/types/JetStandardClasses.java | 13 +- .../jet/lang/types/JetTypeChecker.java | 4 +- .../BasicExpressionTypingVisitor.java | 42 ++-- .../ClosureExpressionsTypingVisitor.java | 6 +- .../ControlStructureTypingVisitor.java | 28 +-- .../lang/types/expressions/DataFlowUtils.java | 157 ++++++++++++++ .../expressions/ExpressionTypingServices.java | 2 +- .../expressions/ExpressionTypingUtils.java | 199 +----------------- ...ressionTypingVisitorWithWritableScope.java | 2 +- .../PatternMatchingTypingVisitor.java | 2 +- .../NullableNothingIsExactlyNull.jet | 8 + 12 files changed, 223 insertions(+), 243 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java create mode 100644 idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java index 9051c404887..bee520f5297 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java @@ -9,7 +9,9 @@ import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.JetModuleUtil; import org.jetbrains.jet.lang.resolve.scopes.receivers.ThisReceiverDescriptor; +import org.jetbrains.jet.lang.types.JetStandardClasses; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.JetTypeChecker; import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; @@ -27,6 +29,7 @@ public class DataFlowValueFactory { JetConstantExpression constantExpression = (JetConstantExpression) expression; if (constantExpression.getNode().getElementType() == JetNodeTypes.NULL) return DataFlowValue.NULL; } + if (JetTypeChecker.INSTANCE.equalTypes(type, JetStandardClasses.getNullableNothingType())) return DataFlowValue.NULL; // 'null' is the only inhabitant of 'Nothing?' Pair result = getIdForStableIdentifier(expression, bindingContext, false); return new DataFlowValue(result.first == null ? expression : result.first, type, result.second, getImmanentNullability(type)); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardClasses.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardClasses.java index 41774dc14c4..70db11221a4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardClasses.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetStandardClasses.java @@ -39,12 +39,12 @@ public class JetStandardClasses { @Override public Iterator iterator() { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("Don't enumerate supertypes of Nothing"); } @Override public int size() { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("Supertypes of Nothing do not constitute a valid collection"); } }, JetScope.EMPTY, @@ -278,8 +278,13 @@ public class JetStandardClasses { } public static boolean isNothing(@NotNull JetType type) { - return !(type instanceof NamespaceType) && - type.getConstructor() == NOTHING_CLASS.getTypeConstructor(); + return isNothingOrNullableNothing(type) + && !type.isNullable(); + } + + public static boolean isNothingOrNullableNothing(@NotNull JetType type) { + return !(type instanceof NamespaceType) + && type.getConstructor() == NOTHING_CLASS.getTypeConstructor(); } public static boolean isUnit(@NotNull JetType type) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeChecker.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeChecker.java index bd6ecce87ca..d3a36c2652c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeChecker.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/JetTypeChecker.java @@ -81,7 +81,7 @@ public class JetTypeChecker { JetType type = iterator.next(); assert type != null; // TODO : This admits 'Nothing?'. Review - if (JetStandardClasses.isNothing(type)) { + if (JetStandardClasses.isNothingOrNullableNothing(type)) { iterator.remove(); } nullable |= type.isNullable(); @@ -564,7 +564,7 @@ public class JetTypeChecker { if (!supertype.isNullable() && subtype.isNullable()) { return fail(); } - if (JetStandardClasses.isNothing(subtype)) { + if (JetStandardClasses.isNothingOrNullableNothing(subtype)) { return StatusAction.DONE_WITH_CURRENT_TYPE; } return StatusAction.PROCEED; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 3a16b72097b..c4f2f06b8da 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -49,7 +49,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } else { context.trace.record(REFERENCE_TARGET, expression, property); - return checkType(property.getOutType(), expression, context); + return DataFlowUtils.checkType(property.getOutType(), expression, context); } } else { @@ -74,14 +74,14 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (result == null) { return ErrorUtils.createErrorType("No class object in " + expression.getReferencedName()); } - return checkType(result, expression, context); + return DataFlowUtils.checkType(result, expression, context); } } JetType[] result = new JetType[1]; TemporaryBindingTrace temporaryTrace = TemporaryBindingTrace.create(context.trace); if (furtherNameLookup(expression, referencedName, result, context.replaceBindingTrace(temporaryTrace))) { temporaryTrace.commit(); - return checkType(result[0], expression, context); + return DataFlowUtils.checkType(result[0], expression, context); } // To report NO_CLASS_OBJECT when no namespace found if (classifier != null) { @@ -122,7 +122,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (innerExpression == null) { return null; } - return checkType(facade.getType(innerExpression, context.replaceScope(context.scope)), expression, context); + return DataFlowUtils.checkType(facade.getType(innerExpression, context.replaceScope(context.scope)), expression, context); } @Override @@ -162,7 +162,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } else { context.trace.record(BindingContext.COMPILE_TIME_VALUE, expression, value); - return checkType(value.getType(standardLibrary), expression, context); + return DataFlowUtils.checkType(value.getType(standardLibrary), expression, context); } } @@ -197,7 +197,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { else { facade.getType(expression.getLeft(), context.replaceExpectedType(NO_EXPECTED_TYPE)); } - return checkType(result, expression, context); + return DataFlowUtils.checkType(result, expression, context); } private boolean checkBinaryWithTypeRHS(JetBinaryExpressionWithTypeRHS expression, ExpressionTypingContext context, @NotNull JetType targetType, @NotNull JetType expectedType, TemporaryBindingTrace temporaryTrace) { @@ -259,7 +259,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } } // TODO : labels - return checkType(JetStandardClasses.getTupleType(types), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getTupleType(types), expression, context); } @NotNull @@ -269,7 +269,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } List result = Lists.newArrayListWithCapacity(arguments.size()); for (int i = 0, argumentTypesSize = argumentTypes.size(); i < argumentTypesSize; i++) { - result.add(checkType(argumentTypes.get(i), arguments.get(i), context.replaceExpectedType(expectedArgumentTypes.get(i).getType()))); + result.add(DataFlowUtils.checkType(argumentTypes.get(i), arguments.get(i), context.replaceExpectedType(expectedArgumentTypes.get(i).getType()))); } return result; } @@ -330,7 +330,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } } } - return checkType(result, expression, context); + return DataFlowUtils.checkType(result, expression, context); } @Override @@ -386,7 +386,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (result != null) { context.trace.record(BindingContext.EXPRESSION_TYPE, selectorExpression, result); } - return checkType(result, expression, contextWithExpectedType); + return DataFlowUtils.checkType(result, expression, contextWithExpectedType); } private void propagateConstantValues(JetQualifiedExpression expression, ExpressionTypingContext context, JetSimpleNameExpression selectorExpression) { @@ -432,14 +432,14 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { VariableDescriptor variableDescriptor = context.replaceBindingTrace(temporaryTrace).resolveSimpleProperty(receiver, callOperationNode, nameExpression); if (variableDescriptor != null) { temporaryTrace.commit(); - return checkType(variableDescriptor.getOutType(), nameExpression, context); + return DataFlowUtils.checkType(variableDescriptor.getOutType(), nameExpression, context); } ExpressionTypingContext newContext = receiver.exists() ? context.replaceScope(receiver.getType().getMemberScope()) : context; JetType jetType = lookupNamespaceOrClassObject(nameExpression, nameExpression.getReferencedName(), newContext); if (jetType == null) { context.trace.report(UNRESOLVED_REFERENCE.on(nameExpression)); } - return checkType(jetType, nameExpression, context); + return DataFlowUtils.checkType(jetType, nameExpression, context); } else if (selectorExpression instanceof JetQualifiedExpression) { JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) selectorExpression; @@ -460,7 +460,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @Override public JetType visitCallExpression(JetCallExpression expression, ExpressionTypingContext context) { JetType expressionType = context.resolveCall(NO_RECEIVER, null, expression); - return checkType(expressionType, expression, context); + return DataFlowUtils.checkType(expressionType, expression, context); } @Override @@ -473,7 +473,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { referencedName = referencedName == null ? " " : referencedName; context.labelResolver.enterLabeledElement(referencedName.substring(1), baseExpression); // TODO : Some processing for the label? - JetType type = checkType(facade.getType(baseExpression, context.replaceExpectedReturnType(context.expectedType)), expression, context); + JetType type = DataFlowUtils.checkType(facade.getType(baseExpression, context.replaceExpectedReturnType(context.expectedType)), expression, context); context.labelResolver.exitLabeledElement(baseExpression); return type; } @@ -516,7 +516,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { result = returnType; } - return checkType(result, expression, context); + return DataFlowUtils.checkType(result, expression, context); } @Override @@ -599,7 +599,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { else if (operationType == JetTokens.ANDAND || operationType == JetTokens.OROR) { JetType leftType = facade.getType(left, context.replaceScope(context.scope)); WritableScopeImpl leftScope = newWritableScopeImpl(context).setDebugName("Left scope of && or ||"); - DataFlowInfo flowInfoLeft = extractDataFlowInfoFromCondition(left, operationType == JetTokens.ANDAND, leftScope, context); // TODO: This gets computed twice: here and in extractDataFlowInfoFromCondition() for the whole condition + DataFlowInfo flowInfoLeft = DataFlowUtils.extractDataFlowInfoFromCondition(left, operationType == JetTokens.ANDAND, leftScope, context); // TODO: This gets computed twice: here and in extractDataFlowInfoFromCondition() for the whole condition WritableScopeImpl rightScope = operationType == JetTokens.ANDAND ? leftScope : newWritableScopeImpl(context).setDebugName("Right scope of && or ||"); JetType rightType = right == null ? null : facade.getType(right, context.replaceDataFlowInfo(flowInfoLeft).replaceScope(rightScope)); if (leftType != null && !isBoolean(context.semanticServices, leftType)) { @@ -618,7 +618,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { context.trace.report(USELESS_ELVIS.on(expression, left, leftType)); } if (rightType != null) { - checkType(TypeUtils.makeNullableAsSpecified(leftType, rightType.isNullable()), left, contextWithExpectedType); + DataFlowUtils.checkType(TypeUtils.makeNullableAsSpecified(leftType, rightType.isNullable()), left, contextWithExpectedType); return TypeUtils.makeNullableAsSpecified(context.semanticServices.getTypeChecker().commonSupertype(leftType, rightType), rightType.isNullable()); } } @@ -626,7 +626,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { else { context.trace.report(UNSUPPORTED.on(operationSign, "Unknown operation")); } - return checkType(result, expression, contextWithExpectedType); + return DataFlowUtils.checkType(result, expression, contextWithExpectedType); } public void checkInExpression(JetElement callElement, @NotNull JetSimpleNameExpression operationSign, @NotNull JetExpression left, @NotNull JetExpression right, ExpressionTypingContext context) { @@ -685,7 +685,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { "get", receiver); if (functionDescriptor != null) { - return checkType(functionDescriptor.getReturnType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(functionDescriptor.getReturnType(), expression, contextWithExpectedType); } } return null; @@ -714,7 +714,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @Override public JetType visitRootNamespaceExpression(JetRootNamespaceExpression expression, ExpressionTypingContext context) { if (context.namespacesAllowed) { - return ExpressionTypingUtils.checkType(JetModuleUtil.getRootNamespaceType(expression), expression, context); + return DataFlowUtils.checkType(JetModuleUtil.getRootNamespaceType(expression), expression, context); } context.trace.report(NAMESPACE_IS_NOT_AN_EXPRESSION.on(expression)); return null; @@ -764,7 +764,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { if (value[0] != CompileTimeConstantResolver.OUT_OF_RANGE) { context.trace.record(BindingContext.COMPILE_TIME_VALUE, expression, new StringValue(builder.toString())); } - return checkType(context.semanticServices.getStandardLibrary().getStringType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(context.semanticServices.getStandardLibrary().getStringType(), expression, contextWithExpectedType); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java index 1a0f7412042..e0b992f735e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ClosureExpressionsTypingVisitor.java @@ -55,7 +55,7 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor { ObservableBindingTrace traceAdapter = new ObservableBindingTrace(context.trace); traceAdapter.addHandler(CLASS, handler); TopDownAnalyzer.processObject(context.semanticServices, traceAdapter, context.scope, context.scope.getContainingDeclaration(), expression.getObjectDeclaration()); - return ExpressionTypingUtils.checkType(result[0], expression, context); + return DataFlowUtils.checkType(result[0], expression, context); } @Override @@ -152,11 +152,11 @@ public class ClosureExpressionsTypingVisitor extends ExpressionTypingVisitor { JetType expectedReturnType = JetStandardClasses.getReturnType(expectedType); if (JetStandardClasses.isUnit(expectedReturnType)) { functionDescriptor.setReturnType(expectedReturnType); - return ExpressionTypingUtils.checkType(JetStandardClasses.getFunctionType(Collections.emptyList(), effectiveReceiverType, parameterTypes, expectedReturnType), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getFunctionType(Collections.emptyList(), effectiveReceiverType, parameterTypes, expectedReturnType), expression, context); } } - return ExpressionTypingUtils.checkType(JetStandardClasses.getFunctionType(Collections.emptyList(), effectiveReceiverType, parameterTypes, safeReturnType), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getFunctionType(Collections.emptyList(), effectiveReceiverType, parameterTypes, safeReturnType), expression, context); } } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java index 8fb7c58659b..c2ca77a049e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java @@ -65,8 +65,8 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetExpression thenBranch = expression.getThen(); WritableScopeImpl thenScope = newWritableScopeImpl(context).setDebugName("Then scope"); - DataFlowInfo thenInfo = extractDataFlowInfoFromCondition(condition, true, thenScope, context); - DataFlowInfo elseInfo = extractDataFlowInfoFromCondition(condition, false, null, context); + DataFlowInfo thenInfo = DataFlowUtils.extractDataFlowInfoFromCondition(condition, true, thenScope, context); + DataFlowInfo elseInfo = DataFlowUtils.extractDataFlowInfoFromCondition(condition, false, null, context); if (elseBranch == null) { if (thenBranch != null) { @@ -75,7 +75,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { facade.setResultingDataFlowInfo(elseInfo); // resultScope = elseScope; } - return checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); } return null; } @@ -85,7 +85,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { facade.setResultingDataFlowInfo(thenInfo); // resultScope = thenScope; } - return checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); } JetType thenType = getTypeWithNewScopeAndDataFlowInfo(thenScope, thenBranch, thenInfo, contextWithExpectedType); JetType elseType = getTypeWithNewScopeAndDataFlowInfo(context.scope, elseBranch, elseInfo, contextWithExpectedType); @@ -121,13 +121,13 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetExpression body = expression.getBody(); if (body != null) { WritableScopeImpl scopeToExtend = newWritableScopeImpl(context).setDebugName("Scope extended in while's condition"); - DataFlowInfo conditionInfo = condition == null ? context.dataFlowInfo : extractDataFlowInfoFromCondition(condition, true, scopeToExtend, context); + DataFlowInfo conditionInfo = condition == null ? context.dataFlowInfo : DataFlowUtils.extractDataFlowInfoFromCondition(condition, true, scopeToExtend, context); getTypeWithNewScopeAndDataFlowInfo(scopeToExtend, body, conditionInfo, context); } if (!containsBreak(expression, context)) { - facade.setResultingDataFlowInfo(extractDataFlowInfoFromCondition(condition, false, null, context)); + facade.setResultingDataFlowInfo(DataFlowUtils.extractDataFlowInfoFromCondition(condition, false, null, context)); } - return checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); } private boolean containsBreak(final JetLoopExpression loopExpression, final ExpressionTypingContext context) { @@ -178,9 +178,9 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetExpression condition = expression.getCondition(); checkCondition(conditionScope, condition, context); if (!containsBreak(expression, context)) { - facade.setResultingDataFlowInfo(extractDataFlowInfoFromCondition(condition, false, null, context)); + facade.setResultingDataFlowInfo(DataFlowUtils.extractDataFlowInfoFromCondition(condition, false, null, context)); } - return checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); } @Override @@ -225,7 +225,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { facade.getType(body, context.replaceScope(loopScope)); } - return checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, contextWithExpectedType); } @Nullable @@ -372,7 +372,7 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { JetType type = facade.getType(thrownExpression, context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE).replaceScope(context.scope)); // TODO : check that it inherits Throwable } - return checkType(JetStandardClasses.getNothingType(), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getNothingType(), expression, context); } @Override @@ -395,19 +395,19 @@ public class ControlStructureTypingVisitor extends ExpressionTypingVisitor { context.trace.report(RETURN_TYPE_MISMATCH.on(expression, context.expectedReturnType)); } } - return checkType(JetStandardClasses.getNothingType(), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getNothingType(), expression, context); } @Override public JetType visitBreakExpression(JetBreakExpression expression, ExpressionTypingContext context) { context.labelResolver.recordLabel(expression, context); - return checkType(JetStandardClasses.getNothingType(), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getNothingType(), expression, context); } @Override public JetType visitContinueExpression(JetContinueExpression expression, ExpressionTypingContext context) { context.labelResolver.recordLabel(expression, context); - return checkType(JetStandardClasses.getNothingType(), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getNothingType(), expression, context); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java new file mode 100644 index 00000000000..f7980849808 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/DataFlowUtils.java @@ -0,0 +1,157 @@ +package org.jetbrains.jet.lang.types.expressions; + +import com.intellij.openapi.util.Ref; +import com.intellij.psi.tree.IElementType; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.lang.descriptors.VariableDescriptor; +import org.jetbrains.jet.lang.psi.*; +import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValue; +import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; +import org.jetbrains.jet.lang.resolve.scopes.WritableScope; +import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.JetTypeChecker; +import org.jetbrains.jet.lang.types.TypeUtils; +import org.jetbrains.jet.lexer.JetTokens; + +import java.util.List; + +import static org.jetbrains.jet.lang.diagnostics.Errors.AUTOCAST_IMPOSSIBLE; +import static org.jetbrains.jet.lang.diagnostics.Errors.TYPE_MISMATCH; +import static org.jetbrains.jet.lang.resolve.BindingContext.AUTOCAST; + +/** + * @author abreslav + */ +public class DataFlowUtils { + @NotNull + public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) { + if (condition == null) return context.dataFlowInfo; + final Ref result = new Ref(context.dataFlowInfo); + condition.accept(new JetVisitorVoid() { + @Override + public void visitIsExpression(JetIsExpression expression) { + if (conditionValue && !expression.isNegated() || !conditionValue && expression.isNegated()) { + JetPattern pattern = expression.getPattern(); + result.set(context.patternsToDataFlowInfo.get(pattern)); + if (scopeToExtend != null) { + List descriptors = context.patternsToBoundVariableLists.get(pattern); + if (descriptors != null) { + for (VariableDescriptor variableDescriptor : descriptors) { + scopeToExtend.addVariableDescriptor(variableDescriptor); + } + } + } + } + } + + @Override + public void visitBinaryExpression(JetBinaryExpression expression) { + IElementType operationToken = expression.getOperationToken(); + if (operationToken == JetTokens.ANDAND || operationToken == JetTokens.OROR) { + WritableScope actualScopeToExtend; + if (operationToken == JetTokens.ANDAND) { + actualScopeToExtend = conditionValue ? scopeToExtend : null; + } + else { + actualScopeToExtend = conditionValue ? null : scopeToExtend; + } + + DataFlowInfo dataFlowInfo = extractDataFlowInfoFromCondition(expression.getLeft(), conditionValue, actualScopeToExtend, context); + JetExpression expressionRight = expression.getRight(); + if (expressionRight != null) { + DataFlowInfo rightInfo = extractDataFlowInfoFromCondition(expressionRight, conditionValue, actualScopeToExtend, context); + DataFlowInfo.CompositionOperator operator; + if (operationToken == JetTokens.ANDAND) { + operator = conditionValue ? DataFlowInfo.AND : DataFlowInfo.OR; + } + else { + operator = conditionValue ? DataFlowInfo.OR : DataFlowInfo.AND; + } + dataFlowInfo = operator.compose(dataFlowInfo, rightInfo); + } + result.set(dataFlowInfo); + } + else { + JetExpression left = expression.getLeft(); + JetExpression right = expression.getRight(); + if (right == null) return; + + JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); + if (lhsType == null) return; + JetType rhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, right); + if (rhsType == null) return; + + BindingContext bindingContext = context.trace.getBindingContext(); + DataFlowValue leftValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(left, lhsType, bindingContext); + DataFlowValue rightValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(right, rhsType, bindingContext); + + Boolean equals = null; + if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { + equals = true; + } + else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { + equals = false; + } + if (equals != null) { + if (equals == conditionValue) { // this means: equals && conditionValue || !equals && !conditionValue + result.set(context.dataFlowInfo.equate(leftValue, rightValue)); + } + else { + result.set(context.dataFlowInfo.disequate(leftValue, rightValue)); + } + + } + } + } + + @Override + public void visitUnaryExpression(JetUnaryExpression expression) { + IElementType operationTokenType = expression.getOperationSign().getReferencedNameElementType(); + if (operationTokenType == JetTokens.EXCL) { + JetExpression baseExpression = expression.getBaseExpression(); + if (baseExpression != null) { + result.set(extractDataFlowInfoFromCondition(baseExpression, !conditionValue, scopeToExtend, context)); + } + } + } + + @Override + public void visitParenthesizedExpression(JetParenthesizedExpression expression) { + JetExpression body = expression.getExpression(); + if (body != null) { + body.accept(this); + } + } + }); + if (result.get() == null) { + return context.dataFlowInfo; + } + return result.get(); + } + + @Nullable + public static JetType checkType(@Nullable JetType expressionType, @NotNull JetExpression expression, @NotNull ExpressionTypingContext context) { + if (expressionType == null || context.expectedType == null || context.expectedType == TypeUtils.NO_EXPECTED_TYPE || + context.semanticServices.getTypeChecker().isSubtypeOf(expressionType, context.expectedType)) { + return expressionType; + } + + DataFlowValue dataFlowValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(expression, expressionType, context.trace.getBindingContext()); + for (JetType possibleType : context.dataFlowInfo.getPossibleTypes(dataFlowValue)) { + if (JetTypeChecker.INSTANCE.isSubtypeOf(possibleType, context.expectedType)) { + if (dataFlowValue.isStableIdentifier()) { + context.trace.record(AUTOCAST, expression, possibleType); + } + else { + context.trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); + } + return possibleType; + } + } + context.trace.report(TYPE_MISMATCH.on(expression, context.expectedType, expressionType)); + return expressionType; + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java index 0ea1a9c113a..aacb5b29402 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java @@ -128,7 +128,7 @@ public class ExpressionTypingServices { /*package*/ JetType getBlockReturnedType(@NotNull JetScope outerScope, @NotNull JetBlockExpression expression, @NotNull CoercionStrategy coercionStrategyForLastExpression, ExpressionTypingContext context) { List block = expression.getStatements(); if (block.isEmpty()) { - return ExpressionTypingUtils.checkType(JetStandardClasses.getUnitType(), expression, context); + return DataFlowUtils.checkType(JetStandardClasses.getUnitType(), expression, context); } DeclarationDescriptor containingDescriptor = outerScope.getContainingDeclaration(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java index 7ce0dce8bc2..b95fe53a31c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java @@ -1,6 +1,5 @@ package org.jetbrains.jet.lang.types.expressions; -import com.intellij.openapi.util.Ref; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import org.jetbrains.annotations.NotNull; @@ -10,25 +9,16 @@ import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.descriptors.CallableDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; -import org.jetbrains.jet.lang.psi.*; -import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.psi.JetExpression; +import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; import org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler; -import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; -import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValue; import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; -import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.types.JetStandardClasses; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.lang.types.JetTypeChecker; -import org.jetbrains.jet.lang.types.TypeUtils; -import org.jetbrains.jet.lexer.JetTokens; -import java.util.List; - -import static org.jetbrains.jet.lang.diagnostics.Errors.*; -import static org.jetbrains.jet.lang.resolve.BindingContext.AUTOCAST; +import static org.jetbrains.jet.lang.diagnostics.Errors.RESULT_TYPE_MISMATCH; import static org.jetbrains.jet.lang.resolve.BindingContext.MUST_BE_WRAPPED_IN_A_REF; /** @@ -100,166 +90,6 @@ public class ExpressionTypingUtils { } } - @NotNull - public static DataFlowInfo extractDataFlowInfoFromCondition(@Nullable JetExpression condition, final boolean conditionValue, @Nullable final WritableScope scopeToExtend, final ExpressionTypingContext context) { - if (condition == null) return context.dataFlowInfo; - final Ref result = new Ref(context.dataFlowInfo); - condition.accept(new JetVisitorVoid() { - @Override - public void visitIsExpression(JetIsExpression expression) { - if (conditionValue && !expression.isNegated() || !conditionValue && expression.isNegated()) { - JetPattern pattern = expression.getPattern(); - result.set(context.patternsToDataFlowInfo.get(pattern)); - if (scopeToExtend != null) { - List descriptors = context.patternsToBoundVariableLists.get(pattern); - if (descriptors != null) { - for (VariableDescriptor variableDescriptor : descriptors) { - scopeToExtend.addVariableDescriptor(variableDescriptor); - } - } - } - } - } - - @Override - public void visitBinaryExpression(JetBinaryExpression expression) { - IElementType operationToken = expression.getOperationToken(); - if (operationToken == JetTokens.ANDAND || operationToken == JetTokens.OROR) { - WritableScope actualScopeToExtend; - if (operationToken == JetTokens.ANDAND) { - actualScopeToExtend = conditionValue ? scopeToExtend : null; - } - else { - actualScopeToExtend = conditionValue ? null : scopeToExtend; - } - - DataFlowInfo dataFlowInfo = extractDataFlowInfoFromCondition(expression.getLeft(), conditionValue, actualScopeToExtend, context); - JetExpression expressionRight = expression.getRight(); - if (expressionRight != null) { - DataFlowInfo rightInfo = extractDataFlowInfoFromCondition(expressionRight, conditionValue, actualScopeToExtend, context); - DataFlowInfo.CompositionOperator operator; - if (operationToken == JetTokens.ANDAND) { - operator = conditionValue ? DataFlowInfo.AND : DataFlowInfo.OR; - } - else { - operator = conditionValue ? DataFlowInfo.OR : DataFlowInfo.AND; - } - dataFlowInfo = operator.compose(dataFlowInfo, rightInfo); - } - result.set(dataFlowInfo); - } - else { - JetExpression left = expression.getLeft(); - JetExpression right = expression.getRight(); - if (right == null) return; - - JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); - if (lhsType == null) return; - JetType rhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, right); - if (rhsType == null) return; - - BindingContext bindingContext = context.trace.getBindingContext(); - DataFlowValue leftValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(left, lhsType, bindingContext); - DataFlowValue rightValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(right, rhsType, bindingContext); - - Boolean equals = null; - if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { - equals = true; - } - else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { - equals = false; - } - if (equals != null) { - if (equals == conditionValue) { // this means: equals && conditionValue || !equals && !conditionValue - result.set(context.dataFlowInfo.equate(leftValue, rightValue)); - } - else { - result.set(context.dataFlowInfo.disequate(leftValue, rightValue)); - } - - } - -// if (!(left instanceof JetSimpleNameExpression)) { -// JetExpression tmp = left; -// left = right; -// right = tmp; -// -// if (!(left instanceof JetSimpleNameExpression)) { -// return; -// } -// } -// -// VariableDescriptor variableDescriptor = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), left); -// if (variableDescriptor == null) return; -// -// // TODO : validate that DF makes sense for this variable: local, val, internal w/backing field, etc -// -// // Comparison to a non-null expression -// JetType rhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, right); -// if (rhsType != null && !rhsType.isNullable()) { -// extendDataFlowWithNullComparison(operationToken, variableDescriptor, !conditionValue); -// return; -// } -// -// VariableDescriptor rightVariable = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), right); -// if (rightVariable != null) { -// JetType lhsType = context.trace.getBindingContext().get(BindingContext.EXPRESSION_TYPE, left); -// if (lhsType != null && !lhsType.isNullable()) { -// extendDataFlowWithNullComparison(operationToken, rightVariable, !conditionValue); -// return; -// } -// } -// -// // Comparison to 'null' -// if (!(right instanceof JetConstantExpression)) { -// return; -// } -// JetConstantExpression constantExpression = (JetConstantExpression) right; -// if (constantExpression.getNode().getElementType() != JetNodeTypes.NULL) { -// return; -// } -// -// extendDataFlowWithNullComparison(operationToken, variableDescriptor, conditionValue); - } - } - -// private void extendDataFlowWithNullComparison(IElementType operationToken, @NotNull VariableDescriptor variableDescriptor, boolean equalsToNull) { -// boolean equality; -// if (operationToken == JetTokens.EQEQ || operationToken == JetTokens.EQEQEQ) { -//// result[0] = context.dataFlowInfo.establishEqualityToNull(variableDescriptor, !equalsToNull); -// equality = true; -// } -// else if (operationToken == JetTokens.EXCLEQ || operationToken == JetTokens.EXCLEQEQEQ) { -//// result[0] = context.dataFlowInfo.establishEqualityToNull(variableDescriptor, equalsToNull); -// equality = false; -// } -// } - - @Override - public void visitUnaryExpression(JetUnaryExpression expression) { - IElementType operationTokenType = expression.getOperationSign().getReferencedNameElementType(); - if (operationTokenType == JetTokens.EXCL) { - JetExpression baseExpression = expression.getBaseExpression(); - if (baseExpression != null) { - result.set(extractDataFlowInfoFromCondition(baseExpression, !conditionValue, scopeToExtend, context)); - } - } - } - - @Override - public void visitParenthesizedExpression(JetParenthesizedExpression expression) { - JetExpression body = expression.getExpression(); - if (body != null) { - body.accept(this); - } - } - }); - if (result.get() == null) { - return context.dataFlowInfo; - } - return result.get(); - } - public static boolean isTypeFlexible(@Nullable JetExpression expression) { if (expression == null) return false; @@ -269,29 +99,6 @@ public class ExpressionTypingUtils { ).contains(expression.getNode().getElementType()); } - @Nullable - public static JetType checkType(@Nullable JetType expressionType, @NotNull JetExpression expression, @NotNull ExpressionTypingContext context) { - if (expressionType == null || context.expectedType == null || context.expectedType == TypeUtils.NO_EXPECTED_TYPE || - context.semanticServices.getTypeChecker().isSubtypeOf(expressionType, context.expectedType)) { - return expressionType; - } - - DataFlowValue dataFlowValue = DataFlowValueFactory.INSTANCE.createDataFlowValue(expression, expressionType, context.trace.getBindingContext()); - for (JetType possibleType : context.dataFlowInfo.getPossibleTypes(dataFlowValue)) { - if (JetTypeChecker.INSTANCE.isSubtypeOf(possibleType, context.expectedType)) { - if (dataFlowValue.isStableIdentifier()) { - context.trace.record(AUTOCAST, expression, possibleType); - } - else { - context.trace.report(AUTOCAST_IMPOSSIBLE.on(expression, possibleType, expression.getText())); - } - return possibleType; - } - } - context.trace.report(TYPE_MISMATCH.on(expression, context.expectedType, expressionType)); - return expressionType; - } - public static void checkWrappingInRef(JetExpression expression, ExpressionTypingContext context) { if (!(expression instanceof JetSimpleNameExpression)) return; JetSimpleNameExpression simpleName = (JetSimpleNameExpression) expression; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorWithWritableScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorWithWritableScope.java index acbd1271b57..844f980e8b5 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorWithWritableScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorWithWritableScope.java @@ -164,7 +164,7 @@ public class ExpressionTypingVisitorWithWritableScope extends BasicExpressionTyp "set", receiver); if (functionDescriptor == null) return null; context.trace.record(REFERENCE_TARGET, operationSign, functionDescriptor); - return ExpressionTypingUtils.checkType(functionDescriptor.getReturnType(), arrayAccessExpression, context); + return DataFlowUtils.checkType(functionDescriptor.getReturnType(), arrayAccessExpression, context); } @Override diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java index 5d1783f026b..970198fe48d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/PatternMatchingTypingVisitor.java @@ -44,7 +44,7 @@ public class PatternMatchingTypingVisitor extends ExpressionTypingVisitor { context.patternsToDataFlowInfo.put(pattern, newDataFlowInfo); context.patternsToBoundVariableLists.put(pattern, scopeToExtend.getDeclaredVariables()); } - return ExpressionTypingUtils.checkType(context.semanticServices.getStandardLibrary().getBooleanType(), expression, contextWithExpectedType); + return DataFlowUtils.checkType(context.semanticServices.getStandardLibrary().getBooleanType(), expression, contextWithExpectedType); } @Override diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet b/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet new file mode 100644 index 00000000000..3c52c45b1b9 --- /dev/null +++ b/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet @@ -0,0 +1,8 @@ +fun test() { + val out : Int? = null + val x : Nothing? = null + if (out != x) + out.plus(1) + if (out == x) return + out.plus(1) +} From c0eae952a2bd2a7fd8ee41ea419e179c562fb9b0 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 12:50:22 +0400 Subject: [PATCH 09/22] Docs for ResolvedCall --- .../jetbrains/jet/lang/resolve/calls/ResolvedCall.java | 10 +++++++--- .../jet/lang/resolve/calls/ResolvedCallImpl.java | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java index 51f9b36ffe7..521e7063eba 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCall.java @@ -13,23 +13,27 @@ import java.util.Map; * @author abreslav */ public interface ResolvedCall { - @NotNull - ResolutionStatus getStatus(); - + /** A target callable descriptor as it was accessible in the corresponding scope, i.e. with type parameters not substituted */ @NotNull D getCandidateDescriptor(); + /** Type parameters are substituted */ @NotNull D getResultingDescriptor(); + /** If the target was an extension function or property, this is the value for its receiver parameter */ @NotNull ReceiverDescriptor getReceiverArgument(); + /** If the target was a member of a class, this is the object of that class to call it on */ @NotNull ReceiverDescriptor getThisObject(); + /** Values (arguments) for value parameters */ @NotNull Map getValueArguments(); + /** What's substituted for type parameters */ + @NotNull Map getTypeArguments(); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java index c59bdc39a0d..bf95a59a1c1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/ResolvedCallImpl.java @@ -67,7 +67,6 @@ public class ResolvedCallImpl implements ResolvedC this.candidateDescriptor = candidateDescriptor; } - @Override @NotNull public ResolutionStatus getStatus() { return status; @@ -152,6 +151,7 @@ public class ResolvedCallImpl implements ResolvedC return someArgumentHasNoType; } + @NotNull @Override public Map getTypeArguments() { return typeArguments; From 84951d2585a9c6ae4eb121f09297d97a57b88c61 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 14:35:02 +0400 Subject: [PATCH 10/22] KT-362 Don't allow autocasts on vals that are not internal --- .../jet/lang/descriptors/ClassDescriptor.java | 6 +- .../DeclarationDescriptorWithVisibility.java | 11 ++++ .../lang/descriptors/MemberDescriptor.java | 5 +- .../jet/lang/descriptors/Visibility.java | 4 ++ .../calls/autocasts/DataFlowValueFactory.java | 65 +++++++++---------- .../quick/nullabilityAndAutoCasts/kt362.jet | 30 +++++++++ 6 files changed, 83 insertions(+), 38 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorWithVisibility.java create mode 100644 idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java index 1b7057a76d4..cf468bee683 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/ClassDescriptor.java @@ -14,7 +14,7 @@ import java.util.Set; /** * @author abreslav */ -public interface ClassDescriptor extends ClassifierDescriptor { +public interface ClassDescriptor extends ClassifierDescriptor, MemberDescriptor { @NotNull JetScope getMemberScope(List typeArguments); @@ -53,9 +53,11 @@ public interface ClassDescriptor extends ClassifierDescriptor { @NotNull ClassKind getKind(); + @Override @NotNull Modality getModality(); - + + @Override @NotNull Visibility getVisibility(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorWithVisibility.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorWithVisibility.java new file mode 100644 index 00000000000..eab9e41ff5d --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/DeclarationDescriptorWithVisibility.java @@ -0,0 +1,11 @@ +package org.jetbrains.jet.lang.descriptors; + +import org.jetbrains.annotations.NotNull; + +/** + * @author abreslav + */ +public interface DeclarationDescriptorWithVisibility extends DeclarationDescriptor { + @NotNull + Visibility getVisibility(); +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MemberDescriptor.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MemberDescriptor.java index 5327b981133..29940086e89 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MemberDescriptor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/MemberDescriptor.java @@ -5,10 +5,11 @@ import org.jetbrains.annotations.NotNull; /** * @author abreslav */ -public interface MemberDescriptor { +public interface MemberDescriptor extends DeclarationDescriptor, DeclarationDescriptorWithVisibility { @NotNull Modality getModality(); - + + @Override @NotNull Visibility getVisibility(); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibility.java b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibility.java index e2c5364dfe3..4b6e70e2e77 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibility.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/descriptors/Visibility.java @@ -1,5 +1,7 @@ package org.jetbrains.jet.lang.descriptors; +import java.util.EnumSet; + /** * @author svtk */ @@ -11,6 +13,8 @@ public enum Visibility { INTERNAL_PROTECTED(false), LOCAL(false); + public static final EnumSet INTERNAL_VISIBILITIES = EnumSet.of(PRIVATE, INTERNAL, INTERNAL_PROTECTED, LOCAL); + private final boolean isAPI; private Visibility(boolean visibleOutside) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java index bee520f5297..27d964e1656 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java @@ -46,29 +46,6 @@ public class DataFlowValueFactory { return new DataFlowValue(variableDescriptor, type, isStableVariable(variableDescriptor), getImmanentNullability(type)); } -// private Object getId(@NotNull JetExpression expression, @NotNull BindingContext bindingContext) { -// if (expression instanceof JetThisExpression) { -// JetThisExpression thisExpression = (JetThisExpression) expression; -// DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getThisReference()); -// if (declarationDescriptor instanceof CallableDescriptor) { -// return ((CallableDescriptor) declarationDescriptor).getReceiverParameter(); -// } -// if (declarationDescriptor instanceof ClassDescriptor) { -// return ((ClassDescriptor) declarationDescriptor).getImplicitReceiver(); -// } -//// throw new AssertionError("No resolution data for expression " + expression.getText()); -// } -// else if (expression instanceof JetReferenceExpression) { -// JetReferenceExpression referenceExpression = (JetReferenceExpression) expression; -// DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, referenceExpression); -// if (declarationDescriptor != null) { -// return declarationDescriptor; -// } -//// throw new AssertionError("No resolution data for expression " + expression.getText() + DiagnosticUtils.atLocation(expression)); -// } -// return expression; -// } - private Nullability getImmanentNullability(JetType type) { return type.isNullable() ? Nullability.UNKNOWN : Nullability.NOT_NULL; } @@ -142,18 +119,38 @@ public class DataFlowValueFactory { if (variableDescriptor.isVar()) return false; if (variableDescriptor instanceof PropertyDescriptor) { PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor; - DeclarationDescriptor containingDeclaration = propertyDescriptor.getContainingDeclaration(); - if (containingDeclaration instanceof ClassDescriptor) { - ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; - if (classDescriptor.getModality().isOverridable() && propertyDescriptor.getModality().isOverridable()) return false; - } - else { - assert !propertyDescriptor.getModality().isOverridable() : "Property outside a class must not be overridable"; - } - // TODO: check that it's internal - PropertyGetterDescriptor getter = propertyDescriptor.getGetter(); - if (getter != null && !getter.isDefault()) return false; + if (!isInternal(propertyDescriptor)) return false; + if (!isFinal(propertyDescriptor)) return false; + if (!hasDefaultGetter(propertyDescriptor)) return false; } return true; } + + private static boolean isFinal(PropertyDescriptor propertyDescriptor) { + DeclarationDescriptor containingDeclaration = propertyDescriptor.getContainingDeclaration(); + if (containingDeclaration instanceof ClassDescriptor) { + ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration; + if (classDescriptor.getModality().isOverridable() && propertyDescriptor.getModality().isOverridable()) return false; + } + else { + assert !propertyDescriptor.getModality().isOverridable() : "Property outside a class must not be overridable"; + } + return true; + } + + private static boolean isInternal(@NotNull DeclarationDescriptorWithVisibility descriptor) { + if (Visibility.INTERNAL_VISIBILITIES.contains(descriptor.getVisibility())) return true; + + DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration(); + if (!(containingDeclaration instanceof DeclarationDescriptorWithVisibility)) { + return false; + } + + return isInternal((DeclarationDescriptorWithVisibility) containingDeclaration); + } + + private static boolean hasDefaultGetter(PropertyDescriptor propertyDescriptor) { + PropertyGetterDescriptor getter = propertyDescriptor.getGetter(); + return getter == null || getter.isDefault(); + } } diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet b/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet new file mode 100644 index 00000000000..5fd5f72bfb1 --- /dev/null +++ b/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet @@ -0,0 +1,30 @@ +// KT-362 Don't allow autocasts on vals that are not internal +namespace example; + +namespace test { + public class Public() { + public val public : Int? = 1; + protected val protected : Int? = 1; + internal protected val i_protected : Int? = 1; + val internal : Int? = 1 + } + internal class Internal() { + public val public : Int? = 1; + protected val protected : Int? = 1; + internal protected val i_protected : Int? = 1; + val internal : Int? = 1 + } +} + +fun test() { + val p = test.Public() + if (p.public is Int) p.public + 1 + if (p.protected is Int) p.protected + 1 + if (p.i_protected is Int) p.i_protected + 1 + if (p.internal is Int) p.internal + 1 + val i = test.Public() + if (i.public is Int) i.public + 1 + if (i.protected is Int) i.protected + 1 + if (i.i_protected is Int) i.i_protected + 1 + if (i.internal is Int) i.internal + 1 +} \ No newline at end of file From 974dac4b5d4ecd42b262208b8a81cfb2ee08713d Mon Sep 17 00:00:00 2001 From: Alex Tkachman Date: Wed, 19 Oct 2011 13:28:41 +0200 Subject: [PATCH 11/22] runs under mac --- .../org/jetbrains/jet/cli/KotlinCompiler.java | 48 +++++++++++++++---- 1 file changed, 38 insertions(+), 10 deletions(-) diff --git a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java index e41fcdddb7c..9d943679e2b 100644 --- a/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java +++ b/compiler/cli/src/org/jetbrains/jet/cli/KotlinCompiler.java @@ -22,6 +22,8 @@ import org.jetbrains.jet.plugin.JetFileType; import java.io.File; import java.io.IOException; +import java.net.URL; +import java.net.URLClassLoader; import java.util.List; /** @@ -34,16 +36,6 @@ public class KotlinCompiler { System.out.println("Usage: KotlinCompiler "); return; } - String javaHome = System.getenv("JAVA_HOME"); - if (javaHome == null) { - System.out.println("JAVA_HOME environment variable needs to be defined"); - return; - } - File rtJar = findRtJar(javaHome); - if (rtJar == null || !rtJar.exists()) { - System.out.print("No rt.jar found under JAVA_HOME"); - return; - } Disposable root = new Disposable() { @Override @@ -51,9 +43,45 @@ public class KotlinCompiler { } }; JavaCoreEnvironment environment = new JavaCoreEnvironment(root); + + String javaHome = System.getenv("JAVA_HOME"); + File rtJar = null; + if (javaHome == null) { + ClassLoader systemClassLoader = ClassLoader.getSystemClassLoader(); + if(systemClassLoader instanceof URLClassLoader) { + URLClassLoader loader = (URLClassLoader) systemClassLoader; + for(URL url: loader.getURLs()) { + if("file".equals(url.getProtocol())) { + if(url.getFile().endsWith("/lib/rt.jar")) { + rtJar = new File(url.getFile()); + break; + } + if(url.getFile().endsWith("/Classes/classes.jar")) { + rtJar = new File(url.getFile()).getAbsoluteFile(); + break; + } + } + } + } + + if(rtJar == null) { + System.out.println("JAVA_HOME environment variable needs to be defined"); + return; + } + } + else { + rtJar = findRtJar(javaHome); + } + + if (rtJar == null || !rtJar.exists()) { + System.out.print("No rt.jar found under JAVA_HOME=" + javaHome); + return; + } + environment.addToClasspath(rtJar); environment.registerFileType(JetFileType.INSTANCE, "kt"); + environment.registerFileType(JetFileType.INSTANCE, "jet"); environment.registerParserDefinition(new JetParserDefinition()); VirtualFile vFile = environment.getLocalFileSystem().findFileByPath(args [0]); if (vFile == null) { From 79ee5cd606189aee8d4484a63d9e2a923b59da1f Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Wed, 19 Oct 2011 19:24:46 +0400 Subject: [PATCH 12/22] KT-156 Fix the this syntax In progress: super must work, but currently it does not, only super> works, where Foo is ignored. --- .../jet/codegen/ExpressionCodegen.java | 2 +- .../resolve/java/JavaClassMembersScope.java | 5 - .../src/org/jetbrains/jet/JetNodeTypes.java | 1 + .../jet/lang/diagnostics/Errors.java | 5 +- .../lang/parsing/JetExpressionParsing.java | 29 +- .../JetLabelQualifiedInstanceExpression.java | 20 + .../jet/lang/psi/JetSimpleNameExpression.java | 5 +- .../jet/lang/psi/JetSuperExpression.java | 39 ++ .../jet/lang/psi/JetThisExpression.java | 23 +- .../jet/lang/psi/JetTreeVisitor.java | 10 +- .../jetbrains/jet/lang/psi/JetVisitor.java | 5 + .../jet/lang/psi/JetVisitorVoid.java | 4 + .../lang/resolve/AbstractScopeAdapter.java | 5 - .../jet/lang/resolve/TypeResolver.java | 2 +- .../calls/autocasts/DataFlowValueFactory.java | 2 +- .../jet/lang/resolve/scopes/ChainedScope.java | 16 - .../jet/lang/resolve/scopes/JetScope.java | 5 +- .../jet/lang/resolve/scopes/JetScopeImpl.java | 5 - .../resolve/scopes/SubstitutingScope.java | 6 - .../resolve/scopes/WritableScopeImpl.java | 14 +- .../jetbrains/jet/lang/types/ErrorUtils.java | 5 - .../BasicExpressionTypingVisitor.java | 131 ++-- .../expressions/ExpressionTypingContext.java | 1 + .../lang/types/expressions/LabelResolver.java | 7 +- .../src/org/jetbrains/jet/lexer/Jet.flex | 1 + .../org/jetbrains/jet/lexer/JetTokens.java | 3 +- .../org/jetbrains/jet/lexer/_JetLexer.java | 646 +++++++++--------- grammar/src/class.grm | 2 +- grammar/src/expressions.grm | 7 +- .../checkerWithErrorTypes/quick/Super.jet | 49 ++ idea/testData/psi/Labels.jet | 8 +- idea/testData/psi/Labels.txt | 36 +- idea/testData/psi/SimpleExpressions.jet | 2 +- idea/testData/psi/SimpleExpressions.txt | 4 +- idea/testData/psi/Super.jet | 7 + idea/testData/psi/Super.txt | 88 +++ idea/testData/resolve/Super.jet | 26 + .../jet/types/JetTypeCheckerTest.java | 2 +- 38 files changed, 742 insertions(+), 486 deletions(-) create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedInstanceExpression.java create mode 100644 compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSuperExpression.java create mode 100644 idea/testData/checkerWithErrorTypes/quick/Super.jet create mode 100644 idea/testData/psi/Super.jet create mode 100644 idea/testData/psi/Super.txt create mode 100644 idea/testData/resolve/Super.jet diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 936b20af22b..babc46ddfa5 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -1988,7 +1988,7 @@ public class ExpressionCodegen extends JetVisitor { @Override public StackValue visitThisExpression(JetThisExpression expression, StackValue receiver) { - final DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, expression.getThisReference()); + final DeclarationDescriptor descriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, expression.getInstanceReference()); if (descriptor instanceof ClassDescriptor) { return generateThisOrOuter((ClassDescriptor) descriptor); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java index ab02a9d9d42..c46e086ab25 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassMembersScope.java @@ -51,11 +51,6 @@ public class JavaClassMembersScope implements JetScope { return null; } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - throw new UnsupportedOperationException(); - } - @Override public ClassifierDescriptor getClassifier(@NotNull String name) { ClassifierDescriptor classifierDescriptor = classifiers.get(name); diff --git a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java index 9656239e4a2..e26d14c12dc 100644 --- a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java +++ b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java @@ -109,6 +109,7 @@ public interface JetNodeTypes { JetNodeType LABEL_QUALIFIER = new JetNodeType("LABEL_QUALIFIER", JetContainerNode.class); JetNodeType THIS_EXPRESSION = new JetNodeType("THIS_EXPRESSION", JetThisExpression.class); + JetNodeType SUPER_EXPRESSION = new JetNodeType("SUPER_EXPRESSION", JetSuperExpression.class); JetNodeType BINARY_EXPRESSION = new JetNodeType("BINARY_EXPRESSION", JetBinaryExpression.class); JetNodeType BINARY_WITH_TYPE = new JetNodeType("BINARY_WITH_TYPE", JetBinaryExpressionWithTypeRHS.class); JetNodeType BINARY_WITH_PATTERN = new JetNodeType("BINARY_WITH_PATTERN", JetIsExpression.class); // TODO: diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index b91883012bc..6881ae9d2d3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -159,11 +159,14 @@ public interface Errors { SimpleDiagnosticFactory EQUALS_MISSING = SimpleDiagnosticFactory.create(ERROR, "No method 'equals(Any?) : Boolean' available"); SimpleDiagnosticFactory ASSIGNMENT_IN_EXPRESSION_CONTEXT = SimpleDiagnosticFactory.create(ERROR, "Assignments are not expressions, and only expressions are allowed in this context"); - SimpleDiagnosticFactory NAMESPACE_IS_NOT_AN_EXPRESSION = SimpleDiagnosticFactory.create(ERROR, "'namespace' is not an expression"); + SimpleDiagnosticFactory NAMESPACE_IS_NOT_AN_EXPRESSION = SimpleDiagnosticFactory.create(ERROR, "'namespace' is not an expression, it can only be used on the left-hand side of a dot ('.')"); + ParameterizedDiagnosticFactory1 SUPER_IS_NOT_AN_EXPRESSION = ParameterizedDiagnosticFactory1.create(ERROR, "{0} is not an expression, it can only be used on the left-hand side of a dot ('.')"); SimpleDiagnosticFactory DECLARATION_IN_ILLEGAL_CONTEXT = SimpleDiagnosticFactory.create(ERROR, "Declarations are not allowed in this position"); SimpleDiagnosticFactory REF_SETTER_PARAMETER = SimpleDiagnosticFactory.create(ERROR, "Setter parameters can not be 'ref'"); SimpleDiagnosticFactory SETTER_PARAMETER_WITH_DEFAULT_VALUE = SimpleDiagnosticFactory.create(ERROR, "Setter parameters can not have default values"); SimpleDiagnosticFactory NO_THIS = SimpleDiagnosticFactory.create(ERROR, "'this' is not defined in this context"); + SimpleDiagnosticFactory SUPER_NOT_AVAILABLE = SimpleDiagnosticFactory.create(ERROR, "No supertypes are accessible in this context"); + SimpleDiagnosticFactory AMBIGUOUS_SUPER = SimpleDiagnosticFactory.create(ERROR, "Many supertypes available, please specify the one you mean in angle brackets, e.g. 'super'"); SimpleDiagnosticFactory NOT_A_SUPERTYPE = SimpleDiagnosticFactory.create(ERROR, "Not a supertype"); SimpleDiagnosticFactory NO_WHEN_ENTRIES = SimpleDiagnosticFactory.create(ERROR, "Entries are required for when-expression"); // TODO : Scope, and maybe this should not be an error SimplePsiElementOnlyDiagnosticFactory USELESS_CAST_STATIC_ASSERT_IS_FINE = SimplePsiElementOnlyDiagnosticFactory.create(WARNING, "No cast needed, use ':' instead"); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java index 2da63a0e2d6..d5b8b5a8760 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/parsing/JetExpressionParsing.java @@ -49,6 +49,7 @@ public class JetExpressionParsing extends AbstractJetParsing { LPAR, // tuple THIS_KEYWORD, // this + SUPER_KEYWORD, // super IF_KEYWORD, // if WHEN_KEYWORD, // when @@ -464,7 +465,8 @@ public class JetExpressionParsing extends AbstractJetParsing { /* * atomicExpression * : tupleLiteral // or parenthesized element - * : "this" getEntryPoint? ("<" type ">")? + * : "this" label? + * : "super" ("<" type ">")? label? * : objectLiteral * : jump * : if @@ -490,6 +492,9 @@ public class JetExpressionParsing extends AbstractJetParsing { else if (at(THIS_KEYWORD)) { parseThisExpression(); } + else if (at(SUPER_KEYWORD)) { + parseSuperExpression(); + } else if (at(OBJECT_KEYWORD)) { parseObjectLiteral(); } @@ -1593,7 +1598,7 @@ public class JetExpressionParsing extends AbstractJetParsing { } /* - * "this" getEntryPoint? ("<" type ">")? + * "this" label? */ private void parseThisExpression() { assert _at(THIS_KEYWORD); @@ -1605,8 +1610,22 @@ public class JetExpressionParsing extends AbstractJetParsing { parseLabel(); + mark.done(THIS_EXPRESSION); + } + + /* + * "this" ("<" type ">")? label? + */ + private void parseSuperExpression() { + assert _at(SUPER_KEYWORD); + PsiBuilder.Marker mark = mark(); + + PsiBuilder.Marker superReference = mark(); + advance(); // SUPER_KEYWORD + superReference.done(REFERENCE_EXPRESSION); + if (at(LT)) { - // This may be "this < foo" or "this", thus the backtracking + // This may be "super < foo" or "super", thus the backtracking PsiBuilder.Marker supertype = mark(); myBuilder.disableNewlines(); @@ -1623,7 +1642,9 @@ public class JetExpressionParsing extends AbstractJetParsing { } myBuilder.restoreNewlinesState(); } - mark.done(THIS_EXPRESSION); + parseLabel(); + + mark.done(SUPER_EXPRESSION); } /* diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedInstanceExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedInstanceExpression.java new file mode 100644 index 00000000000..297830432d7 --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetLabelQualifiedInstanceExpression.java @@ -0,0 +1,20 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.jet.JetNodeTypes; + +/** + * @author abreslav + */ +public abstract class JetLabelQualifiedInstanceExpression extends JetLabelQualifiedExpression { + + public JetLabelQualifiedInstanceExpression(@NotNull ASTNode node) { + super(node); + } + + @NotNull + public JetReferenceExpression getInstanceReference() { + return (JetReferenceExpression) findChildByType(JetNodeTypes.REFERENCE_EXPRESSION); + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java index c40c07518a3..4ef04645259 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSimpleNameExpression.java @@ -10,13 +10,14 @@ import com.intellij.psi.tree.TokenSet; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.parsing.JetExpressionParsing; -import org.jetbrains.jet.lexer.JetTokens; + +import static org.jetbrains.jet.lexer.JetTokens.*; /** * @author max */ public class JetSimpleNameExpression extends JetReferenceExpression { - public static final TokenSet REFERENCE_TOKENS = TokenSet.orSet(JetTokens.LABELS, TokenSet.create(JetTokens.IDENTIFIER, JetTokens.FIELD_IDENTIFIER, JetTokens.THIS_KEYWORD)); + public static final TokenSet REFERENCE_TOKENS = TokenSet.orSet(LABELS, TokenSet.create(IDENTIFIER, FIELD_IDENTIFIER, THIS_KEYWORD, SUPER_KEYWORD)); public JetSimpleNameExpression(@NotNull ASTNode node) { super(node); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSuperExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSuperExpression.java new file mode 100644 index 00000000000..1eaa7bcf08d --- /dev/null +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetSuperExpression.java @@ -0,0 +1,39 @@ +package org.jetbrains.jet.lang.psi; + +import com.intellij.lang.ASTNode; +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import org.jetbrains.jet.JetNodeTypes; + +/** + * @author max + */ +public class JetSuperExpression extends JetLabelQualifiedInstanceExpression { + + public JetSuperExpression(@NotNull ASTNode node) { + super(node); + } + + @Override + public void accept(@NotNull JetVisitorVoid visitor) { + visitor.visitSuperExpression(this); + } + + @Override + public R accept(@NotNull JetVisitor visitor, D data) { + return visitor.visitSuperExpression(this, data); + } + + /** + * class A : B, C { + * override fun foo() { + * super.foo() + * super.foo() + * } + * } + */ + @Nullable + public JetTypeReference getSuperTypeQualifier() { + return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE); + } +} diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetThisExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetThisExpression.java index eb176aa19bd..ac42c897c7b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetThisExpression.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetThisExpression.java @@ -2,13 +2,11 @@ package org.jetbrains.jet.lang.psi; import com.intellij.lang.ASTNode; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; -import org.jetbrains.jet.JetNodeTypes; /** * @author max */ -public class JetThisExpression extends JetLabelQualifiedExpression { +public class JetThisExpression extends JetLabelQualifiedInstanceExpression { public JetThisExpression(@NotNull ASTNode node) { super(node); @@ -23,23 +21,4 @@ public class JetThisExpression extends JetLabelQualifiedExpression { public R accept(@NotNull JetVisitor visitor, D data) { return visitor.visitThisExpression(this, data); } - - /** - * class A : B, C { - * override fun foo() { - * this.foo() - * this.foo() - * } - * } - */ - @Nullable - public JetTypeReference getSuperTypeQualifier() { - return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE); - } - - @NotNull - public JetReferenceExpression getThisReference() { - return (JetReferenceExpression) findChildByType(JetNodeTypes.REFERENCE_EXPRESSION); - } - } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTreeVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTreeVisitor.java index d343f8bccf8..d48dc9a4d31 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTreeVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetTreeVisitor.java @@ -511,7 +511,15 @@ public class JetTreeVisitor extends JetVisitor { @Override public Void visitThisExpression(JetThisExpression expression, D data) { - JetReferenceExpression thisReference = expression.getThisReference(); + JetReferenceExpression thisReference = expression.getInstanceReference(); + thisReference.accept(this, data); + visitLabelQualifiedExpression(expression, data); + return null; + } + + @Override + public Void visitSuperExpression(JetSuperExpression expression, D data) { + JetReferenceExpression thisReference = expression.getInstanceReference(); thisReference.accept(this, data); JetTypeReference superTypeQualifier = expression.getSuperTypeQualifier(); if (superTypeQualifier != null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java index 9c5787cda2c..4817657f54c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -280,6 +280,10 @@ public class JetVisitor extends PsiElementVisitor { return visitLabelQualifiedExpression(expression, data); } + public R visitSuperExpression(JetSuperExpression expression, D data) { + return visitLabelQualifiedExpression(expression, data); + } + public R visitParenthesizedExpression(JetParenthesizedExpression expression, D data) { return visitExpression(expression, data); } @@ -419,4 +423,5 @@ public class JetVisitor extends PsiElementVisitor { public R visitEscapeStringTemplateEntry(JetEscapeStringTemplateEntry entry, D data) { return visitStringTemplateEntry(entry, data); } + } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java index 8fc840217da..e62e607a705 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java @@ -278,6 +278,10 @@ public class JetVisitorVoid extends PsiElementVisitor { visitLabelQualifiedExpression(expression); } + public void visitSuperExpression(JetSuperExpression expression) { + visitLabelQualifiedExpression(expression); + } + public void visitParenthesizedExpression(JetParenthesizedExpression expression) { visitExpression(expression); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AbstractScopeAdapter.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AbstractScopeAdapter.java index 2d5218a40a3..fec39dc6493 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AbstractScopeAdapter.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/AbstractScopeAdapter.java @@ -65,11 +65,6 @@ public abstract class AbstractScopeAdapter implements JetScope { return getWorkerScope().getPropertyByFieldReference(fieldName); } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - return getWorkerScope().getDeclarationDescriptorForUnqualifiedThis(); - } - @NotNull @Override public Collection getAllDescriptors() { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java index c01f2934b82..5c35018b7a8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java @@ -234,7 +234,7 @@ public class TypeResolver { } @Nullable - public ClassifierDescriptor resolveClass(JetScope scope, JetUserType userType) { + private ClassifierDescriptor resolveClass(JetScope scope, JetUserType userType) { ClassifierDescriptor classifierDescriptor = resolveClassWithoutErrorReporting(scope, userType); if (classifierDescriptor == null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java index 27d964e1656..334321bfaf2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java @@ -86,7 +86,7 @@ public class DataFlowValueFactory { } else if (expression instanceof JetThisExpression) { JetThisExpression thisExpression = (JetThisExpression) expression; - DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getThisReference()); + DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, thisExpression.getInstanceReference()); if (declarationDescriptor instanceof CallableDescriptor) { return Pair.create((Object) ((CallableDescriptor) declarationDescriptor).getReceiverParameter(), true); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java index 6e457d2ebce..d68055d33f3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/ChainedScope.java @@ -3,7 +3,6 @@ package org.jetbrains.jet.lang.resolve.scopes; import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; -import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import java.util.Collection; @@ -109,21 +108,6 @@ public class ChainedScope implements JetScope { return null; } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - if (DescriptorUtils.definesItsOwnThis(getContainingDeclaration())) { - return getContainingDeclaration(); - } - - for (JetScope jetScope : scopeChain) { - DeclarationDescriptor containingDeclaration = jetScope.getContainingDeclaration(); - if (DescriptorUtils.definesItsOwnThis(containingDeclaration)) { - return containingDeclaration; - } - } - return null; - } - @NotNull @Override public Collection getAllDescriptors() { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java index 6f4495e1bef..aa3123b79c8 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java @@ -17,7 +17,7 @@ public interface JetScope { @NotNull @Override public DeclarationDescriptor getContainingDeclaration() { - throw new UnsupportedOperationException(); + throw new UnsupportedOperationException("Don't take containing declaration of the EMPTY scope"); } @Override @@ -51,9 +51,6 @@ public interface JetScope { @Nullable PropertyDescriptor getPropertyByFieldReference(@NotNull String fieldName); - @Nullable - DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis(); - @NotNull Collection getAllDescriptors(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeImpl.java index b738d76a50c..589bee9496b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeImpl.java @@ -51,11 +51,6 @@ public abstract class JetScopeImpl implements JetScope { return null; } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - return null; - } - @NotNull @Override public Collection getAllDescriptors() { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/SubstitutingScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/SubstitutingScope.java index f09364216e1..a45bab80eda 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/SubstitutingScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/SubstitutingScope.java @@ -109,12 +109,6 @@ public class SubstitutingScope implements JetScope { throw new UnsupportedOperationException(); // TODO } - @Override - @Nullable - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - return workerScope.getDeclarationDescriptorForUnqualifiedThis(); - } - @NotNull @Override public Collection getAllDescriptors() { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java index 65e2693b630..81ee15a1873 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/WritableScopeImpl.java @@ -1,10 +1,12 @@ package org.jetbrains.jet.lang.resolve.scopes; -import com.google.common.collect.*; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import com.google.common.collect.SetMultimap; +import com.google.common.collect.Sets; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; -import org.jetbrains.jet.lang.resolve.DescriptorUtils; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.util.CommonSuppliers; @@ -51,14 +53,6 @@ public class WritableScopeImpl extends WritableScopeWithImports { return ownerDeclarationDescriptor; } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - if (DescriptorUtils.definesItsOwnThis(ownerDeclarationDescriptor)) { - return ownerDeclarationDescriptor; - } - return super.getDeclarationDescriptorForUnqualifiedThis(); - } - @Override public void importScope(@NotNull JetScope imported) { super.importScope(imported); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java index 549684f6fc5..52af4480db1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/ErrorUtils.java @@ -64,11 +64,6 @@ public class ErrorUtils { return null; // TODO : review } - @Override - public DeclarationDescriptor getDeclarationDescriptorForUnqualifiedThis() { - return ERROR_CLASS; // TODO : review - } - @NotNull @Override public Collection getAllDescriptors() { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index c4f2f06b8da..f78176228be 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -15,8 +15,10 @@ import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.constants.*; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; +import org.jetbrains.jet.lang.resolve.scopes.receivers.ClassReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; +import org.jetbrains.jet.lang.resolve.scopes.receivers.ThisReceiverDescriptor; import org.jetbrains.jet.lang.types.*; import org.jetbrains.jet.lexer.JetTokens; @@ -277,62 +279,101 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { @Override public JetType visitThisExpression(JetThisExpression expression, ExpressionTypingContext context) { JetType result = null; - ReceiverDescriptor thisReceiver = null; - String labelName = expression.getLabelName(); - if (labelName != null) { - thisReceiver = context.labelResolver.resolveThisLabel(expression, context, thisReceiver, labelName); - } - else { - thisReceiver = context.scope.getImplicitReceiver(); - - DeclarationDescriptor declarationDescriptorForUnqualifiedThis = context.scope.getDeclarationDescriptorForUnqualifiedThis(); - if (declarationDescriptorForUnqualifiedThis != null) { - context.trace.record(REFERENCE_TARGET, expression.getThisReference(), declarationDescriptorForUnqualifiedThis); - } - } + ReceiverDescriptor thisReceiver = resolveToReceiver(expression, context, false); if (thisReceiver != null) { if (!thisReceiver.exists()) { context.trace.report(NO_THIS.on(expression)); } else { - JetTypeReference superTypeQualifier = expression.getSuperTypeQualifier(); - if (superTypeQualifier != null) { - JetTypeElement superTypeElement = superTypeQualifier.getTypeElement(); - // Errors are reported by the parser - if (superTypeElement instanceof JetUserType) { - JetUserType typeElement = (JetUserType) superTypeElement; - - ClassifierDescriptor classifierCandidate = context.getTypeResolver().resolveClass(context.scope, typeElement); - if (classifierCandidate instanceof ClassDescriptor) { - ClassDescriptor superclass = (ClassDescriptor) classifierCandidate; - - JetType thisType = thisReceiver.getType(); - Collection supertypes = thisType.getConstructor().getSupertypes(); - TypeSubstitutor substitutor = TypeSubstitutor.create(thisType); - for (JetType declaredSupertype : supertypes) { - if (declaredSupertype.getConstructor().equals(superclass.getTypeConstructor())) { - result = substitutor.safeSubstitute(declaredSupertype, Variance.INVARIANT); - break; - } - } - if (result == null) { - context.trace.report(NOT_A_SUPERTYPE.on(superTypeElement)); - } - } - } - } - else { - result = thisReceiver.getType(); - } - if (result != null) { - context.trace.record(BindingContext.EXPRESSION_TYPE, expression.getThisReference(), result); - } + result = thisReceiver.getType(); + context.trace.record(BindingContext.EXPRESSION_TYPE, expression.getInstanceReference(), result); } } return DataFlowUtils.checkType(result, expression, context); } + @Override + public JetType visitSuperExpression(JetSuperExpression expression, ExpressionTypingContext context) { + if (!context.namespacesAllowed) { + context.trace.report(SUPER_IS_NOT_AN_EXPRESSION.on(expression, expression.getText())); + return null; + } + JetType result = null; + + ReceiverDescriptor thisReceiver = resolveToReceiver(expression, context, true); + if (thisReceiver == null) return null; + + if (!thisReceiver.exists()) { + context.trace.report(SUPER_NOT_AVAILABLE.on(expression)); + } + else { + JetType thisType = thisReceiver.getType(); + Collection supertypes = thisType.getConstructor().getSupertypes(); + TypeSubstitutor substitutor = TypeSubstitutor.create(thisType); + + JetTypeReference superTypeQualifier = expression.getSuperTypeQualifier(); + if (superTypeQualifier != null) { + JetType supertype = context.getTypeResolver().resolveType(context.scope, superTypeQualifier); + DeclarationDescriptor classifierCandidate = supertype.getConstructor().getDeclarationDescriptor(); + if (classifierCandidate instanceof ClassDescriptor) { + ClassDescriptor superclass = (ClassDescriptor) classifierCandidate; + + for (JetType declaredSupertype : supertypes) { + if (declaredSupertype.getConstructor().equals(superclass.getTypeConstructor())) { + result = substitutor.safeSubstitute(declaredSupertype, Variance.INVARIANT); + break; + } + } + } + if (result == null && !ErrorUtils.isErrorType(supertype)) { + context.trace.report(NOT_A_SUPERTYPE.on(superTypeQualifier)); + } + } + else { + if (supertypes.size() > 1) { + context.trace.report(AMBIGUOUS_SUPER.on(expression)); + } + else { + result = substitutor.substitute(supertypes.iterator().next(), Variance.INVARIANT); + } + } + if (result != null) { + context.trace.record(BindingContext.EXPRESSION_TYPE, expression.getInstanceReference(), result); + context.trace.record(BindingContext.REFERENCE_TARGET, expression.getInstanceReference(), result.getConstructor().getDeclarationDescriptor()); + } + } + return DataFlowUtils.checkType(result, expression, context); + } + + @Nullable + private ReceiverDescriptor resolveToReceiver(JetLabelQualifiedInstanceExpression expression, ExpressionTypingContext context, boolean onlyClassReceivers) { + ReceiverDescriptor thisReceiver = null; + String labelName = expression.getLabelName(); + if (labelName != null) { + thisReceiver = context.labelResolver.resolveThisLabel(expression.getInstanceReference(), expression.getTargetLabel(), context, thisReceiver, labelName); + } + else { + if (onlyClassReceivers) { + List receivers = Lists.newArrayList(); + context.scope.getImplicitReceiversHierarchy(receivers); + for (ReceiverDescriptor receiver : receivers) { + if (receiver instanceof ClassReceiver) { + thisReceiver = receiver; + break; + } + } + } + else { + thisReceiver = context.scope.getImplicitReceiver(); + } + if (thisReceiver instanceof ThisReceiverDescriptor) { + context.trace.record(REFERENCE_TARGET, expression.getInstanceReference(), ((ThisReceiverDescriptor) thisReceiver).getDeclarationDescriptor()); + } + } + return thisReceiver; + } + @Override public JetType visitBlockExpression(JetBlockExpression expression, ExpressionTypingContext context) { return context.getServices().getBlockReturnedType(context.scope, expression, CoercionStrategy.NO_COERCION, context); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java index e4a7da67786..c84fbf93516 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingContext.java @@ -65,6 +65,7 @@ import java.util.Map; public final Map> patternsToBoundVariableLists; public final LabelResolver labelResolver; + // true for positions on the lhs of a '.', i.e. allows namespace results and 'super' public final boolean namespacesAllowed; private CallResolver callResolver; diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java index 63e92541bd1..bcf5b82dcd3 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/LabelResolver.java @@ -106,10 +106,9 @@ public class LabelResolver { return result; } - public ReceiverDescriptor resolveThisLabel(JetThisExpression expression, ExpressionTypingContext context, ReceiverDescriptor thisReceiver, String labelName) { + public ReceiverDescriptor resolveThisLabel(JetReferenceExpression thisReference, JetSimpleNameExpression targetLabel, ExpressionTypingContext context, ReceiverDescriptor thisReceiver, String labelName) { Collection declarationsByLabel = context.scope.getDeclarationsByLabel(labelName); int size = declarationsByLabel.size(); - final JetSimpleNameExpression targetLabel = expression.getTargetLabel(); assert targetLabel != null; if (size == 1) { DeclarationDescriptor declarationDescriptor = declarationsByLabel.iterator().next(); @@ -127,7 +126,7 @@ public class LabelResolver { PsiElement element = context.trace.get(DESCRIPTOR_TO_DECLARATION, declarationDescriptor); assert element != null; context.trace.record(LABEL_TARGET, targetLabel, element); - context.trace.record(REFERENCE_TARGET, expression.getThisReference(), declarationDescriptor); + context.trace.record(REFERENCE_TARGET, thisReference, declarationDescriptor); } else if (size == 0) { JetElement element = resolveNamedLabel(labelName, targetLabel, false, context); @@ -137,7 +136,7 @@ public class LabelResolver { thisReceiver = ((FunctionDescriptor) declarationDescriptor).getReceiverParameter(); if (thisReceiver.exists()) { context.trace.record(LABEL_TARGET, targetLabel, element); - context.trace.record(REFERENCE_TARGET, expression.getThisReference(), declarationDescriptor); + context.trace.record(REFERENCE_TARGET, thisReference, declarationDescriptor); } } else { diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex index e13a8025175..95576d76e5a 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex @@ -168,6 +168,7 @@ LONG_TEMPLATE_ENTRY_END=\} "trait" { return JetTokens.TRAIT_KEYWORD ;} "throw" { return JetTokens.THROW_KEYWORD ;} "false" { return JetTokens.FALSE_KEYWORD ;} +"super" { return JetTokens.SUPER_KEYWORD ;} "when" { return JetTokens.WHEN_KEYWORD ;} "true" { return JetTokens.TRUE_KEYWORD ;} "type" { return JetTokens.TYPE_KEYWORD ;} diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/JetTokens.java b/compiler/frontend/src/org/jetbrains/jet/lexer/JetTokens.java index 1322d09776c..c66e06e3a60 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/JetTokens.java +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/JetTokens.java @@ -36,6 +36,7 @@ public interface JetTokens { JetKeywordToken TYPE_KEYWORD = JetKeywordToken.keyword("type"); JetKeywordToken CLASS_KEYWORD = JetKeywordToken.keyword("class"); JetKeywordToken THIS_KEYWORD = JetKeywordToken.keyword("this"); + JetKeywordToken SUPER_KEYWORD = JetKeywordToken.keyword("super"); JetKeywordToken VAL_KEYWORD = JetKeywordToken.keyword("val"); JetKeywordToken VAR_KEYWORD = JetKeywordToken.keyword("var"); JetKeywordToken FUN_KEYWORD = JetKeywordToken.keyword("fun"); @@ -145,7 +146,7 @@ public interface JetTokens { JetKeywordToken REF_KEYWORD = JetKeywordToken.softKeyword("ref"); TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD, TRAIT_KEYWORD, - THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD, + THIS_KEYWORD, SUPER_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, FOR_KEYWORD, NULL_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD, diff --git a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java index 0e2f7e09222..e2851597318 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lexer/_JetLexer.java @@ -1,4 +1,4 @@ -/* The following code was generated by JFlex 1.4.3 on 10/17/11 7:35 PM */ +/* The following code was generated by JFlex 1.4.3 on 10/19/11 2:50 PM */ /* It's an automatically generated code. Do not modify it. */ package org.jetbrains.jet.lexer; @@ -14,7 +14,7 @@ import org.jetbrains.jet.lexer.JetTokens; /** * This class is a scanner generated by * JFlex 1.4.3 - * on 10/17/11 7:35 PM from the specification file + * on 10/19/11 2:50 PM from the specification file * /Users/abreslav/work/jet/compiler/frontend/src/org/jetbrains/jet/lexer/Jet.flex */ class _JetLexer implements FlexLexer { @@ -122,26 +122,26 @@ class _JetLexer implements FlexLexer { private static final String ZZ_ACTION_PACKED_0 = "\4\0\1\1\1\2\1\3\1\4\2\1\1\5\1\6"+ "\1\7\1\2\1\10\1\11\1\12\1\13\1\14\1\15"+ - "\16\3\1\16\1\17\1\20\1\21\1\22\1\23\2\1"+ + "\17\3\1\16\1\17\1\20\1\21\1\22\1\23\2\1"+ "\1\24\1\25\1\26\1\27\1\30\1\31\1\32\1\33"+ "\1\34\2\35\1\36\1\0\1\37\1\40\1\0\1\41"+ "\1\42\1\0\1\43\1\0\1\44\1\0\1\45\1\0"+ "\1\46\1\47\1\50\1\51\1\52\1\43\2\2\1\43"+ "\1\53\1\54\1\55\1\56\2\12\1\0\2\3\1\57"+ - "\7\3\1\60\1\61\1\62\10\3\1\63\1\0\1\64"+ + "\10\3\1\60\1\61\1\62\10\3\1\63\1\0\1\64"+ "\1\65\1\66\1\67\1\70\1\71\1\72\1\73\1\74"+ "\1\75\1\76\1\0\1\77\1\100\1\0\1\101\1\43"+ "\1\3\2\0\1\50\1\102\4\0\1\103\2\3\1\104"+ - "\6\3\1\105\10\3\1\106\1\107\1\3\1\110\1\111"+ + "\7\3\1\105\10\3\1\106\1\107\1\3\1\110\1\111"+ "\1\112\1\113\1\114\1\115\1\0\1\40\1\44\1\45"+ - "\1\0\2\102\1\43\2\0\1\3\1\116\1\117\4\3"+ + "\1\0\2\102\1\43\2\0\1\3\1\116\1\117\5\3"+ "\1\120\1\121\1\3\1\122\2\3\1\123\2\3\1\124"+ - "\1\125\1\76\1\50\2\0\2\3\1\126\1\3\1\127"+ - "\1\130\1\3\1\131\1\132\1\133\1\103\2\3\1\134"+ - "\1\135\3\3\1\136\1\137"; + "\1\125\1\76\1\50\2\0\1\3\1\126\1\3\1\127"+ + "\1\3\1\130\1\131\1\3\1\132\1\133\1\134\1\103"+ + "\2\3\1\135\1\136\3\3\1\137\1\140"; private static int [] zzUnpackAction() { - int [] result = new int[212]; + int [] result = new int[217]; int offset = 0; offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result); return result; @@ -170,32 +170,33 @@ class _JetLexer implements FlexLexer { "\0\u0200\0\u0240\0\u0280\0\u02c0\0\u0300\0\u0340\0\u0380\0\u03c0"+ "\0\u0400\0\u0440\0\u0100\0\u0100\0\u0480\0\u04c0\0\u0500\0\u0540"+ "\0\u0580\0\u05c0\0\u0600\0\u0640\0\u0680\0\u06c0\0\u0700\0\u0740"+ - "\0\u0780\0\u07c0\0\u0800\0\u0840\0\u0100\0\u0880\0\u08c0\0\u0900"+ - "\0\u0940\0\u0980\0\u09c0\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100"+ - "\0\u0100\0\u0100\0\u0100\0\u0a00\0\u0a40\0\u0100\0\u0a80\0\u0100"+ - "\0\u0ac0\0\u0b00\0\u0100\0\u0100\0\u0b40\0\u0b80\0\u0bc0\0\u0c00"+ - "\0\u0c40\0\u0c80\0\u0cc0\0\u0100\0\u0d00\0\u0d40\0\u0100\0\u0100"+ - "\0\u0d80\0\u0dc0\0\u0e00\0\u0e40\0\u0100\0\u0100\0\u0100\0\u0100"+ - "\0\u0100\0\u0e80\0\u0ec0\0\u0f00\0\u0f40\0\u0f80\0\u0fc0\0\u1000"+ - "\0\u1040\0\u1080\0\u10c0\0\u1100\0\u1140\0\u0180\0\u0180\0\u0180"+ - "\0\u1180\0\u11c0\0\u1200\0\u1240\0\u1280\0\u12c0\0\u1300\0\u1340"+ - "\0\u0180\0\u1380\0\u13c0\0\u1400\0\u0100\0\u0100\0\u0100\0\u0100"+ - "\0\u0100\0\u0100\0\u0100\0\u0100\0\u1440\0\u1480\0\u0100\0\u0100"+ - "\0\u14c0\0\u0100\0\u1500\0\u0100\0\u1540\0\u1580\0\u15c0\0\u1600"+ - "\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0\0\u0100"+ - "\0\u1800\0\u1840\0\u1880\0\u18c0\0\u1900\0\u1940\0\u0180\0\u1980"+ - "\0\u19c0\0\u1a00\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40\0\u0180"+ - "\0\u0180\0\u1b80\0\u0180\0\u0180\0\u1bc0\0\u1bc0\0\u0100\0\u0100"+ - "\0\u1c00\0\u0100\0\u0100\0\u0100\0\u1c40\0\u1c80\0\u0100\0\u1cc0"+ - "\0\u1500\0\u1d00\0\u1d40\0\u0180\0\u0180\0\u1d80\0\u1dc0\0\u1e00"+ - "\0\u1e40\0\u0180\0\u0180\0\u1e80\0\u0180\0\u1ec0\0\u1f00\0\u0180"+ - "\0\u1f40\0\u1f80\0\u0180\0\u0100\0\u0100\0\u0100\0\u1fc0\0\u2000"+ - "\0\u2040\0\u2080\0\u0180\0\u20c0\0\u0180\0\u0180\0\u2100\0\u0180"+ - "\0\u0180\0\u0180\0\u0100\0\u2140\0\u2180\0\u0180\0\u0180\0\u21c0"+ - "\0\u2200\0\u2240\0\u0180\0\u0180"; + "\0\u0780\0\u07c0\0\u0800\0\u0840\0\u0880\0\u0100\0\u08c0\0\u0900"+ + "\0\u0940\0\u0980\0\u09c0\0\u0a00\0\u0100\0\u0100\0\u0100\0\u0100"+ + "\0\u0100\0\u0100\0\u0100\0\u0100\0\u0a40\0\u0a80\0\u0100\0\u0ac0"+ + "\0\u0100\0\u0b00\0\u0b40\0\u0100\0\u0100\0\u0b80\0\u0bc0\0\u0c00"+ + "\0\u0c40\0\u0c80\0\u0cc0\0\u0d00\0\u0100\0\u0d40\0\u0d80\0\u0100"+ + "\0\u0100\0\u0dc0\0\u0e00\0\u0e40\0\u0e80\0\u0100\0\u0100\0\u0100"+ + "\0\u0100\0\u0100\0\u0ec0\0\u0f00\0\u0f40\0\u0f80\0\u0fc0\0\u1000"+ + "\0\u1040\0\u1080\0\u10c0\0\u1100\0\u1140\0\u1180\0\u11c0\0\u0180"+ + "\0\u0180\0\u0180\0\u1200\0\u1240\0\u1280\0\u12c0\0\u1300\0\u1340"+ + "\0\u1380\0\u13c0\0\u0180\0\u1400\0\u1440\0\u1480\0\u0100\0\u0100"+ + "\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u0100\0\u14c0\0\u1500"+ + "\0\u0100\0\u0100\0\u1540\0\u0100\0\u1580\0\u0100\0\u15c0\0\u1600"+ + "\0\u1640\0\u1680\0\u16c0\0\u1700\0\u1740\0\u1780\0\u17c0\0\u1800"+ + "\0\u1840\0\u0100\0\u1880\0\u18c0\0\u1900\0\u1940\0\u1980\0\u19c0"+ + "\0\u1a00\0\u0180\0\u1a40\0\u1a80\0\u1ac0\0\u1b00\0\u1b40\0\u1b80"+ + "\0\u1bc0\0\u1c00\0\u0180\0\u0180\0\u1c40\0\u0180\0\u0180\0\u1c80"+ + "\0\u1c80\0\u0100\0\u0100\0\u1cc0\0\u0100\0\u0100\0\u0100\0\u1d00"+ + "\0\u1d40\0\u0100\0\u1d80\0\u1580\0\u1dc0\0\u1e00\0\u0180\0\u0180"+ + "\0\u1e40\0\u1e80\0\u1ec0\0\u1f00\0\u1f40\0\u0180\0\u0180\0\u1f80"+ + "\0\u0180\0\u1fc0\0\u2000\0\u0180\0\u2040\0\u2080\0\u0180\0\u0100"+ + "\0\u0100\0\u0100\0\u20c0\0\u2100\0\u2140\0\u0180\0\u2180\0\u0180"+ + "\0\u21c0\0\u0180\0\u0180\0\u2200\0\u0180\0\u0180\0\u0180\0\u0100"+ + "\0\u2240\0\u2280\0\u0180\0\u0180\0\u22c0\0\u2300\0\u2340\0\u0180"+ + "\0\u0180"; private static int [] zzUnpackRowMap() { - int [] result = new int[212]; + int [] result = new int[217]; int offset = 0; offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result); return result; @@ -221,209 +222,216 @@ class _JetLexer implements FlexLexer { "\1\5\1\6\1\7\1\10\1\7\1\5\1\11\1\12"+ "\1\13\1\14\1\15\1\10\1\16\2\7\1\17\1\7"+ "\1\20\1\7\1\21\1\5\1\22\1\23\1\24\1\25"+ - "\1\26\1\7\1\27\2\7\1\30\1\31\1\32\1\33"+ - "\1\7\1\34\1\35\1\7\1\36\3\7\1\37\1\7"+ - "\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+ + "\1\26\1\7\1\27\1\30\1\7\1\31\1\32\1\33"+ + "\1\34\1\7\1\35\1\36\1\7\1\37\3\7\1\40"+ + "\1\7\1\41\1\42\1\43\1\44\1\45\1\46\1\47"+ "\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\57"+ - "\1\60\1\61\1\62\1\63\7\64\1\65\3\64\1\66"+ - "\10\64\1\67\1\70\52\64\2\0\1\71\1\0\1\71"+ - "\1\0\1\72\6\0\2\71\1\0\1\71\1\0\1\71"+ - "\5\0\27\71\21\0\1\5\1\6\1\7\1\10\1\7"+ - "\1\5\1\11\1\12\1\13\1\14\1\15\1\10\1\16"+ - "\2\7\1\17\1\7\1\20\1\7\1\21\1\5\1\22"+ - "\1\73\1\74\1\25\1\26\1\7\1\27\2\7\1\30"+ - "\1\31\1\32\1\33\1\7\1\34\1\35\1\7\1\36"+ - "\3\7\1\37\1\7\1\40\1\41\1\42\1\43\1\44"+ - "\1\45\1\46\1\47\1\50\1\51\1\52\1\53\1\54"+ - "\1\55\1\56\1\57\1\60\1\61\1\62\1\63\101\0"+ - "\1\6\12\0\1\6\2\0\1\75\1\76\12\0\1\76"+ - "\45\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\27\7\24\0\1\10\7\0\1\10"+ - "\66\0\1\77\1\0\1\77\10\0\2\77\1\0\1\77"+ - "\1\0\1\77\5\0\27\77\23\0\1\100\1\0\1\100"+ - "\1\0\1\101\6\0\2\100\1\0\1\100\1\0\1\100"+ - "\5\0\27\100\23\0\1\102\1\0\1\102\1\0\1\103"+ - "\1\0\1\104\4\0\2\102\1\0\1\102\1\0\1\102"+ - "\5\0\27\102\32\0\1\105\1\106\45\0\1\107\77\0"+ - "\1\110\20\0\1\111\12\0\1\111\1\112\1\113\1\75"+ - "\1\76\12\0\1\76\10\0\1\113\34\0\1\114\12\0"+ - "\1\114\2\0\1\115\101\0\1\116\36\0\1\117\3\0"+ - "\1\120\13\0\13\21\1\0\7\21\1\121\1\122\53\21"+ - "\25\0\1\123\53\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\1\7\1\124\10\7"+ - "\1\125\14\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\4\7\1\126\22\7"+ + "\1\60\1\61\1\62\1\63\1\64\7\65\1\66\3\65"+ + "\1\67\10\65\1\70\1\71\52\65\2\0\1\72\1\0"+ + "\1\72\1\0\1\73\6\0\2\72\1\0\1\72\1\0"+ + "\1\72\5\0\27\72\21\0\1\5\1\6\1\7\1\10"+ + "\1\7\1\5\1\11\1\12\1\13\1\14\1\15\1\10"+ + "\1\16\2\7\1\17\1\7\1\20\1\7\1\21\1\5"+ + "\1\22\1\74\1\75\1\25\1\26\1\7\1\27\1\30"+ + "\1\7\1\31\1\32\1\33\1\34\1\7\1\35\1\36"+ + "\1\7\1\37\3\7\1\40\1\7\1\41\1\42\1\43"+ + "\1\44\1\45\1\46\1\47\1\50\1\51\1\52\1\53"+ + "\1\54\1\55\1\56\1\57\1\60\1\61\1\62\1\63"+ + "\1\64\101\0\1\6\12\0\1\6\2\0\1\76\1\77"+ + "\12\0\1\77\45\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\27\7\24\0\1\10"+ + "\7\0\1\10\66\0\1\100\1\0\1\100\10\0\2\100"+ + "\1\0\1\100\1\0\1\100\5\0\27\100\23\0\1\101"+ + "\1\0\1\101\1\0\1\102\6\0\2\101\1\0\1\101"+ + "\1\0\1\101\5\0\27\101\23\0\1\103\1\0\1\103"+ + "\1\0\1\104\1\0\1\105\4\0\2\103\1\0\1\103"+ + "\1\0\1\103\5\0\27\103\32\0\1\106\1\107\45\0"+ + "\1\110\77\0\1\111\20\0\1\112\12\0\1\112\1\113"+ + "\1\114\1\76\1\77\12\0\1\77\10\0\1\114\34\0"+ + "\1\115\12\0\1\115\2\0\1\116\101\0\1\117\36\0"+ + "\1\120\3\0\1\121\13\0\13\21\1\0\7\21\1\122"+ + "\1\123\53\21\25\0\1\124\53\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\7"+ + "\1\125\10\7\1\126\14\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\4\7"+ + "\1\127\22\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\20\7\1\130\6\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\20\7\1\127\6\7\22\0\2\7"+ + "\1\0\1\7\5\0\12\7\1\131\14\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\7\7\1\130\10\7\1\131\6\7\22\0\2\7"+ + "\5\0\7\7\1\132\10\7\1\133\6\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\14\7\1\132\12\7\22\0\2\7\1\0\2\7"+ + "\5\0\14\7\1\134\12\7\22\0\2\7\1\0\2\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\13\7"+ - "\1\133\3\7\1\134\3\7\1\135\3\7\22\0\2\7"+ + "\1\135\3\7\1\136\3\7\1\137\3\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\1\136\3\7\1\137\15\7\1\140\4\7\22\0"+ + "\5\0\1\140\3\7\1\141\15\7\1\142\4\7\22\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\3\7\1\141\23\7\22\0\2\7\1\0"+ + "\1\7\5\0\3\7\1\143\23\7\22\0\2\7\1\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\13\7\1\142\13\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\17\7\1\143"+ + "\13\7\1\144\13\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\17\7\1\145"+ "\7\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\1\7\1\144\5\7\1\145"+ - "\2\7\1\146\14\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\17\7\1\147"+ + "\1\7\1\0\1\7\5\0\1\7\1\146\5\7\1\147"+ + "\2\7\1\150\14\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\17\7\1\151"+ "\7\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\1\7\1\150\25\7\22\0"+ + "\1\7\1\0\1\7\5\0\1\7\1\152\25\7\22\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\7\7\1\151\17\7\62\0\1\152\16\0"+ - "\1\153\77\0\1\154\3\0\1\155\73\0\1\156\1\0"+ - "\1\157\75\0\1\160\77\0\1\161\104\0\1\162\100\0"+ - "\1\163\71\0\1\164\17\0\7\64\1\0\3\64\1\0"+ - "\10\64\2\0\52\64\2\0\1\165\1\0\1\165\1\0"+ - "\1\166\6\0\2\165\1\0\1\165\1\0\1\165\3\0"+ - "\1\167\1\0\27\165\21\0\13\170\1\0\64\170\1\0"+ - "\2\71\1\0\2\71\6\0\3\71\1\0\1\71\1\0"+ - "\1\71\5\0\27\71\23\0\1\171\1\0\1\171\10\0"+ - "\2\171\1\0\1\171\1\0\1\171\5\0\27\171\22\0"+ - "\1\114\12\0\1\114\2\0\1\172\61\0\1\173\12\0"+ - "\1\173\4\0\1\173\40\0\1\173\16\0\2\77\1\0"+ - "\2\77\1\174\5\0\3\77\1\0\1\77\1\0\1\77"+ - "\5\0\27\77\22\0\2\100\1\0\2\100\6\0\3\100"+ - "\1\0\1\100\1\0\1\100\5\0\27\100\23\0\1\175"+ - "\1\0\1\175\10\0\2\175\1\0\1\175\1\0\1\175"+ - "\5\0\27\175\22\0\2\102\1\0\2\102\6\0\3\102"+ - "\1\0\1\102\1\0\1\102\5\0\27\102\23\0\1\176"+ - "\1\0\1\176\10\0\2\176\1\0\1\176\1\0\1\176"+ - "\5\0\27\176\21\0\13\105\1\0\64\105\12\177\1\200"+ - "\65\177\1\0\1\111\12\0\1\111\2\0\1\201\1\76"+ - "\12\0\1\76\45\0\2\112\11\0\1\112\1\0\1\112"+ - "\1\202\1\112\1\0\1\203\6\0\1\112\1\0\1\112"+ - "\1\0\1\203\1\112\5\0\1\112\5\0\1\112\3\0"+ - "\1\112\22\0\1\113\12\0\1\113\2\0\1\204\61\0"+ - "\1\114\12\0\1\114\3\0\1\76\12\0\1\76\44\0"+ - "\13\21\1\0\64\21\25\0\1\205\53\0\2\7\1\0"+ + "\1\7\5\0\7\7\1\153\17\7\62\0\1\154\16\0"+ + "\1\155\77\0\1\156\3\0\1\157\73\0\1\160\1\0"+ + "\1\161\75\0\1\162\77\0\1\163\104\0\1\164\100\0"+ + "\1\165\71\0\1\166\17\0\7\65\1\0\3\65\1\0"+ + "\10\65\2\0\52\65\2\0\1\167\1\0\1\167\1\0"+ + "\1\170\6\0\2\167\1\0\1\167\1\0\1\167\3\0"+ + "\1\171\1\0\27\167\21\0\13\172\1\0\64\172\1\0"+ + "\2\72\1\0\2\72\6\0\3\72\1\0\1\72\1\0"+ + "\1\72\5\0\27\72\23\0\1\173\1\0\1\173\10\0"+ + "\2\173\1\0\1\173\1\0\1\173\5\0\27\173\22\0"+ + "\1\115\12\0\1\115\2\0\1\174\61\0\1\175\12\0"+ + "\1\175\4\0\1\175\40\0\1\175\16\0\2\100\1\0"+ + "\2\100\1\176\5\0\3\100\1\0\1\100\1\0\1\100"+ + "\5\0\27\100\22\0\2\101\1\0\2\101\6\0\3\101"+ + "\1\0\1\101\1\0\1\101\5\0\27\101\23\0\1\177"+ + "\1\0\1\177\10\0\2\177\1\0\1\177\1\0\1\177"+ + "\5\0\27\177\22\0\2\103\1\0\2\103\6\0\3\103"+ + "\1\0\1\103\1\0\1\103\5\0\27\103\23\0\1\200"+ + "\1\0\1\200\10\0\2\200\1\0\1\200\1\0\1\200"+ + "\5\0\27\200\21\0\13\106\1\0\64\106\12\201\1\202"+ + "\65\201\1\0\1\112\12\0\1\112\2\0\1\203\1\77"+ + "\12\0\1\77\45\0\2\113\11\0\1\113\1\0\1\113"+ + "\1\204\1\113\1\0\1\205\6\0\1\113\1\0\1\113"+ + "\1\0\1\205\1\113\5\0\1\113\5\0\1\113\3\0"+ + "\1\113\22\0\1\114\12\0\1\114\2\0\1\206\61\0"+ + "\1\115\12\0\1\115\3\0\1\77\12\0\1\77\44\0"+ + "\13\21\1\0\64\21\25\0\1\207\53\0\2\7\1\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\2\7\1\206\24\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\20\7\1\207"+ + "\2\7\1\210\24\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\20\7\1\211"+ "\6\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\27\7\2\0\1\210\17\0"+ + "\1\7\1\0\1\7\5\0\27\7\2\0\1\212\17\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\4\7\1\211\22\7\22\0\2\7\1\0"+ + "\1\7\5\0\4\7\1\213\22\7\22\0\2\7\1\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\1\212\26\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\1\7\1\213\25\7"+ + "\5\7\1\214\21\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\1\215\26\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\15\7\1\214\11\7\22\0\2\7"+ + "\1\0\1\7\5\0\1\7\1\216\25\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\1\7\1\215\10\7\1\216\10\7\1\217\3\7"+ - "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\11\7\1\220\1\7\1\221\13\7"+ - "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\5\7\1\222\21\7\22\0\2\7"+ + "\5\0\15\7\1\217\11\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\7"+ + "\1\220\10\7\1\221\10\7\1\222\3\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\10\7\1\223\16\7\22\0\2\7\1\0\2\7"+ - "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+ - "\1\224\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\3\7\1\225\5\7"+ - "\1\226\15\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\20\7\1\227\6\7"+ - "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\13\7\1\230\13\7\22\0\2\7"+ + "\5\0\11\7\1\223\1\7\1\224\13\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\1\231\26\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\11\7\1\232"+ - "\15\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\13\7\1\233\4\7\1\234"+ - "\6\7\51\0\1\235\3\0\1\236\123\0\1\237\77\0"+ - "\1\240\20\0\2\165\1\0\2\165\6\0\3\165\1\0"+ - "\1\165\1\0\1\165\5\0\27\165\23\0\1\241\1\0"+ - "\1\241\10\0\2\241\1\0\1\241\1\0\1\241\5\0"+ - "\27\241\22\0\2\171\1\0\2\171\1\242\5\0\3\171"+ - "\1\0\1\171\1\0\1\171\5\0\27\171\22\0\1\173"+ - "\12\0\1\173\64\0\2\175\1\0\2\175\1\243\5\0"+ - "\3\175\1\0\1\175\1\0\1\175\5\0\27\175\22\0"+ - "\2\176\1\0\2\176\1\244\5\0\3\176\1\0\1\176"+ - "\1\0\1\176\5\0\27\176\21\0\12\177\1\245\65\177"+ - "\11\246\1\247\1\200\65\246\1\0\1\114\12\0\1\114"+ - "\64\0\2\250\11\0\1\250\1\0\1\250\1\172\1\250"+ - "\10\0\1\250\1\0\1\250\2\0\1\250\5\0\1\250"+ - "\5\0\1\250\3\0\1\250\22\0\1\173\12\0\1\173"+ - "\4\0\1\251\40\0\1\251\34\0\1\172\60\0\25\205"+ - "\1\252\52\205\1\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\3\7\1\253\23\7"+ - "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\20\7\1\254\6\7\22\0\2\7"+ - "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\3\7\1\255\23\7\22\0\2\7\1\0\2\7"+ + "\5\0\5\7\1\225\21\7\22\0\2\7\1\0\2\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\10\7"+ - "\1\256\16\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\4\7\1\257\22\7"+ + "\1\226\16\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\3\7\1\227\23\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\3\7\1\260\23\7\22\0\2\7"+ + "\1\0\1\7\5\0\3\7\1\230\5\7\1\231\15\7"+ + "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ + "\1\0\1\7\5\0\20\7\1\232\6\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\11\7\1\261\15\7\22\0\2\7\1\0\2\7"+ + "\5\0\13\7\1\233\13\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\234"+ + "\26\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\11\7\1\235\15\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\13\7\1\236\4\7\1\237\6\7\51\0"+ + "\1\240\3\0\1\241\123\0\1\242\77\0\1\243\20\0"+ + "\2\167\1\0\2\167\6\0\3\167\1\0\1\167\1\0"+ + "\1\167\5\0\27\167\23\0\1\244\1\0\1\244\10\0"+ + "\2\244\1\0\1\244\1\0\1\244\5\0\27\244\22\0"+ + "\2\173\1\0\2\173\1\245\5\0\3\173\1\0\1\173"+ + "\1\0\1\173\5\0\27\173\22\0\1\175\12\0\1\175"+ + "\64\0\2\177\1\0\2\177\1\246\5\0\3\177\1\0"+ + "\1\177\1\0\1\177\5\0\27\177\22\0\2\200\1\0"+ + "\2\200\1\247\5\0\3\200\1\0\1\200\1\0\1\200"+ + "\5\0\27\200\21\0\12\201\1\250\65\201\11\251\1\252"+ + "\1\202\65\251\1\0\1\115\12\0\1\115\64\0\2\253"+ + "\11\0\1\253\1\0\1\253\1\174\1\253\10\0\1\253"+ + "\1\0\1\253\2\0\1\253\5\0\1\253\5\0\1\253"+ + "\3\0\1\253\22\0\1\175\12\0\1\175\4\0\1\254"+ + "\40\0\1\254\34\0\1\174\60\0\25\207\1\255\52\207"+ + "\1\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ + "\1\0\1\7\5\0\3\7\1\256\23\7\22\0\2\7"+ + "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ + "\5\0\20\7\1\257\6\7\22\0\2\7\1\0\2\7"+ "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+ - "\1\262\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\4\7\1\263\22\7"+ + "\1\260\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\3\7\1\261\23\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\7\7\1\264\17\7\22\0\2\7"+ + "\1\0\1\7\5\0\10\7\1\262\16\7\22\0\2\7"+ "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ - "\5\0\3\7\1\265\23\7\22\0\2\7\1\0\2\7"+ - "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\12\7"+ - "\1\266\14\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\1\7\1\267\25\7"+ + "\5\0\4\7\1\263\22\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\3\7"+ + "\1\264\23\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\11\7\1\265\15\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\1\270\26\7\22\0\2\7\1\0"+ - "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\20\7\1\271\6\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\272"+ - "\22\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\4\7\1\273\22\7\22\0"+ - "\2\274\1\0\2\274\6\0\3\274\1\0\1\274\1\0"+ - "\1\274\5\0\27\274\22\0\2\241\1\0\2\241\1\275"+ - "\5\0\3\241\1\0\1\241\1\0\1\241\5\0\27\241"+ - "\21\0\11\177\1\276\1\245\65\177\12\246\1\277\65\246"+ - "\1\0\2\250\11\0\1\250\1\0\1\250\1\0\1\250"+ - "\1\0\1\203\6\0\1\250\1\0\1\250\1\0\1\203"+ - "\1\250\5\0\1\250\5\0\1\250\3\0\1\250\21\0"+ - "\25\205\1\300\52\205\1\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\4\7\1\301"+ - "\22\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\11\7\1\302\15\7\22\0"+ - "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\4\7\1\303\22\7\22\0\2\7\1\0"+ - "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\6\7\1\304\20\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\10\7\1\305"+ - "\16\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\16\7\1\306\10\7\22\0"+ - "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\13\7\1\307\13\7\22\0\2\7\1\0"+ - "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\21\7\1\310\5\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\311"+ - "\23\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\3\7\1\312\23\7\21\0"+ - "\11\246\1\247\1\277\65\246\25\205\1\313\52\205\1\0"+ - "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\5\7\1\314\21\7\22\0\2\7\1\0"+ - "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\1\315\26\7\22\0\2\7\1\0\2\7\6\0\3\7"+ - "\1\0\1\7\1\0\1\7\5\0\10\7\1\316\16\7"+ + "\1\0\1\7\5\0\3\7\1\266\23\7\22\0\2\7"+ + "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ + "\5\0\4\7\1\267\22\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\7\7"+ + "\1\270\17\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\3\7\1\271\23\7"+ "\22\0\2\7\1\0\2\7\6\0\3\7\1\0\1\7"+ - "\1\0\1\7\5\0\1\317\26\7\22\0\2\7\1\0"+ - "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\1\7\1\320\25\7\22\0\2\7\1\0\2\7\6\0"+ - "\3\7\1\0\1\7\1\0\1\7\5\0\12\7\1\321"+ - "\14\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ - "\1\7\1\0\1\7\5\0\6\7\1\322\20\7\22\0"+ + "\1\0\1\7\5\0\12\7\1\272\14\7\22\0\2\7"+ + "\1\0\2\7\6\0\3\7\1\0\1\7\1\0\1\7"+ + "\5\0\1\7\1\273\25\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\1\274"+ + "\26\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\20\7\1\275\6\7\22\0"+ "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ - "\1\7\5\0\3\7\1\323\23\7\22\0\2\7\1\0"+ + "\1\7\5\0\4\7\1\276\22\7\22\0\2\7\1\0"+ "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ - "\3\7\1\324\23\7\21\0"; + "\4\7\1\277\22\7\22\0\2\300\1\0\2\300\6\0"+ + "\3\300\1\0\1\300\1\0\1\300\5\0\27\300\22\0"+ + "\2\244\1\0\2\244\1\301\5\0\3\244\1\0\1\244"+ + "\1\0\1\244\5\0\27\244\21\0\11\201\1\302\1\250"+ + "\65\201\12\251\1\303\65\251\1\0\2\253\11\0\1\253"+ + "\1\0\1\253\1\0\1\253\1\0\1\205\6\0\1\253"+ + "\1\0\1\253\1\0\1\205\1\253\5\0\1\253\5\0"+ + "\1\253\3\0\1\253\21\0\25\207\1\304\52\207\1\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\4\7\1\305\22\7\22\0\2\7\1\0"+ + "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ + "\13\7\1\306\13\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\11\7\1\307"+ + "\15\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\4\7\1\310\22\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\6\7\1\311\20\7\22\0\2\7\1\0"+ + "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ + "\10\7\1\312\16\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\16\7\1\313"+ + "\10\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\13\7\1\314\13\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\21\7\1\315\5\7\22\0\2\7\1\0"+ + "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ + "\3\7\1\316\23\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\3\7\1\317"+ + "\23\7\21\0\11\251\1\252\1\303\65\251\25\207\1\320"+ + "\52\207\1\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\5\7\1\321\21\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\1\322\26\7\22\0\2\7\1\0\2\7"+ + "\6\0\3\7\1\0\1\7\1\0\1\7\5\0\10\7"+ + "\1\323\16\7\22\0\2\7\1\0\2\7\6\0\3\7"+ + "\1\0\1\7\1\0\1\7\5\0\1\324\26\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\1\7\1\325\25\7\22\0\2\7\1\0"+ + "\2\7\6\0\3\7\1\0\1\7\1\0\1\7\5\0"+ + "\12\7\1\326\14\7\22\0\2\7\1\0\2\7\6\0"+ + "\3\7\1\0\1\7\1\0\1\7\5\0\6\7\1\327"+ + "\20\7\22\0\2\7\1\0\2\7\6\0\3\7\1\0"+ + "\1\7\1\0\1\7\5\0\3\7\1\330\23\7\22\0"+ + "\2\7\1\0\2\7\6\0\3\7\1\0\1\7\1\0"+ + "\1\7\5\0\3\7\1\331\23\7\21\0"; private static int [] zzUnpackTrans() { - int [] result = new int[8832]; + int [] result = new int[9088]; int offset = 0; offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result); return result; @@ -464,17 +472,17 @@ class _JetLexer implements FlexLexer { private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute(); private static final String ZZ_ATTRIBUTE_PACKED_0 = - "\4\0\1\11\15\1\2\11\20\1\1\11\6\1\10\11"+ + "\4\0\1\11\15\1\2\11\21\1\1\11\6\1\10\11"+ "\2\1\1\11\1\0\1\11\1\1\1\0\2\11\1\0"+ "\1\1\1\0\1\1\1\0\1\1\1\0\1\11\2\1"+ - "\2\11\4\1\5\11\1\1\1\0\26\1\1\0\2\1"+ + "\2\11\4\1\5\11\1\1\1\0\27\1\1\0\2\1"+ "\10\11\1\1\1\0\2\11\1\0\1\11\1\1\1\11"+ - "\2\0\2\1\4\0\3\1\1\11\26\1\2\11\1\0"+ - "\3\11\1\0\1\1\1\11\1\1\2\0\21\1\3\11"+ - "\2\0\12\1\1\11\11\1"; + "\2\0\2\1\4\0\3\1\1\11\27\1\2\11\1\0"+ + "\3\11\1\0\1\1\1\11\1\1\2\0\22\1\3\11"+ + "\2\0\13\1\1\11\11\1"; private static int [] zzUnpackAttribute() { - int [] result = new int[212]; + int [] result = new int[217]; int offset = 0; offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result); return result; @@ -808,23 +816,23 @@ class _JetLexer implements FlexLexer { case 3: { return JetTokens.IDENTIFIER; } - case 96: break; + case 97: break; case 11: { pushState(STRING); return JetTokens.OPEN_QUOTE; } - case 97: break; + case 98: break; case 70: { return JetTokens.FOR_KEYWORD ; } - case 98: break; - case 93: + case 99: break; + case 94: { return JetTokens.RETURN_KEYWORD ; } - case 99: break; + case 100: break; case 78: { return JetTokens.NULL_KEYWORD ; } - case 100: break; + case 101: break; case 34: { if (lBraceCount == 0) { popState(); @@ -833,365 +841,369 @@ class _JetLexer implements FlexLexer { lBraceCount--; return JetTokens.RBRACE; } - case 101: break; + case 102: break; case 18: { return JetTokens.LT ; } - case 102: break; + case 103: break; case 51: { return JetTokens.DO_KEYWORD ; } - case 103: break; + case 104: break; case 17: { return JetTokens.PLUS ; } - case 104: break; + case 105: break; case 67: { return JetTokens.RAW_STRING_LITERAL; } - case 105: break; + case 106: break; case 55: { return JetTokens.PLUSEQ ; } - case 106: break; + case 107: break; case 27: { return JetTokens.COMMA ; } - case 107: break; + case 108: break; case 19: { return JetTokens.GT ; } - case 108: break; + case 109: break; case 4: { return JetTokens.WHITE_SPACE; } - case 109: break; + case 110: break; case 24: { return JetTokens.RPAR ; } - case 110: break; + case 111: break; case 54: { return JetTokens.DOUBLE_ARROW; } - case 111: break; + case 112: break; case 80: { return JetTokens.TRUE_KEYWORD ; } - case 112: break; + case 113: break; case 36: { return JetTokens.FIELD_IDENTIFIER; } - case 113: break; + case 114: break; case 59: { return JetTokens.ANDAND ; } - case 114: break; + case 115: break; case 63: { pushState(LONG_TEMPLATE_ENTRY); return JetTokens.LONG_TEMPLATE_ENTRY_START; } - case 115: break; + case 116: break; case 66: { return JetTokens.DOC_COMMENT; } - case 116: break; + case 117: break; case 35: { return JetTokens.FLOAT_LITERAL; } - case 117: break; + case 118: break; case 39: { return JetTokens.EOL_COMMENT; } - case 118: break; + case 119: break; case 83: { return JetTokens.WHEN_KEYWORD ; } - case 119: break; + case 120: break; case 25: { return JetTokens.COLON ; } - case 120: break; + case 121: break; case 57: { return JetTokens.LTEQ ; } - case 121: break; + case 122: break; case 46: { return JetTokens.ARROW ; } - case 122: break; + case 123: break; case 32: { popState(); return JetTokens.IDENTIFIER; } - case 123: break; + case 124: break; case 21: { return JetTokens.LBRACKET ; } - case 124: break; + case 125: break; case 65: { yypushback(2); return JetTokens.INTEGER_LITERAL; } - case 125: break; + case 126: break; case 10: { return JetTokens.CHARACTER_LITERAL; } - case 126: break; + case 127: break; case 72: { return JetTokens.VAR_KEYWORD ; } - case 127: break; + case 128: break; case 58: { return JetTokens.GTEQ ; } - case 128: break; + case 129: break; case 2: { return JetTokens.INTEGER_LITERAL; } - case 129: break; + case 130: break; case 13: { return JetTokens.RBRACE ; } - case 130: break; - case 86: + case 131: break; + case 87: { return JetTokens.CLASS_KEYWORD ; } - case 131: break; + case 132: break; case 14: { return JetTokens.EXCL ; } - case 132: break; + case 133: break; case 69: { return JetTokens.TRY_KEYWORD ; } - case 133: break; + case 134: break; case 52: { return JetTokens.EXCLEQ ; } - case 134: break; + case 135: break; case 45: { return JetTokens.MINUSEQ ; } - case 135: break; - case 88: + case 136: break; + case 89: { return JetTokens.THROW_KEYWORD ; } - case 136: break; - case 90: + case 137: break; + case 86: + { return JetTokens.SUPER_KEYWORD ; + } + case 138: break; + case 91: { return JetTokens.WHILE_KEYWORD ; } - case 137: break; + case 139: break; case 44: { return JetTokens.MINUSMINUS; } - case 138: break; - case 94: + case 140: break; + case 95: { return JetTokens.CONTINUE_KEYWORD ; } - case 139: break; + case 141: break; case 74: { return JetTokens.NOT_IN; } - case 140: break; + case 142: break; case 38: { return JetTokens.ATAT ; } - case 141: break; + case 143: break; case 6: { return JetTokens.DIV ; } - case 142: break; + case 144: break; case 37: { return JetTokens.LABEL_IDENTIFIER; } - case 143: break; + case 145: break; case 29: { return JetTokens.REGULAR_STRING_PART; } - case 144: break; + case 146: break; case 16: { return JetTokens.QUEST ; } - case 145: break; + case 147: break; case 60: { return JetTokens.OROR ; } - case 146: break; + case 148: break; case 20: { return JetTokens.PERC ; } - case 147: break; + case 149: break; case 76: { return JetTokens.EXCLEQEQEQ; } - case 148: break; + case 150: break; case 61: { return JetTokens.PERCEQ ; } - case 149: break; + case 151: break; case 43: { return JetTokens.RANGE ; } - case 150: break; + case 152: break; case 1: { return TokenType.BAD_CHARACTER; } - case 151: break; - case 95: + case 153: break; + case 96: { return JetTokens.NAMESPACE_KEYWORD ; } - case 152: break; + case 154: break; case 75: { return JetTokens.NOT_IS; } - case 153: break; + case 155: break; case 7: { return JetTokens.MUL ; } - case 154: break; + case 156: break; case 22: { return JetTokens.RBRACKET ; } - case 155: break; + case 157: break; case 56: { return JetTokens.PLUSPLUS ; } - case 156: break; + case 158: break; case 81: { return JetTokens.THIS_KEYWORD ; } - case 157: break; + case 159: break; case 8: { return JetTokens.DOT ; } - case 158: break; + case 160: break; case 26: { return JetTokens.SEMICOLON ; } - case 159: break; + case 161: break; case 50: { return JetTokens.IF_KEYWORD ; } - case 160: break; + case 162: break; case 64: { return JetTokens.ESCAPE_SEQUENCE; } - case 161: break; + case 163: break; case 31: { popState(); return JetTokens.CLOSING_QUOTE; } - case 162: break; + case 164: break; case 15: { return JetTokens.EQ ; } - case 163: break; + case 165: break; case 5: { return JetTokens.AT ; } - case 164: break; + case 166: break; case 68: { return JetTokens.AS_SAFE; } - case 165: break; + case 167: break; case 23: { return JetTokens.LPAR ; } - case 166: break; + case 168: break; case 9: { return JetTokens.MINUS ; } - case 167: break; - case 91: + case 169: break; + case 92: { return JetTokens.FALSE_KEYWORD ; } - case 168: break; + case 170: break; case 82: { return JetTokens.TYPE_KEYWORD ; } - case 169: break; + case 171: break; case 71: { return JetTokens.FUN_KEYWORD ; } - case 170: break; + case 172: break; case 49: { return JetTokens.IS_KEYWORD ; } - case 171: break; + case 173: break; case 30: { popState(); yypushback(1); return JetTokens.DANGLING_NEWLINE; } - case 172: break; + case 174: break; case 33: { lBraceCount++; return JetTokens.LBRACE; } - case 173: break; + case 175: break; case 85: { yypushback(3); return JetTokens.EXCL; } - case 174: break; + case 176: break; case 41: { return JetTokens.DIVEQ ; } - case 175: break; + case 177: break; case 79: { return JetTokens.ELSE_KEYWORD ; } - case 176: break; + case 178: break; case 47: { return JetTokens.AS_KEYWORD ; } - case 177: break; + case 179: break; case 48: { return JetTokens.IN_KEYWORD ; } - case 178: break; + case 180: break; case 53: { return JetTokens.EQEQ ; } - case 179: break; + case 181: break; case 77: { return JetTokens.EQEQEQ ; } - case 180: break; + case 182: break; case 73: { return JetTokens.VAL_KEYWORD ; } - case 181: break; + case 183: break; case 84: { return JetTokens.CAPITALIZED_THIS_KEYWORD ; } - case 182: break; + case 184: break; case 42: { return JetTokens.MULTEQ ; } - case 183: break; + case 185: break; case 62: { pushState(SHORT_TEMPLATE_ENTRY); yypushback(yylength() - 1); return JetTokens.SHORT_TEMPLATE_ENTRY_START; } - case 184: break; + case 186: break; case 12: { return JetTokens.LBRACE ; } - case 185: break; - case 92: + case 187: break; + case 93: { return JetTokens.OBJECT_KEYWORD ; } - case 186: break; - case 89: + case 188: break; + case 90: { return JetTokens.BREAK_KEYWORD ; } - case 187: break; + case 189: break; case 40: { return JetTokens.BLOCK_COMMENT; } - case 188: break; - case 87: + case 190: break; + case 88: { return JetTokens.TRAIT_KEYWORD ; } - case 189: break; + case 191: break; case 28: { return JetTokens.HASH ; } - case 190: break; + case 192: break; default: if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { zzAtEOF = true; diff --git a/grammar/src/class.grm b/grammar/src/class.grm index 8bf1e016edd..56cd2938ad0 100644 --- a/grammar/src/class.grm +++ b/grammar/src/class.grm @@ -19,7 +19,7 @@ internal class Example>(protected val x : Foo, y : So class : modifiers ("class" | "trait") SimpleName typeParameters? - modifiers ("(" primaryConstructorParameter{","} ")")? + modifiers ("(" functionParameter{","} ")")? (":" annotations delegationSpecifier{","})? typeConstraints (classBody? | enumClassBody) diff --git a/grammar/src/expressions.grm b/grammar/src/expressions.grm index fafe44f37f0..af07f14c2e9 100644 --- a/grammar/src/expressions.grm +++ b/grammar/src/expressions.grm @@ -16,7 +16,7 @@ h3. Precedence | |Elvis|{{?:}} | | |Named checks|{{in}}, {{\!in}}, {{is}}, {{\!is}} | | |Comparison|{{<}}, {{>}}, {{<=}}, {{>=}} | -| |Equality|{{==}}, {{\!==}}, {{===}}, {{\!===}} | +| |Equality|{{==}}, {{\!==}}| | |Conjunction|{{&&}}| | |Disjunction|{{\|\|}}| | |Arrow|{{\->}}| @@ -113,7 +113,8 @@ atomicExpression : literalConstant : functionLiteral : tupleLiteral - : "this" label? ("<" type ">")? + : "this" label? + : "super" ("<" type ">")? label? : if : when : try @@ -184,7 +185,7 @@ comparisonOperation ; equalityOperation - : "!=" : "==" : "===" : "!==" + : "!=" : "==" ; assignmentOperator diff --git a/idea/testData/checkerWithErrorTypes/quick/Super.jet b/idea/testData/checkerWithErrorTypes/quick/Super.jet new file mode 100644 index 00000000000..4fdbd177e85 --- /dev/null +++ b/idea/testData/checkerWithErrorTypes/quick/Super.jet @@ -0,0 +1,49 @@ +namespace example; + +trait T { + fun foo() {} +} +open class C() { + fun bar() {} +} + +class A() : C(), T { + + fun test() { + super + super + super.foo() + super.foo() + super.bar() + super@A.foo() + super@A.bar() + super<E>.bar() + super<E>@A.bar() + super<Int>.foo() + super<>.foo() + super<fun() : Unit>.foo() + super<()>.foo() + super@B.foo() + super@B.bar() + } + + class B : T { + fun test() { + super.foo(); + super<C>.bar() + super@A.bar() + super@A.foo() + super@B.foo() + super<C>@B.foo() + super.foo() + super + super + } + } +} + +fun foo() { + super + super.foo() + super.foo() +} \ No newline at end of file diff --git a/idea/testData/psi/Labels.jet b/idea/testData/psi/Labels.jet index 57f1eb85da4..43299ecec35 100644 --- a/idea/testData/psi/Labels.jet +++ b/idea/testData/psi/Labels.jet @@ -53,8 +53,8 @@ fun foo() { this@a this@@ - this - this@ - this@a - this@@ + super + super@ + super@a + super@@ } \ No newline at end of file diff --git a/idea/testData/psi/Labels.txt b/idea/testData/psi/Labels.txt index 23a51e07506..118356f871c 100644 --- a/idea/testData/psi/Labels.txt +++ b/idea/testData/psi/Labels.txt @@ -412,9 +412,9 @@ JetFile: Labels.jet LABEL_REFERENCE PsiElement(ATAT)('@@') PsiWhiteSpace('\n\n ') - THIS_EXPRESSION + SUPER_EXPRESSION REFERENCE_EXPRESSION - PsiElement(this)('this') + PsiElement(super)('super') PsiElement(LT)('<') TYPE_REFERENCE USER_TYPE @@ -422,43 +422,43 @@ JetFile: Labels.jet PsiElement(IDENTIFIER)('A') PsiElement(GT)('>') PsiWhiteSpace('\n ') - THIS_EXPRESSION + SUPER_EXPRESSION REFERENCE_EXPRESSION - PsiElement(this)('this') + PsiElement(super)('super') + PsiElement(LT)('<') + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('A') + PsiElement(GT)('>') LABEL_QUALIFIER LABEL_REFERENCE PsiElement(AT)('@') + PsiWhiteSpace('\n ') + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') PsiElement(LT)('<') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') PsiElement(GT)('>') - PsiWhiteSpace('\n ') - THIS_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(this)('this') LABEL_QUALIFIER LABEL_REFERENCE PsiElement(LABEL_IDENTIFIER)('@a') + PsiWhiteSpace('\n ') + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') PsiElement(LT)('<') TYPE_REFERENCE USER_TYPE REFERENCE_EXPRESSION PsiElement(IDENTIFIER)('A') PsiElement(GT)('>') - PsiWhiteSpace('\n ') - THIS_EXPRESSION - REFERENCE_EXPRESSION - PsiElement(this)('this') LABEL_QUALIFIER LABEL_REFERENCE PsiElement(ATAT)('@@') - PsiElement(LT)('<') - TYPE_REFERENCE - USER_TYPE - REFERENCE_EXPRESSION - PsiElement(IDENTIFIER)('A') - PsiElement(GT)('>') PsiWhiteSpace('\n') PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/idea/testData/psi/SimpleExpressions.jet b/idea/testData/psi/SimpleExpressions.jet index 2bdebc0f908..a3969d2b230 100644 --- a/idea/testData/psi/SimpleExpressions.jet +++ b/idea/testData/psi/SimpleExpressions.jet @@ -15,7 +15,7 @@ fun a( a : foo = false, a : foo = null, a : foo = this, - a : foo = this, + a : foo = super, a : foo = (10), a : foo = (10, "A", 0xf), a : foo = Foo(bar), diff --git a/idea/testData/psi/SimpleExpressions.txt b/idea/testData/psi/SimpleExpressions.txt index 077ad384866..16219eac0b0 100644 --- a/idea/testData/psi/SimpleExpressions.txt +++ b/idea/testData/psi/SimpleExpressions.txt @@ -280,9 +280,9 @@ JetFile: SimpleExpressions.jet PsiWhiteSpace(' ') PsiElement(EQ)('=') PsiWhiteSpace(' ') - THIS_EXPRESSION + SUPER_EXPRESSION REFERENCE_EXPRESSION - PsiElement(this)('this') + PsiElement(super)('super') PsiElement(LT)('<') TYPE_REFERENCE USER_TYPE diff --git a/idea/testData/psi/Super.jet b/idea/testData/psi/Super.jet new file mode 100644 index 00000000000..8b024506722 --- /dev/null +++ b/idea/testData/psi/Super.jet @@ -0,0 +1,7 @@ +// KT-156 Fix the this syntax +fun foo() { + super.foo(); + super.foo(); + super<>.foo(); + super@label.foo(); +} \ No newline at end of file diff --git a/idea/testData/psi/Super.txt b/idea/testData/psi/Super.txt new file mode 100644 index 00000000000..c9cd569dcaa --- /dev/null +++ b/idea/testData/psi/Super.txt @@ -0,0 +1,88 @@ +JetFile: Super.jet + PsiComment(EOL_COMMENT)('// KT-156 Fix the this syntax') + PsiWhiteSpace('\n') + NAMESPACE + FUN + PsiElement(fun)('fun') + PsiWhiteSpace(' ') + PsiElement(IDENTIFIER)('foo') + VALUE_PARAMETER_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiWhiteSpace(' ') + BLOCK + PsiElement(LBRACE)('{') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiElement(SEMICOLON)(';') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') + PsiElement(LT)('<') + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Int') + PsiElement(GT)('>') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiElement(SEMICOLON)(';') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') + PsiElement(LT)('<') + TYPE_REFERENCE + PsiErrorElement:Type expected + + PsiElement(GT)('>') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiElement(SEMICOLON)(';') + PsiWhiteSpace('\n ') + DOT_QUALIFIED_EXPRESSION + SUPER_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(super)('super') + PsiElement(LT)('<') + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('Int') + PsiElement(GT)('>') + LABEL_QUALIFIER + LABEL_REFERENCE + PsiElement(LABEL_IDENTIFIER)('@label') + PsiElement(DOT)('.') + CALL_EXPRESSION + REFERENCE_EXPRESSION + PsiElement(IDENTIFIER)('foo') + VALUE_ARGUMENT_LIST + PsiElement(LPAR)('(') + PsiElement(RPAR)(')') + PsiElement(SEMICOLON)(';') + PsiWhiteSpace('\n') + PsiElement(RBRACE)('}') \ No newline at end of file diff --git a/idea/testData/resolve/Super.jet b/idea/testData/resolve/Super.jet new file mode 100644 index 00000000000..11a8083f538 --- /dev/null +++ b/idea/testData/resolve/Super.jet @@ -0,0 +1,26 @@ +~T~trait T { + fun foo() {} +} +~C~open class C() { + fun bar() {} +} + +~A~class A() : C(), T { + + fun test() { + `T`super.foo() + `C`super.bar() + `T`super@A.foo() + `C`super@A.bar() + } + + class B : T { + fun test() { + `T`super.foo(); + `C`super@A.bar() + `T`super@A.foo() + `T`super@B.foo() + `T`super.foo() + } + } +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 72d9bdcbffe..148d5335e6c 100644 --- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -310,7 +310,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { public void testThis() throws Exception { assertType("Derived_T", "this", "Derived_T"); - assertType("Derived_T", "this", "Base_T"); + assertType("Derived_T", "super", "Base_T"); } public void testLoops() throws Exception { From bfbc7ad601191b7d7e925c63e93364ba74d3fd7a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 19 Oct 2011 19:35:41 +0200 Subject: [PATCH 13/22] nicer slides --- docs/Kotlin-RivieraDev.ppt | Bin 2050560 -> 2298368 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/Kotlin-RivieraDev.ppt b/docs/Kotlin-RivieraDev.ppt index 84c8943eb0fe0c00bec30e705da133939df097c0..58d23ed49e818d6962293766163235aa18b75016 100644 GIT binary patch delta 200435 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 Date: Wed, 19 Oct 2011 20:29:55 +0200 Subject: [PATCH 14/22] IntRange iteration calls correct methods on IntRange class --- .../jetbrains/jet/codegen/ExpressionCodegen.java | 4 ++-- .../codegen/controlStructures/forIntRange.jet | 13 +++++++++++++ .../org/jetbrains/jet/codegen/CodegenTestCase.java | 2 +- .../jet/codegen/ControlStructuresTest.java | 6 ++++-- 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 idea/testData/codegen/controlStructures/forIntRange.jet diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 936b20af22b..27bcb22b9ba 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -429,9 +429,9 @@ public class ExpressionCodegen extends JetVisitor { gen(expression.getLoopRange(), loopRangeType); v.dup(); - v.invokevirtual("jet/IntRange", "getStartValue", "()I"); + v.invokevirtual("jet/IntRange", "getStart", "()I"); v.store(lookupLocal(parameterDescriptor), Type.INT_TYPE); - v.invokevirtual("jet/IntRange", "getEndValue", "()I"); + v.invokevirtual("jet/IntRange", "getEnd", "()I"); v.store(myEndVar, Type.INT_TYPE); } } diff --git a/idea/testData/codegen/controlStructures/forIntRange.jet b/idea/testData/codegen/controlStructures/forIntRange.jet new file mode 100644 index 00000000000..0fe391123eb --- /dev/null +++ b/idea/testData/codegen/controlStructures/forIntRange.jet @@ -0,0 +1,13 @@ +fun box() : String { + val a = Array(3) + a[0] = "a" + a[1] = "b" + a[2] = "c" + + val result = 0 + for(i in a.indices) { + result += i + } + if (result != 3) return "FAIL" + return "OK" +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java index 45731728ffc..1706e71b5e4 100644 --- a/idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java +++ b/idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java @@ -63,7 +63,7 @@ public abstract class CodegenTestCase extends LightCodeInsightFixtureTestCase { throw new UnsupportedOperationException(); } - protected void blackBoxFile(String filename) throws Exception { + protected void blackBoxFile(String filename) { loadFile(filename); String actual; try { diff --git a/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java b/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java index 698c668b042..f6da4b65c87 100644 --- a/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java @@ -1,7 +1,5 @@ package org.jetbrains.jet.codegen; -import jet.typeinfo.TypeInfo; - import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Arrays; @@ -169,6 +167,10 @@ public class ControlStructuresTest extends CodegenTestCase { blackBoxFile("controlStructures/forNullableIntArray.jet"); } + public void testForIntRange() { + blackBoxFile("controlStructures/forIntRange.jet"); + } + public void testKt237() throws Exception { blackBoxFile("regressions/kt237.jet"); } From efa9a25ea557c5a7ba3f967e3cc5dc088acbfb0a Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 19 Oct 2011 20:59:21 +0200 Subject: [PATCH 15/22] actually pass the specified parameters to the Java process --- .../org/jetbrains/jet/plugin/run/JetRunConfiguration.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java index 4e0beabf3ac..b84b0f8af04 100644 --- a/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java +++ b/idea/src/org/jetbrains/jet/plugin/run/JetRunConfiguration.java @@ -13,6 +13,7 @@ import com.intellij.openapi.options.SettingsEditor; import com.intellij.openapi.util.DefaultJDOMExternalizer; import com.intellij.openapi.util.InvalidDataException; import com.intellij.openapi.util.WriteExternalException; +import com.intellij.openapi.util.text.StringUtil; import org.jdom.Element; import org.jetbrains.annotations.NotNull; @@ -158,6 +159,12 @@ public class JetRunConfiguration extends ModuleBasedConfiguration Date: Thu, 20 Oct 2011 07:25:22 +0200 Subject: [PATCH 16/22] tests/fixes --- .../jetbrains/jet/codegen/CallableMethod.java | 29 ++++--- .../jetbrains/jet/codegen/ClosureCodegen.java | 16 +--- .../jet/codegen/ExpressionCodegen.java | 73 +++++++++++------ .../jet/codegen/FunctionCodegen.java | 8 ++ .../jetbrains/jet/codegen/JetTypeMapper.java | 80 +++++++++---------- idea/idea.iml | 1 + .../codegen/functions/defaultargs.jet | 22 ++++- idea/testData/codegen/functions/namedargs.jet | 19 ----- .../jet/codegen/FunctionGenTest.java | 5 +- stdlib/src/jet/typeinfo/JetParameterName.java | 15 ++++ 10 files changed, 150 insertions(+), 118 deletions(-) create mode 100644 stdlib/src/jet/typeinfo/JetParameterName.java diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java index 4582e2e5e6c..9b5888566d1 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/CallableMethod.java @@ -2,6 +2,7 @@ package org.jetbrains.jet.codegen; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.ClassDescriptor; +import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.objectweb.asm.Opcodes; import org.objectweb.asm.Type; import org.objectweb.asm.commons.InstructionAdapter; @@ -18,9 +19,9 @@ public class CallableMethod implements Callable { private final int invokeOpcode; private final List valueParameterTypes; private boolean acceptsTypeArguments = false; - private boolean needsReceiverOnStack = false; private boolean ownerFromCall = false; - private ClassDescriptor receiverClass = null; + private DeclarationDescriptor thisClass = null; + private DeclarationDescriptor receiverClass = null; private Type generateCalleeType = null; public CallableMethod(String owner, Method signature, int invokeOpcode, List valueParameterTypes) { @@ -58,13 +59,12 @@ public class CallableMethod implements Callable { this.acceptsTypeArguments = acceptsTypeArguments; } - public void setNeedsReceiver(@Nullable ClassDescriptor receiverClass) { - needsReceiverOnStack = true; + public void setNeedsReceiver(@Nullable DeclarationDescriptor receiverClass) { this.receiverClass = receiverClass; } - public boolean needsReceiverOnStack() { - return needsReceiverOnStack; + public void setNeedsThis(@Nullable DeclarationDescriptor receiverClass) { + this.thisClass = receiverClass; } public boolean isOwnerFromCall() { @@ -75,10 +75,6 @@ public class CallableMethod implements Callable { this.ownerFromCall = ownerFromCall; } - public ClassDescriptor getReceiverClass() { - return receiverClass; - } - void invoke(InstructionAdapter v) { v.visitMethodInsn(getInvokeOpcode(), getOwner(), getSignature().getName(), getSignature().getDescriptor()); } @@ -98,4 +94,17 @@ public class CallableMethod implements Callable { desc = desc.replace("(", "(L" + getOwner() + ";"); v.visitMethodInsn(Opcodes.INVOKESTATIC, getInvokeOpcode() == Opcodes.INVOKEINTERFACE ? getOwner() + "$$TImpl" : getOwner(), getSignature().getName() + "$default", desc); } + + public boolean isNeedsThis() { + return thisClass != null; + } + + public boolean isNeedsReceiver() { + return receiverClass != null; + } + + public DeclarationDescriptor getThisClass() { + return thisClass; + } + } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java index 81d12c3f568..b062a56f417 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ClosureCodegen.java @@ -4,10 +4,7 @@ package org.jetbrains.jet.codegen; import com.intellij.openapi.util.Pair; -import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; -import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; -import org.jetbrains.jet.lang.descriptors.VariableDescriptor; +import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.JetFunctionLiteral; import org.jetbrains.jet.lang.psi.JetFunctionLiteralExpression; import org.jetbrains.jet.lang.resolve.BindingContext; @@ -260,15 +257,4 @@ public class ClosureCodegen extends FunctionOrClosureCodegen { signatureWriter.visitClassType(rawRetType.getInternalName()); signatureWriter.visitEnd(); } - - public static CallableMethod asCallableMethod(FunctionDescriptor fd) { - Method descriptor = erasedInvokeSignature(fd); - String owner = getInternalClassName(fd); - final CallableMethod result = new CallableMethod(owner, descriptor, INVOKEVIRTUAL, Arrays.asList(descriptor.getArgumentTypes())); - if (fd.getReceiverParameter().exists()) { - result.setNeedsReceiver(null); - } - result.requestGenerateCallee(Type.getObjectType(getInternalClassName(fd))); - return result; - } } diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java index 27bcb22b9ba..da6f4dcd525 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/ExpressionCodegen.java @@ -27,6 +27,8 @@ import org.objectweb.asm.commons.Method; import java.util.*; +import static org.objectweb.asm.Opcodes.INVOKEVIRTUAL; + /** * @author max * @author yole @@ -77,6 +79,17 @@ public class ExpressionCodegen extends JetVisitor { this.intrinsics = state.getIntrinsics(); } + private CallableMethod asCallableMethod(FunctionDescriptor fd) { + Method descriptor = ClosureCodegen.erasedInvokeSignature(fd); + String owner = ClosureCodegen.getInternalClassName(fd); + final CallableMethod result = new CallableMethod(owner, descriptor, INVOKEVIRTUAL, Arrays.asList(descriptor.getArgumentTypes())); + if (fd.getReceiverParameter().exists()) { + result.setNeedsReceiver(fd.getReceiverParameter().getType().getConstructor().getDeclarationDescriptor()); + } + result.requestGenerateCallee(Type.getObjectType(ClosureCodegen.getInternalClassName(fd))); + return result; + } + public GenerationState getState() { return state; } @@ -983,7 +996,7 @@ public class ExpressionCodegen extends JetVisitor { callableMethod = typeMapper.mapToCallableMethod((PsiNamedElement) declarationPsiElement, null); } else if (fd instanceof VariableAsFunctionDescriptor) { - callableMethod = ClosureCodegen.asCallableMethod((FunctionDescriptor) fd); + callableMethod = asCallableMethod((FunctionDescriptor) fd); } else if (fd instanceof FunctionDescriptor) { callableMethod = typeMapper.mapToCallableMethod((FunctionDescriptor) fd, null); @@ -1018,13 +1031,27 @@ public class ExpressionCodegen extends JetVisitor { if (callableMethod.isOwnerFromCall()) { setOwnerFromCall(callableMethod, expression); } - if (callableMethod.needsReceiverOnStack()) { - if (receiver == StackValue.none()) { - ClassDescriptor receiverClass = callableMethod.getReceiverClass(); - receiver = receiverClass == null ? thisExpression() : generateThisOrOuter(receiverClass); + + if (callableMethod.isNeedsThis()) { + if(callableMethod.isNeedsReceiver()) { + generateThisOrOuter((ClassDescriptor) callableMethod.getThisClass()).put(JetTypeMapper.TYPE_OBJECT, v); + receiver.put(JetTypeMapper.TYPE_OBJECT, v); + } + else { + if (receiver == StackValue.none()) { + generateThisOrOuter((ClassDescriptor) callableMethod.getThisClass()).put(JetTypeMapper.TYPE_OBJECT, v);; + } + else { + receiver.put(JetTypeMapper.TYPE_OBJECT, v); + } } - receiver.put(JetTypeMapper.TYPE_OBJECT, v); } + else { + if (callableMethod.isNeedsReceiver()) { + receiver.put(JetTypeMapper.TYPE_OBJECT, v); + } + } + int mask = pushMethodArguments(expression, callableMethod.getValueParameterTypes()); if (callableMethod.acceptsTypeArguments()) { pushTypeArguments(expression); @@ -1790,23 +1817,19 @@ public class ExpressionCodegen extends JetVisitor { } private void pushTypeArguments(JetCallElement expression) { -// todo when frontend calculates -// ResolvedCallImpl resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); -// if(resolvedCall != null) { -// Map typeArguments = resolvedCall.getTypeArguments(); -// CallableDescriptor resultingDescriptor = resolvedCall.getResultingDescriptor(); -// for (TypeParameterDescriptor typeParameterDescriptor : resultingDescriptor.getTypeParameters()) { -// JetType jetType = typeArguments.get(typeParameterDescriptor); -// generateTypeInfo(jetType); -// } -// } -// else { -// for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { -// pushTypeArgument(jetTypeArgument); -// } -// } - for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { - pushTypeArgument(jetTypeArgument); + ResolvedCall resolvedCall = bindingContext.get(BindingContext.RESOLVED_CALL, expression.getCalleeExpression()); + if(resolvedCall != null) { + Map typeArguments = resolvedCall.getTypeArguments(); + CallableDescriptor resultingDescriptor = resolvedCall.getCandidateDescriptor(); + for (TypeParameterDescriptor typeParameterDescriptor : resultingDescriptor.getTypeParameters()) { + JetType jetType = typeArguments.get(typeParameterDescriptor); + generateTypeInfo(jetType); + } + } + else { + for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) { + pushTypeArgument(jetTypeArgument); + } } } @@ -1820,7 +1843,7 @@ public class ExpressionCodegen extends JetVisitor { Type type = JetTypeMapper.psiClassType(javaClass); v.anew(type); v.dup(); - final CallableMethod callableMethod = JetTypeMapper.mapToCallableMethod(constructor); + final CallableMethod callableMethod = typeMapper.mapToCallableMethod(constructor); invokeMethodWithArguments(callableMethod, expression); return type; } @@ -1916,7 +1939,7 @@ public class ExpressionCodegen extends JetVisitor { assert declaration != null : "No declaration found for " + expression.getText(); final CallableMethod accessor; if (declaration instanceof PsiMethod) { - accessor = JetTypeMapper.mapToCallableMethod((PsiMethod) declaration); + accessor = typeMapper.mapToCallableMethod((PsiMethod) declaration); } else if (declaration instanceof JetNamedFunction) { accessor = typeMapper.mapToCallableMethod((JetNamedFunction) declaration, null); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java index fcc3f8f0173..a7724378b36 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/FunctionCodegen.java @@ -63,6 +63,14 @@ public class FunctionCodegen { if (isAbstract) flags |= ACC_ABSTRACT; final MethodVisitor mv = v.visitMethod(flags, jvmSignature.getName(), jvmSignature.getDescriptor(), null, null); + if(kind != OwnerKind.TRAIT_IMPL) { + int start = functionDescriptor.getReceiverParameter().exists() ? 1 : 0; + for(int i = 0; i != paramDescrs.size(); ++i) { + AnnotationVisitor annotationVisitor = mv.visitParameterAnnotation(i + start, "jet/typeinfo/JetParameterName", true); + annotationVisitor.visit("value", paramDescrs.get(i).getName()); + annotationVisitor.visitEnd(); + } + } if (!isAbstract) { mv.visitCode(); FrameMap frameMap = context.prepareFrame(); diff --git a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java index 9cf08cd2482..926b496e243 100644 --- a/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java +++ b/compiler/backend/src/org/jetbrains/jet/codegen/JetTypeMapper.java @@ -162,40 +162,6 @@ public class JetTypeMapper { return new Method(method.isConstructor() ? "" : method.getName(), Type.getMethodDescriptor(returnType, parameterTypes)); } - static CallableMethod mapToCallableMethod(PsiMethod method) { - final PsiClass containingClass = method.getContainingClass(); - String owner = jvmName(containingClass); - Method signature = getMethodDescriptor(method); - List valueParameterTypes = new ArrayList(); - Collections.addAll(valueParameterTypes, signature.getArgumentTypes()); - int opcode; - boolean needsReceiver = false; - boolean ownerFromCall = false; - if (method.isConstructor()) { - opcode = Opcodes.INVOKESPECIAL; - } - else if (method.hasModifierProperty(PsiModifier.STATIC)) { - opcode = Opcodes.INVOKESTATIC; - } - else { - needsReceiver = true; - assert containingClass != null; - if (containingClass.isInterface()) { - opcode = Opcodes.INVOKEINTERFACE; - } - else { - opcode = Opcodes.INVOKEVIRTUAL; - } - ownerFromCall = true; - } - final CallableMethod result = new CallableMethod(owner, signature, opcode, valueParameterTypes); - if (needsReceiver) { - result.setNeedsReceiver(null); - } - result.setOwnerFromCall(ownerFromCall); - return result; - } - public static Type getBoxedType(final Type type) { switch (type.getSort()) { case Type.BYTE: @@ -518,18 +484,49 @@ public class JetTypeMapper { return mapToCallableMethod(functionDescriptor, kind); } + CallableMethod mapToCallableMethod(PsiMethod method) { + final PsiClass containingClass = method.getContainingClass(); + String owner = jvmName(containingClass); + Method signature = getMethodDescriptor(method); + List valueParameterTypes = new ArrayList(); + Collections.addAll(valueParameterTypes, signature.getArgumentTypes()); + int opcode; + boolean ownerFromCall = false; + DeclarationDescriptor thisClass = null; + if (method.isConstructor()) { + opcode = Opcodes.INVOKESPECIAL; + } + else if (method.hasModifierProperty(PsiModifier.STATIC)) { + opcode = Opcodes.INVOKESTATIC; + } + else { + assert containingClass != null; + if (containingClass.isInterface()) { + opcode = Opcodes.INVOKEINTERFACE; + } + else { + opcode = Opcodes.INVOKEVIRTUAL; + } + ownerFromCall = true; + thisClass = JetStandardClasses.getAny(); // todo - this is hack, correct descriptor needed + } + final CallableMethod result = new CallableMethod(owner, signature, opcode, valueParameterTypes); + result.setNeedsThis(thisClass); + result.setOwnerFromCall(ownerFromCall); + return result; + } + public CallableMethod mapToCallableMethod(FunctionDescriptor functionDescriptor, OwnerKind kind) { final DeclarationDescriptor functionParent = functionDescriptor.getContainingDeclaration(); final List valueParameterTypes = new ArrayList(); Method descriptor = mapSignature(functionDescriptor.getOriginal(), valueParameterTypes, kind); String owner; int invokeOpcode; - boolean needsReceiver; - ClassDescriptor receiverClass = null; + ClassDescriptor thisClass; if (functionParent instanceof NamespaceDescriptor) { owner = NamespaceCodegen.getJVMClassName(DescriptorRenderer.getFQName(functionParent)); invokeOpcode = Opcodes.INVOKESTATIC; - needsReceiver = functionDescriptor.getReceiverParameter().exists(); + thisClass = null; } else if (functionParent instanceof ClassDescriptor) { ClassDescriptor containingClass = (ClassDescriptor) functionParent; @@ -537,8 +534,7 @@ public class JetTypeMapper { invokeOpcode = CodegenUtil.isInterface(containingClass) ? Opcodes.INVOKEINTERFACE : Opcodes.INVOKEVIRTUAL; - needsReceiver = true; - receiverClass = containingClass; + thisClass = containingClass; } else { throw new UnsupportedOperationException("unknown function parent"); @@ -546,9 +542,11 @@ public class JetTypeMapper { final CallableMethod result = new CallableMethod(owner, descriptor, invokeOpcode, valueParameterTypes); result.setAcceptsTypeArguments(true); - if (needsReceiver) { - result.setNeedsReceiver(receiverClass); + result.setNeedsThis(thisClass); + if(functionDescriptor.getReceiverParameter().exists()) { + result.setNeedsReceiver(functionDescriptor.getReceiverParameter().getType().getConstructor().getDeclarationDescriptor()); } + return result; } diff --git a/idea/idea.iml b/idea/idea.iml index 23b8c669d6e..f59f50c0a63 100644 --- a/idea/idea.iml +++ b/idea/idea.iml @@ -20,6 +20,7 @@ + diff --git a/idea/testData/codegen/functions/defaultargs.jet b/idea/testData/codegen/functions/defaultargs.jet index 9486bf5b856..137e1b3be9e 100644 --- a/idea/testData/codegen/functions/defaultargs.jet +++ b/idea/testData/codegen/functions/defaultargs.jet @@ -13,7 +13,7 @@ trait A { fun bar(arg: Int = 240) : Int = bar2(arg/2) } -open abstract class B() : A { +open abstract class B() : A, java.lang.Object() { fun foo(arg: Int = 239 + 1) : Int = arg abstract fun foo2(arg: Int = 239) : Int @@ -23,15 +23,29 @@ open abstract class B() : A { class C() : B() { override fun foo2(arg: Int) : Int = arg + + fun Any.toMyPrefixedString(prefix: String = "", suffix: String="") : String = prefix + " " + suffix + + fun testReceiver() : String { + val res : String = "mama".toMyPrefixedString("111", "222") + System.out?.println(res) + return res + } + + override fun toString() : String = "CCC" } -// fun T.toPrefixedString(prefix: String = "") = prefix + (this as java.lang.Object).toString() +fun T.toPrefixedString(prefix: String = "", suffix: String="") = prefix + (this as java.lang.Object).toString() + suffix fun box() : String { val expected = (true, true, true, " ") -// if("mama".toPrefixedString("papa") != "papamama") return "fail" -// if("mama".toPrefixedString() != "mama") return "fail" + if("mama".toPrefixedString(suffix="321", prefix="papa") != "papamama321") return "fail" + if("mama".toPrefixedString(prefix="papa") != "papamama") return "fail" + if("mama".toPrefixedString("papa", "239") != "papamama239") return "fail" + if("mama".toPrefixedString("papa") != "papamama") return "fail" + if("mama".toPrefixedString() != "mama") return "fail" + if(C().testReceiver() != "111 222") return "fail" if(C().bar(10) != 5) return "fail" if(C().bar() != 120) return "fail" if(C().foo(10) != 10) return "fail" diff --git a/idea/testData/codegen/functions/namedargs.jet b/idea/testData/codegen/functions/namedargs.jet index e237c28f4d8..e69de29bb2d 100644 --- a/idea/testData/codegen/functions/namedargs.jet +++ b/idea/testData/codegen/functions/namedargs.jet @@ -1,19 +0,0 @@ -fun reformat( - str : String, - normalizeCase : Boolean = true, - uppercaseFirstLetter : Boolean = true, - divideByCamelHumps : Boolean = false, - wordSeparator : String = " " -) = - (normalizeCase, uppercaseFirstLetter, divideByCamelHumps, wordSeparator) - -fun box() : String { - val expected = (true, true, false, " ") - if(reformat("", true, true, false, " ") != expected) return "fail" -// if(reformat(str="", wordSeparator=" ") != expected) return "fail" -// if(reformat("", true, true, false) != expected) return "fail" -// if(reformat("", true, true) != expected) return "fail" -// if(reformat("", true) != expected) return "fail" -// if(reformat("") != expected) return "fail" - return "OK" -} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java b/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java index 5f79fc05480..130148eb40b 100644 --- a/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java +++ b/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java @@ -6,10 +6,7 @@ package org.jetbrains.jet.codegen; public class FunctionGenTest extends CodegenTestCase { public void testDefaultArgs() throws Exception { blackBoxFile("functions/defaultargs.jet"); - } - - public void testNamedArgs() throws Exception { - blackBoxFile("functions/defaultargs.jet"); + System.out.println(generateToText()); } public void testNoThisNoClosure() throws Exception { diff --git a/stdlib/src/jet/typeinfo/JetParameterName.java b/stdlib/src/jet/typeinfo/JetParameterName.java new file mode 100644 index 00000000000..904da5dc449 --- /dev/null +++ b/stdlib/src/jet/typeinfo/JetParameterName.java @@ -0,0 +1,15 @@ +package jet.typeinfo; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * @author alex.tkachman + */ +@Target({ElementType.PARAMETER}) +@Retention(RetentionPolicy.RUNTIME) +public @interface JetParameterName { + String value (); +} From e91d20f3266c65c108c6e8f0510b4aeceafad2e9 Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 20 Oct 2011 18:00:19 +0400 Subject: [PATCH 17/22] KT-156 Fix the this syntax --- .../jet/lang/diagnostics/Errors.java | 1 + .../jet/lang/resolve/TypeResolver.java | 6 ++- .../BasicExpressionTypingVisitor.java | 40 ++++++++++++++++--- .../checkerWithErrorTypes/quick/Super.jet | 15 ++++++- idea/testData/resolve/Super.jet | 10 +++++ .../org/jetbrains/jet/JetLiteFixture.java | 2 + .../jet/types/JetTypeCheckerTest.java | 2 +- 7 files changed, 68 insertions(+), 8 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java index 6881ae9d2d3..d7e6ecad091 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/diagnostics/Errors.java @@ -168,6 +168,7 @@ public interface Errors { SimpleDiagnosticFactory SUPER_NOT_AVAILABLE = SimpleDiagnosticFactory.create(ERROR, "No supertypes are accessible in this context"); SimpleDiagnosticFactory AMBIGUOUS_SUPER = SimpleDiagnosticFactory.create(ERROR, "Many supertypes available, please specify the one you mean in angle brackets, e.g. 'super'"); SimpleDiagnosticFactory NOT_A_SUPERTYPE = SimpleDiagnosticFactory.create(ERROR, "Not a supertype"); + SimpleDiagnosticFactory TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER = SimpleDiagnosticFactory.create(WARNING, "Type arguments do not need to be specified in a 'super' qualifier"); SimpleDiagnosticFactory NO_WHEN_ENTRIES = SimpleDiagnosticFactory.create(ERROR, "Entries are required for when-expression"); // TODO : Scope, and maybe this should not be an error SimplePsiElementOnlyDiagnosticFactory USELESS_CAST_STATIC_ASSERT_IS_FINE = SimplePsiElementOnlyDiagnosticFactory.create(WARNING, "No cast needed, use ':' instead"); SimplePsiElementOnlyDiagnosticFactory USELESS_CAST = SimplePsiElementOnlyDiagnosticFactory.create(WARNING, "No cast needed"); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java index 5c35018b7a8..76c23ca970d 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/TypeResolver.java @@ -20,6 +20,7 @@ import java.util.List; import static org.jetbrains.jet.lang.diagnostics.Errors.UNRESOLVED_REFERENCE; import static org.jetbrains.jet.lang.diagnostics.Errors.WRONG_NUMBER_OF_TYPE_ARGUMENTS; +import static org.jetbrains.jet.lang.resolve.BindingContext.REFERENCE_TARGET; /** * @author abreslav @@ -234,12 +235,15 @@ public class TypeResolver { } @Nullable - private ClassifierDescriptor resolveClass(JetScope scope, JetUserType userType) { + public ClassifierDescriptor resolveClass(JetScope scope, JetUserType userType) { ClassifierDescriptor classifierDescriptor = resolveClassWithoutErrorReporting(scope, userType); if (classifierDescriptor == null) { trace.report(UNRESOLVED_REFERENCE.on(userType.getReferenceExpression())); } + else { + trace.record(REFERENCE_TARGET, userType.getReferenceExpression(), classifierDescriptor); + } return classifierDescriptor; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index f78176228be..6828fada9ce 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -2,6 +2,7 @@ package org.jetbrains.jet.lang.types.expressions; import com.google.common.collect.Lists; import com.intellij.lang.ASTNode; +import com.intellij.psi.PsiElement; import com.intellij.psi.tree.IElementType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -314,9 +315,32 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { JetTypeReference superTypeQualifier = expression.getSuperTypeQualifier(); if (superTypeQualifier != null) { - JetType supertype = context.getTypeResolver().resolveType(context.scope, superTypeQualifier); - DeclarationDescriptor classifierCandidate = supertype.getConstructor().getDeclarationDescriptor(); - if (classifierCandidate instanceof ClassDescriptor) { + JetTypeElement typeElement = superTypeQualifier.getTypeElement(); + + DeclarationDescriptor classifierCandidate = null; + JetType supertype = null; + PsiElement redundantTypeArguments = null; + if (typeElement instanceof JetUserType) { + JetUserType userType = (JetUserType) typeElement; + // This may be just a superclass name even if the superclass is generic + if (userType.getTypeArguments().isEmpty()) { + classifierCandidate = context.getTypeResolver().resolveClass(context.scope, userType); + } + else { + supertype = context.getTypeResolver().resolveType(context.scope, superTypeQualifier); + redundantTypeArguments = userType.getTypeArgumentList(); + } + } + else { + supertype = context.getTypeResolver().resolveType(context.scope, superTypeQualifier); + } + + if (supertype != null) { + if (supertypes.contains(supertype)) { + result = supertype; + } + } + else if (classifierCandidate instanceof ClassDescriptor) { ClassDescriptor superclass = (ClassDescriptor) classifierCandidate; for (JetType declaredSupertype : supertypes) { @@ -326,9 +350,15 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { } } } - if (result == null && !ErrorUtils.isErrorType(supertype)) { + + boolean validClassifier = classifierCandidate != null && !ErrorUtils.isError(classifierCandidate); + boolean validType = supertype != null && !ErrorUtils.isErrorType(supertype); + if (result == null && (validClassifier || validType)) { context.trace.report(NOT_A_SUPERTYPE.on(superTypeQualifier)); } + else if (redundantTypeArguments != null) { + context.trace.report(TYPE_ARGUMENTS_REDUNDANT_IN_SUPER_QUALIFIER.on(redundantTypeArguments)); + } } else { if (supertypes.size() > 1) { @@ -346,7 +376,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { return DataFlowUtils.checkType(result, expression, context); } - @Nullable + @Nullable // No class receivers private ReceiverDescriptor resolveToReceiver(JetLabelQualifiedInstanceExpression expression, ExpressionTypingContext context, boolean onlyClassReceivers) { ReceiverDescriptor thisReceiver = null; String labelName = expression.getLabelName(); diff --git a/idea/testData/checkerWithErrorTypes/quick/Super.jet b/idea/testData/checkerWithErrorTypes/quick/Super.jet index 4fdbd177e85..65087a0a4d4 100644 --- a/idea/testData/checkerWithErrorTypes/quick/Super.jet +++ b/idea/testData/checkerWithErrorTypes/quick/Super.jet @@ -46,4 +46,17 @@ fun foo() { super super.foo() super.foo() -} \ No newline at end of file +} + +trait G { + fun foo() {} +} + +class CG : G { + fun test() { + super.foo() // OK + super>.foo() // Warning + super<G<E>>.foo() // Error + super<G>.foo() // Error + } +} diff --git a/idea/testData/resolve/Super.jet b/idea/testData/resolve/Super.jet index 11a8083f538..10b1995e229 100644 --- a/idea/testData/resolve/Super.jet +++ b/idea/testData/resolve/Super.jet @@ -23,4 +23,14 @@ `T`super.foo() } } +} + +~G~trait G { + fun foo() {} +} + +class CG : G { + fun test() { + `G`super<`G`G>.foo() // OK + } } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/JetLiteFixture.java b/idea/tests/org/jetbrains/jet/JetLiteFixture.java index a2142bee57c..323e3559645 100644 --- a/idea/tests/org/jetbrains/jet/JetLiteFixture.java +++ b/idea/tests/org/jetbrains/jet/JetLiteFixture.java @@ -7,6 +7,7 @@ import com.intellij.mock.*; import com.intellij.openapi.Disposable; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.EditorFactory; +import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileEditor.impl.FileDocumentManagerImpl; import com.intellij.openapi.fileEditor.impl.LoadTextUtil; @@ -81,6 +82,7 @@ public abstract class JetLiteFixture extends PlatformLiteFixture { public void verify(PicoContainer container) throws PicoIntrospectionException { } }); + Extensions.registerAreaClass("IDEA_PROJECT", null); myProject = disposeOnTearDown(new MockProjectEx(getTestRootDisposable())); myPsiManager = new MockPsiManager(myProject); myFileFactory = new PsiFileFactoryImpl(myPsiManager); diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 148d5335e6c..7ea91dd752c 100644 --- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -310,7 +310,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { public void testThis() throws Exception { assertType("Derived_T", "this", "Derived_T"); - assertType("Derived_T", "super", "Base_T"); +// assertType("Derived_T", "super", "Base_T"); } public void testLoops() throws Exception { From 1fe1d1e4d15a7958921787dcb409ec77b9a597e2 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 19 Oct 2011 21:01:24 +0200 Subject: [PATCH 18/22] samples from presentation --- examples/src/HelloNames.kt | 2 +- examples/src/HelloNamesFaster.kt | 22 ++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 examples/src/HelloNamesFaster.kt diff --git a/examples/src/HelloNames.kt b/examples/src/HelloNames.kt index 00ee6b812b2..a7525288a4d 100644 --- a/examples/src/HelloNames.kt +++ b/examples/src/HelloNames.kt @@ -1,7 +1,7 @@ namespace HelloNames fun main(args : Array) { - var names : String = "" + var names = "" for (i in args.indices) { names += args[i] diff --git a/examples/src/HelloNamesFaster.kt b/examples/src/HelloNamesFaster.kt new file mode 100644 index 00000000000..44a2afa8577 --- /dev/null +++ b/examples/src/HelloNamesFaster.kt @@ -0,0 +1,22 @@ +namespace HelloNamesFaster + +fun main(args : Array) { + var names = StringBuilder() + + for (i in args.indices) { + names += args[i] + if (i + 1 < args.size) + names += ", " + } + // string templates + println("Hello, $names!") +} + +fun println(message : String) { + // System.out is a nullable field + System.out?.println(message) +} + +fun StringBuilder.plusAssign(s : String) { + this.append(s) +} From 5e73a1b9fe6a142581e481d59815353adcbf2338 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 20 Oct 2011 15:20:02 +0200 Subject: [PATCH 19/22] final slides from rivieradev --- docs/Kotlin-RivieraDev.ppt | Bin 2298368 -> 2303488 bytes examples/src/HelloNamesRealistic.kt | 0 examples/src/Point.kt | 0 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 examples/src/HelloNamesRealistic.kt create mode 100644 examples/src/Point.kt diff --git a/docs/Kotlin-RivieraDev.ppt b/docs/Kotlin-RivieraDev.ppt index 58d23ed49e818d6962293766163235aa18b75016..77fb8065dd6bd59947c596ea560f6c7314a7724a 100644 GIT binary patch delta 37464 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 delta 34403 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 LMWT*go`?Sr9s=Co diff --git a/examples/src/HelloNamesRealistic.kt b/examples/src/HelloNamesRealistic.kt new file mode 100644 index 00000000000..e69de29bb2d diff --git a/examples/src/Point.kt b/examples/src/Point.kt new file mode 100644 index 00000000000..e69de29bb2d From a80398098b9726546080964b543075bef3d07dc9 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 20 Oct 2011 15:29:53 +0200 Subject: [PATCH 20/22] examples --- examples/src/HelloNamesRealistic.kt | 32 +++++++++++++++++++++++++++++ examples/src/Point.kt | 17 +++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/examples/src/HelloNamesRealistic.kt b/examples/src/HelloNamesRealistic.kt index e69de29bb2d..a144a5e1db5 100644 --- a/examples/src/HelloNamesRealistic.kt +++ b/examples/src/HelloNamesRealistic.kt @@ -0,0 +1,32 @@ +namespace HelloNamesRealistic + +fun main(args : Array) { + val names = args.join(", ") + println("Hello, $names!") +} + +fun println(message : String) { + // System.out is a nullable field + System.out?.println(message) +} + +fun Iterable.join(separator : String) : String? { + val names = StringBuilder() + forit (this) {(it: Iterator): Unit => + names += it.next() + if (it.hasNext()) + names += separator + } + return names.toString() +} + +fun forit(col : Iterable, f : fun(Iterator) : Unit) { + val it = col.iterator() + while (it.hasNext()) { + f(it) + } +} + +fun StringBuilder.plusAssign(s : String) { + this.append(s) +} diff --git a/examples/src/Point.kt b/examples/src/Point.kt index e69de29bb2d..83202ae6054 100644 --- a/examples/src/Point.kt +++ b/examples/src/Point.kt @@ -0,0 +1,17 @@ +class Point(val x: Int, val y: Int) { + fun toString() = "($x,$y)" + + fun distanceTo(other: Point): Double { + val dx = x - other.x + val dy = y - other.y + return Math.sqrt((dx*dx + dy*dy).dbl) + } +} + +fun main(args: Array) { + var p = Point(0, 0) + var q = Point(1, 1) + p.distanceTo(q) + + +} \ No newline at end of file From ec6dec0d379d5cee0f2d6f6e32f3d1fb7b320778 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 20 Oct 2011 16:19:02 +0200 Subject: [PATCH 21/22] separate compiler and plugin tests --- .idea/modules.xml | 1 + .../jet/lang/resolve/java}/AnalyzerFacade.java | 3 +-- .../jetbrains/jet/checkers/CheckerTestUtil.java | 0 .../testData/cfg/ArrayAccess.instructions | 0 {idea => compiler}/testData/cfg/ArrayAccess.jet | 0 .../testData/cfg/Assignments.instructions | 0 {idea => compiler}/testData/cfg/Assignments.jet | 0 .../testData/cfg/Basic.instructions | 0 {idea => compiler}/testData/cfg/Basic.jet | 0 .../testData/cfg/EmptyFunction.instructions | 0 .../testData/cfg/EmptyFunction.jet | 0 .../testData/cfg/FailFunction.instructions | 0 .../testData/cfg/FailFunction.jet | 0 .../testData/cfg/Finally.instructions | 0 {idea => compiler}/testData/cfg/Finally.jet | 0 .../testData/cfg/LazyBooleans.instructions | 0 .../testData/cfg/LazyBooleans.jet | 0 .../cfg/OnlyWhileInFunctionBody.instructions | 0 .../testData/cfg/OnlyWhileInFunctionBody.jet | 0 .../cfg/ReturnFromExpression.instructions | 0 .../testData/cfg/ReturnFromExpression.jet | 0 .../testData/cfg/ShortFunction.instructions | 0 .../testData/cfg/ShortFunction.jet | 0 .../testData/checker/Abstract.jet | 0 .../testData/checker/AnonymousInitializers.jet | 0 .../checker/BinaryCallsOnNullableValues.jet | 0 {idea => compiler}/testData/checker/Bounds.jet | 0 .../testData/checker/BreakContinue.jet | 0 .../testData/checker/Builders.jet | 0 {idea => compiler}/testData/checker/Casts.jet | 0 .../testData/checker/ClassObjects.jet | 0 .../testData/checker/Constants.jet | 0 .../testData/checker/Constructors.jet | 0 .../testData/checker/CyclicHierarchy.jet | 0 {idea => compiler}/testData/checker/Enums.jet | 0 .../testData/checker/ExtensionFunctions.jet | 0 .../testData/checker/ForRangeConventions.jet | 0 .../testData/checker/FunctionReturnTypes.jet | 0 .../checker/GenericArgumentConsistency.jet | 0 {idea => compiler}/testData/checker/IncDec.jet | 0 .../testData/checker/IsExpressions.jet | 0 .../testData/checker/MultipleBounds.jet | 0 .../testData/checker/NamespaceAsExpression.jet | 0 .../testData/checker/NamespaceQualified.jet | 0 .../testData/checker/Nullability.jet | 0 {idea => compiler}/testData/checker/Objects.jet | 0 .../testData/checker/Override.jet | 0 .../testData/checker/PrimaryConstructors.jet | 0 .../checker/ProjectionsInSupertypes.jet | 0 .../testData/checker/Properties.jet | 0 .../testData/checker/QualifiedExpressions.jet | 0 .../testData/checker/QualifiedThis.jet | 0 .../testData/checker/RecursiveTypeInference.jet | 0 .../testData/checker/Redeclarations.jet | 0 .../testData/checker/ResolveToJava.jet | 0 .../testData/checker/StringTemplates.jet | 0 .../testData/checker/SupertypeListChecks.jet | 0 .../testData/checker/TraitSupertypeList.jet | 0 .../testData/checker/UnreachableCode.jet | 0 .../testData/checker/Unresolved.jet | 0 .../testData/checker/Variance.jet | 0 {idea => compiler}/testData/checker/When.jet | 0 .../testData/checker/infos/Autocasts.jet | 0 .../infos/PropertiesWithBackingFields.jet | 0 .../testData/checker/infos/WrapIntoRef.jet | 0 .../AmbiguityOnLazyTypeComputation.jet | 0 .../regression/AssignmentsUnderOperators.jet | 0 .../checker/regression/CoercionToUnit.jet | 0 .../checker/regression/DoubleDefine.jet | 0 .../testData/checker/regression/Jet11.jet | 0 .../testData/checker/regression/Jet121.jet | 0 .../testData/checker/regression/Jet124.jet | 0 .../testData/checker/regression/Jet169.jet | 0 .../testData/checker/regression/Jet17.jet | 0 .../testData/checker/regression/Jet183-1.jet | 0 .../testData/checker/regression/Jet183.jet | 0 .../testData/checker/regression/Jet53.jet | 0 .../testData/checker/regression/Jet67.jet | 0 .../testData/checker/regression/Jet68.jet | 0 .../testData/checker/regression/Jet69.jet | 0 .../testData/checker/regression/Jet72.jet | 0 .../testData/checker/regression/Jet81.jet | 0 .../checker/regression/OverrideResolution.jet | 0 .../ScopeForSecondaryConstructors.jet | 0 .../regression/SpecififcityByReceiver.jet | 0 .../ThisConstructorInGenericClass.jet | 0 .../regression/WrongTraceInCallResolver.jet | 0 .../testData/checker/regression/kt251.jet | 0 .../testData/checker/regression/kt303.jet | 0 .../checkerTestUtil/test.jet | 0 .../checkerWithErrorTypes/full/Abstract.jet | 0 .../full/AnonymousInitializers.jet | 0 .../full/BinaryCallsOnNullableValues.jet | 0 .../checkerWithErrorTypes/full/Bounds.jet | 0 .../full/BreakContinue.jet | 0 .../checkerWithErrorTypes/full/Builders.jet | 0 .../checkerWithErrorTypes/full/Casts.jet | 0 .../checkerWithErrorTypes/full/ClassObjects.jet | 0 .../checkerWithErrorTypes/full/Constants.jet | 0 .../checkerWithErrorTypes/full/Constructors.jet | 0 .../full/CovariantOverrideType.jet | 0 .../full/CyclicHierarchy.jet | 0 .../checkerWithErrorTypes/full/Enums.jet | 0 .../full/ExtensionFunctions.jet | 0 .../full/ForRangeConventions.jet | 0 .../full/FunctionReturnTypes.jet | 0 .../full/GenericArgumentConsistency.jet | 0 .../full/IllegalModifiers.jet | 0 .../checkerWithErrorTypes/full/IncDec.jet | 0 .../full/IsExpressions.jet | 0 .../full/MultipleBounds.jet | 0 .../full/NamespaceAsExpression.jet | 0 .../full/NamespaceInExpressionPosition.jet | 0 .../full/NamespaceQualified.jet | 0 .../checkerWithErrorTypes/full/Nullability.jet | 0 .../checkerWithErrorTypes/full/Objects.jet | 0 .../full/PrimaryConstructors.jet | 0 .../full/ProjectionsInSupertypes.jet | 0 .../checkerWithErrorTypes/full/Properties.jet | 0 .../full/QualifiedExpressions.jet | 0 .../full/QualifiedThis.jet | 0 .../full/RecursiveTypeInference.jet | 0 .../full/Redeclarations.jet | 0 .../full/ResolveToJava.jet | 0 .../checkerWithErrorTypes/full/Return.jet | 0 .../full/StringTemplates.jet | 0 .../full/SupertypeListChecks.jet | 0 .../full/TraitSupertypeList.jet | 0 .../full/UnreachableCode.jet | 0 .../checkerWithErrorTypes/full/Unresolved.jet | 0 .../ValAndFunOverrideCompatibilityClash.jet | 0 .../checkerWithErrorTypes/full/Variance.jet | 0 .../checkerWithErrorTypes/full/When.jet | 0 .../full/infos/Autocasts.jet | 0 .../full/infos/PropertiesWithBackingFields.jet | 0 .../AmbiguityOnLazyTypeComputation.jet | 0 .../regression/AssignmentsUnderOperators.jet | 0 .../full/regression/CoercionToUnit.jet | 0 .../full/regression/DoubleDefine.jet | 0 .../full/regression/Jet11.jet | 0 .../full/regression/Jet121.jet | 0 .../full/regression/Jet124.jet | 0 .../full/regression/Jet169.jet | 0 .../full/regression/Jet17.jet | 0 .../full/regression/Jet183-1.jet | 0 .../full/regression/Jet183.jet | 0 .../full/regression/Jet53.jet | 0 .../full/regression/Jet67.jet | 0 .../full/regression/Jet68.jet | 0 .../full/regression/Jet69.jet | 0 .../full/regression/Jet72.jet | 0 .../full/regression/Jet81.jet | 0 .../full/regression/OverrideResolution.jet | 0 .../ScopeForSecondaryConstructors.jet | 0 .../full/regression/SpecififcityByReceiver.jet | 0 .../ThisConstructorInGenericClass.jet | 0 .../regression/WrongTraceInCallResolver.jet | 0 .../full/regression/kt251.jet | 0 .../full/regression/kt303.jet | 0 .../quick/AutoCreatedIt.jet | 0 .../quick/AutocastAmbiguitites.jet | 0 .../quick/AutocastsForStableIdentifiers.jet | 0 .../checkerWithErrorTypes/quick/Basic.jet | 0 .../quick/DefaultValuesTypechecking.jet | 0 .../quick/DeferredTypes.jet | 0 .../quick/DelegationAndOverriding.jet | 0 .../quick/DelegationNotTotrait.jet | 0 .../quick/NamedArgumentsAndDefaultValues.jet | 0 .../checkerWithErrorTypes/quick/Override.jet | 0 .../quick/OverridingVarByVal.jet | 0 .../checkerWithErrorTypes/quick/Varargs.jet | 0 .../InfixCallNullability.jet | 0 .../NullableNothingIsExactlyNull.jet | 0 .../PreferExtensionsOnNullableReceiver.jet | 0 .../ReceiverNullability.jet | 0 .../quick/nullabilityAndAutoCasts/kt362.jet | 0 .../quick/regressions/kt306.jet | 0 .../quick/regressions/kt307.jet | 0 .../quick/regressions/kt316.jet | 0 {idea => compiler}/testData/codegen/PSVM.jet | 0 {idea => compiler}/testData/codegen/assign.jet | 0 {idea => compiler}/testData/codegen/bottles.jet | 0 .../testData/codegen/bottles2.jet | 0 {idea => compiler}/testData/codegen/bridge.jet | 0 .../testData/codegen/checkCast.jet | 0 .../testData/codegen/classes/classObject.jet | 0 .../codegen/classes/classObjectInterface.jet | 0 .../codegen/classes/classObjectMethod.jet | 0 .../codegen/classes/closureWithParameter.jet | 0 .../classes/closureWithParameterAndBoxing.jet | 0 .../codegen/classes/diamondInheritance.jet | 0 .../classes/doubleEnclosedLocalVariable.jet | 0 .../codegen/classes/enclosingLocalVariable.jet | 0 .../testData/codegen/classes/enclosingThis.jet | 0 .../codegen/classes/exceptionConstructor.jet | 0 .../codegen/classes/extensionClosure.jet | 0 .../testData/codegen/classes/funDelegation.jet | 0 .../testData/codegen/classes/inheritance.jet | 0 .../codegen/classes/inheritedInnerClass.jet | 0 .../codegen/classes/inheritedMethod.jet | 0 .../codegen/classes/inheritingFromArrayList.jet | 0 .../codegen/classes/initializerBlock.jet | 0 .../codegen/classes/initializerBlockDImpl.jet | 0 .../testData/codegen/classes/innerClass.jet | 0 .../classes/newInstanceDefaultConstructor.jet | 0 .../testData/codegen/classes/outerThis.jet | 0 .../codegen/classes/overloadBinaryOperator.jet | 0 .../codegen/classes/overloadPlusAssign.jet | 0 .../classes/overloadPlusAssignReturn.jet | 0 .../classes/overloadPlusToPlusAssign.jet | 0 .../codegen/classes/overloadUnaryOperator.jet | 0 .../codegen/classes/propertyDelegation.jet | 0 .../codegen/classes/propertyInInitializer.jet | 0 .../codegen/classes/rightHandOverride.jet | 0 .../codegen/classes/secondaryConstructors.jet | 0 .../testData/codegen/classes/simpleBox.jet | 0 .../testData/codegen/classes/simpleClass.jet | 0 .../codegen/classes/simplestClosure.jet | 0 .../classes/simplestClosureAndBoxing.jet | 0 .../codegen/controlStructures/break.jet | 0 .../codegen/controlStructures/continue.jet | 0 .../codegen/controlStructures/doWhile.jet | 0 .../testData/codegen/controlStructures/for.jet | 0 .../codegen/controlStructures/forInArray.jet | 0 .../codegen/controlStructures/forIntArray.jet | 0 .../codegen/controlStructures/forIntRange.jet | 0 .../controlStructures/forNullableIntArray.jet | 0 .../controlStructures/forPrimitiveIntArray.jet | 0 .../codegen/controlStructures/forUserType.jet | 0 .../testData/codegen/controlStructures/if.jet | 0 .../codegen/controlStructures/ifBlock.jet | 0 .../codegen/controlStructures/ifNoElse.jet | 0 .../controlStructures/singleBranchIf.jet | 0 .../codegen/controlStructures/tryCatch.jet | 0 .../codegen/controlStructures/tryFinally.jet | 0 .../codegen/controlStructures/while.jet | 0 .../codegen/extensionFunctions/generic.jet | 0 .../codegen/extensionFunctions/simple.jet | 0 .../codegen/extensionFunctions/whenFail.jet | 0 .../testData/codegen/functionCall.jet | 0 .../testData/codegen/functions/defaultargs.jet | 0 .../testData/codegen/functions/namedargs.jet | 0 .../codegen/functions/nothisnoclosure.jet | 0 .../testData/codegen/helloWorld.jet | 0 .../testData/codegen/incrementProperty.jet | 0 .../testData/codegen/localProperty.jet | 0 .../codegen/namespaceQualifiedMethod.jet | 0 .../codegen/newInstanceExplicitConstructor.jet | 0 .../testData/codegen/objects/methodOnObject.jet | 0 .../testData/codegen/objects/objectLiteral.jet | 0 .../testData/codegen/objects/simpleObject.jet | 0 .../codegen/patternMatching/callProperty.jet | 0 .../codegen/patternMatching/constant.jet | 0 .../patternMatching/exceptionOnNoMatch.jet | 0 .../codegen/patternMatching/inrange.jet | 0 .../testData/codegen/patternMatching/is.jet | 0 .../codegen/patternMatching/pattern.jet | 0 .../testData/codegen/patternMatching/range.jet | 0 .../codegen/patternMatching/rangeChar.jet | 0 .../codegen/properties/fieldPropertyAccess.jet | 0 .../testData/codegen/properties/fieldSetter.jet | 0 .../codegen/properties/fieldSetterPlusEq.jet | 0 .../testData/codegen/properties/privateVal.jet | 0 .../testData/codegen/properties/privateVar.jet | 0 .../properties/propertyReceiverOnStack.jet | 0 .../testData/codegen/regressions/kt232.jet | 0 .../testData/codegen/regressions/kt237.jet | 0 .../testData/codegen/regressions/kt238.jet | 0 .../testData/codegen/regressions/kt239.jet | 0 .../testData/codegen/regressions/kt242.jet | 0 .../testData/codegen/regressions/kt243.jet | 0 .../testData/codegen/regressions/kt245.jet | 0 .../testData/codegen/regressions/kt247.jet | 0 .../testData/codegen/regressions/kt248.jet | 0 .../testData/codegen/regressions/kt249.jet | 0 .../testData/codegen/regressions/kt257.jet | 0 .../testData/codegen/regressions/kt259.jet | 0 .../testData/codegen/regressions/kt297.jet | 0 .../testData/codegen/regressions/kt299.jet | 0 .../testData/codegen/regressions/kt326.jet | 0 .../testData/codegen/regressions/kt343.jet | 0 .../testData/codegen/regressions/kt344.jet | 0 .../testData/codegen/regressions/kt48.jet | 0 .../testData/codegen/systemOut.jet | 0 .../testData/codegen/traits/multiple.jet | 0 .../testData/codegen/traits/simple.jet | 0 .../testData/codegen/traits/stdlib.jet | 0 .../testData/codegen/traits/withRequired.jet | 0 .../testData/codegen/typeInfo/asInLoop.jet | 0 .../codegen/typeInfo/asSafeWithGenerics.jet | 0 .../codegen/typeInfo/classObjectInTypeInfo.jet | 0 .../codegen/typeInfo/forwardTypeParameter.jet | 0 .../codegen/typeInfo/genericFunction.jet | 0 .../testData/codegen/typeInfo/getTypeInfo.jet | 0 .../testData/codegen/typeInfo/inner.jet | 0 .../codegen/typeInfo/isTypeParameter.jet | 0 .../typeInfo/isWithGenericParameters.jet | 0 .../codegen/typeInfo/isWithGenerics.jet | 0 .../testData/codegen/typeInfo/nullability.jet | 0 .../codegen/typeInfo/oneArgTypeinfo.jet | 0 .../codegen/typeInfo/primitiveTypeInfo.jet | 0 .../mockJDK-1.7/jre/lib/annotations.jar | Bin .../testData/mockJDK-1.7/jre/lib/rt.jar | Bin {idea => compiler}/testData/mockJDK-1.7/src.zip | Bin .../testData/psi/AnnotatedExpressions.jet | 0 .../testData/psi/AnnotatedExpressions.txt | 0 .../testData/psi/AnonymousInitializer.jet | 0 .../testData/psi/AnonymousInitializer.txt | 0 {idea => compiler}/testData/psi/Attributes.jet | 0 {idea => compiler}/testData/psi/Attributes.txt | 0 .../testData/psi/AttributesOnPatterns.jet | 0 .../testData/psi/AttributesOnPatterns.txt | 0 .../testData/psi/Attributes_ERR.jet | 0 .../testData/psi/Attributes_ERR.txt | 0 {idea => compiler}/testData/psi/BabySteps.jet | 0 {idea => compiler}/testData/psi/BabySteps.txt | 0 .../testData/psi/BabySteps_ERR.jet | 0 .../testData/psi/BabySteps_ERR.txt | 0 {idea => compiler}/testData/psi/ByCaluses.jet | 0 {idea => compiler}/testData/psi/ByCaluses.txt | 0 .../testData/psi/CallWithManyClosures.jet | 0 .../testData/psi/CallWithManyClosures.txt | 0 {idea => compiler}/testData/psi/CallsInWhen.jet | 0 {idea => compiler}/testData/psi/CallsInWhen.txt | 0 .../testData/psi/Constructors.jet | 0 .../testData/psi/Constructors.txt | 0 .../testData/psi/ControlStructures.jet | 0 .../testData/psi/ControlStructures.txt | 0 .../testData/psi/EOLsInComments.jet | 0 .../testData/psi/EOLsInComments.txt | 0 .../testData/psi/EOLsOnRollback.jet | 0 .../testData/psi/EOLsOnRollback.txt | 0 {idea => compiler}/testData/psi/EmptyFile.jet | 0 {idea => compiler}/testData/psi/EmptyFile.txt | 0 {idea => compiler}/testData/psi/Enums.jet | 0 {idea => compiler}/testData/psi/Enums.txt | 0 .../testData/psi/Expressions_ERR.jet | 0 .../testData/psi/Expressions_ERR.txt | 0 .../testData/psi/FileStart_ERR.jet | 0 .../testData/psi/FileStart_ERR.txt | 0 .../testData/psi/FunctionCalls.jet | 0 .../testData/psi/FunctionCalls.txt | 0 .../testData/psi/FunctionLiterals.jet | 0 .../testData/psi/FunctionLiterals.txt | 0 .../testData/psi/FunctionLiterals_ERR.jet | 0 .../testData/psi/FunctionLiterals_ERR.txt | 0 .../testData/psi/FunctionTypes.jet | 0 .../testData/psi/FunctionTypes.txt | 0 .../testData/psi/FunctionTypes_ERR.jet | 0 .../testData/psi/FunctionTypes_ERR.txt | 0 {idea => compiler}/testData/psi/Functions.jet | 0 {idea => compiler}/testData/psi/Functions.txt | 0 .../testData/psi/Functions_ERR.jet | 0 .../testData/psi/Functions_ERR.txt | 0 .../testData/psi/HangOnLonelyModifier.jet | 0 .../testData/psi/HangOnLonelyModifier.txt | 0 .../testData/psi/IfWithPropery.jet | 0 .../testData/psi/IfWithPropery.txt | 0 .../testData/psi/ImportSoftKW.jet | 0 .../testData/psi/ImportSoftKW.txt | 0 {idea => compiler}/testData/psi/Imports.jet | 0 {idea => compiler}/testData/psi/Imports.txt | 0 {idea => compiler}/testData/psi/Imports_ERR.jet | 0 {idea => compiler}/testData/psi/Imports_ERR.txt | 0 {idea => compiler}/testData/psi/Labels.jet | 0 {idea => compiler}/testData/psi/Labels.txt | 0 .../testData/psi/LocalDeclarations.jet | 0 .../testData/psi/LocalDeclarations.txt | 0 .../testData/psi/ModifierAsSelector.jet | 0 .../testData/psi/ModifierAsSelector.txt | 0 .../testData/psi/NamespaceBlock.jet | 0 .../testData/psi/NamespaceBlock.txt | 0 .../testData/psi/NamespaceBlockFirst.jet | 0 .../testData/psi/NamespaceBlockFirst.txt | 0 .../testData/psi/NamespaceBlock_ERR.jet | 0 .../testData/psi/NamespaceBlock_ERR.txt | 0 .../testData/psi/NamespaceModifiers.jet | 0 .../testData/psi/NamespaceModifiers.txt | 0 .../testData/psi/NewlinesInParentheses.jet | 0 .../testData/psi/NewlinesInParentheses.txt | 0 .../testData/psi/NotIsAndNotIn.jet | 0 .../testData/psi/NotIsAndNotIn.txt | 0 {idea => compiler}/testData/psi/Precedence.jet | 0 {idea => compiler}/testData/psi/Precedence.txt | 0 .../testData/psi/PredicateExpression.jet | 0 .../testData/psi/PredicateExpression.txt | 0 {idea => compiler}/testData/psi/Properties.jet | 0 {idea => compiler}/testData/psi/Properties.txt | 0 .../psi/PropertiesFollowedByInitializers.jet | 0 .../psi/PropertiesFollowedByInitializers.txt | 0 .../testData/psi/Properties_ERR.jet | 0 .../testData/psi/Properties_ERR.txt | 0 .../testData/psi/QuotedIdentifiers.jet | 0 .../testData/psi/QuotedIdentifiers.txt | 0 .../testData/psi/RootNamespace.jet | 0 .../testData/psi/RootNamespace.txt | 0 .../testData/psi/SemicolonAfterIf.jet | 0 .../testData/psi/SemicolonAfterIf.txt | 0 .../testData/psi/ShortAnnotations.jet | 0 .../testData/psi/ShortAnnotations.txt | 0 .../testData/psi/SimpleClassMembers.jet | 0 .../testData/psi/SimpleClassMembers.txt | 0 .../testData/psi/SimpleClassMembers_ERR.jet | 0 .../testData/psi/SimpleClassMembers_ERR.txt | 0 .../testData/psi/SimpleExpressions.jet | 0 .../testData/psi/SimpleExpressions.txt | 0 .../testData/psi/SimpleModifiers.jet | 0 .../testData/psi/SimpleModifiers.txt | 0 .../testData/psi/SoftKeywords.jet | 0 .../testData/psi/SoftKeywords.txt | 0 .../psi/SoftKeywordsInTypeArguments.jet | 0 .../psi/SoftKeywordsInTypeArguments.txt | 0 .../testData/psi/StringTemplates.jet | 0 .../testData/psi/StringTemplates.txt | 0 {idea => compiler}/testData/psi/ThisType.jet | 0 {idea => compiler}/testData/psi/ThisType.txt | 0 {idea => compiler}/testData/psi/TupleTypes.jet | 0 {idea => compiler}/testData/psi/TupleTypes.txt | 0 .../testData/psi/TupleTypes_ERR.jet | 0 .../testData/psi/TupleTypes_ERR.txt | 0 .../testData/psi/TuplesWithLabeledEntries.jet | 0 .../testData/psi/TuplesWithLabeledEntries.txt | 0 .../testData/psi/TypeAnnotations.jet | 0 .../testData/psi/TypeAnnotations.txt | 0 .../testData/psi/TypeConstraints.jet | 0 .../testData/psi/TypeConstraints.txt | 0 {idea => compiler}/testData/psi/TypeDef.jet | 0 {idea => compiler}/testData/psi/TypeDef.txt | 0 {idea => compiler}/testData/psi/TypeDef_ERR.jet | 0 {idea => compiler}/testData/psi/TypeDef_ERR.txt | 0 .../psi/TypeExpressionAmbiguities_ERR.jet | 0 .../psi/TypeExpressionAmbiguities_ERR.txt | 0 .../testData/psi/TypeParametersBeforeName.jet | 0 .../testData/psi/TypeParametersBeforeName.txt | 0 {idea => compiler}/testData/psi/When.jet | 0 {idea => compiler}/testData/psi/When.txt | 0 {idea => compiler}/testData/psi/When_ERR.jet | 0 {idea => compiler}/testData/psi/When_ERR.txt | 0 .../testData/psi/examples/AnonymousObjects.jet | 0 .../testData/psi/examples/AnonymousObjects.txt | 0 .../testData/psi/examples/BinaryTree.jet | 0 .../testData/psi/examples/BinaryTree.txt | 0 .../testData/psi/examples/BitArith.jet | 0 .../testData/psi/examples/BitArith.txt | 0 .../testData/psi/examples/Builder.jet | 0 .../testData/psi/examples/Builder.txt | 0 .../testData/psi/examples/Color.jet | 0 .../testData/psi/examples/Color.txt | 0 .../testData/psi/examples/FunctionsAndTypes.jet | 0 .../testData/psi/examples/FunctionsAndTypes.txt | 0 .../testData/psi/examples/Graph.jet | 0 .../testData/psi/examples/Graph.txt | 0 .../testData/psi/examples/IPushPop.jet | 0 .../testData/psi/examples/IPushPop.txt | 0 .../testData/psi/examples/LINQ.jet | 0 .../testData/psi/examples/LINQ.txt | 0 .../psi/examples/PolymorphicClassObjects.jet | 0 .../psi/examples/PolymorphicClassObjects.txt | 0 .../testData/psi/examples/Queue.jet | 0 .../testData/psi/examples/Queue.txt | 0 .../testData/psi/examples/Stack.jet | 0 .../testData/psi/examples/Stack.txt | 0 .../testData/psi/examples/UnionFind.jet | 0 .../testData/psi/examples/UnionFind.txt | 0 .../testData/psi/examples/UpdateOperation.jet | 0 .../testData/psi/examples/UpdateOperation.txt | 0 .../testData/psi/examples/With.jet | 0 .../testData/psi/examples/With.txt | 0 .../psi/examples/array/MutableArray.jet | 0 .../psi/examples/array/MutableArray.txt | 0 .../psi/examples/collections/ArrayList.jet | 0 .../psi/examples/collections/ArrayList.txt | 0 .../psi/examples/collections/HashMap.jet | 0 .../psi/examples/collections/HashMap.txt | 0 .../psi/examples/collections/IIterable.jet | 0 .../psi/examples/collections/IIterable.txt | 0 .../psi/examples/collections/IIterator.jet | 0 .../psi/examples/collections/IIterator.txt | 0 .../testData/psi/examples/collections/IList.jet | 0 .../testData/psi/examples/collections/IList.txt | 0 .../examples/collections/IMutableIterable.jet | 0 .../examples/collections/IMutableIterable.txt | 0 .../examples/collections/IMutableIterator.jet | 0 .../examples/collections/IMutableIterator.txt | 0 .../psi/examples/collections/IMutableList.jet | 0 .../psi/examples/collections/IMutableList.txt | 0 .../psi/examples/collections/IMutableSet.jet | 0 .../psi/examples/collections/IMutableSet.txt | 0 .../testData/psi/examples/collections/ISet.jet | 0 .../testData/psi/examples/collections/ISet.txt | 0 .../psi/examples/collections/ISized.jet | 0 .../psi/examples/collections/ISized.txt | 0 .../psi/examples/collections/LinkedList.jet | 0 .../psi/examples/collections/LinkedList.txt | 0 .../testData/psi/examples/collections/List.jet | 0 .../testData/psi/examples/collections/List.txt | 0 .../testData/psi/examples/io/IOSamples.jet | 0 .../testData/psi/examples/io/IOSamples.txt | 0 .../testData/psi/examples/map/IMap.jet | 0 .../testData/psi/examples/map/IMap.txt | 0 .../psi/examples/priorityqueues/BinaryHeap.jet | 0 .../psi/examples/priorityqueues/BinaryHeap.txt | 0 .../examples/priorityqueues/IPriorityQueue.jet | 0 .../examples/priorityqueues/IPriorityQueue.txt | 0 .../priorityqueues/PriorityQueueAsPushPop.jet | 0 .../priorityqueues/PriorityQueueAsPushPop.txt | 0 .../testData/psi/examples/util/Comparison.jet | 0 .../testData/psi/examples/util/Comparison.txt | 0 .../testData/psi/examples/util/IComparable.jet | 0 .../testData/psi/examples/util/IComparable.txt | 0 .../FunctionTypesWithFunctionReceivers.jet | 0 .../FunctionsWithFunctionReceivers.jet | 0 .../PropertiesWithFunctionReceivers.jet | 0 {idea => compiler}/testData/resolve/Basic.jet | 0 .../testData/resolve/ClassObjects.jet | 0 .../testData/resolve/Classifiers.jet | 0 .../resolve/ConstructorsAndInitializers.jet | 0 .../testData/resolve/ErrorSupertype.jet | 0 .../testData/resolve/ExtensionFunctions.jet | 0 .../testData/resolve/FunctionVariable.jet | 0 .../testData/resolve/LocalObjects.jet | 0 .../testData/resolve/Namespaces.jet | 0 .../testData/resolve/NestedObjects.jet | 0 {idea => compiler}/testData/resolve/Objects.jet | 0 .../resolve/PrimaryConstructorParameters.jet | 0 .../testData/resolve/PrimaryConstructors.jet | 0 .../testData/resolve/Projections.jet | 0 .../resolve/ResolveOfInfixExpressions.jet | 0 .../testData/resolve/ResolveToJava.jet | 0 .../testData/resolve/ScopeInteraction.jet | 0 .../testData/resolve/StringTemplates.jet | 0 .../testData/resolve/TryCatch.jet | 0 .../testData/resolve/regressions/kt300.jet | 0 compiler/tests/compiler-tests.iml | 16 ++++++++++++++++ .../jet/JetLightProjectDescriptor.java | 0 .../tests/org/jetbrains/jet/JetLiteFixture.java | 0 .../org/jetbrains/jet/JetTestCaseBase.java | 4 ++-- .../tests/org/jetbrains/jet/JetTestUtils.java | 0 .../jetbrains/jet/cfg/JetControlFlowTest.java | 2 +- .../jet/checkers/CheckerTestUtilTest.java | 0 .../jet/checkers/FullJetPsiCheckerTest.java | 3 ++- .../jet/checkers/JetPsiCheckerTest.java | 0 .../jet/checkers/QuickJetPsiCheckerTest.java | 0 .../org/jetbrains/jet/codegen/ArrayGenTest.java | 4 ---- .../jet/codegen/BridgeMethodGenTest.java | 2 -- .../org/jetbrains/jet/codegen/ClassGenTest.java | 0 .../jetbrains/jet/codegen/ClosuresGenTest.java | 0 .../jetbrains/jet/codegen/CodegenTestCase.java | 0 .../jet/codegen/ControlStructuresTest.java | 0 .../jet/codegen/ExtensionFunctionsTest.java | 0 .../jetbrains/jet/codegen/FunctionGenTest.java | 0 .../jetbrains/jet/codegen/NamespaceGenTest.java | 0 .../jetbrains/jet/codegen/ObjectGenTest.java | 0 .../jet/codegen/PatternMatchingTest.java | 0 .../jet/codegen/PrimitiveTypesTest.java | 0 .../jetbrains/jet/codegen/PropertyGenTest.java | 0 .../org/jetbrains/jet/codegen/SafeRefTest.java | 0 .../org/jetbrains/jet/codegen/TraitsTest.java | 0 .../org/jetbrains/jet/codegen/TypeInfoTest.java | 0 .../jet/parsing/JetCodeConformanceTest.java | 0 .../jetbrains/jet/parsing/JetParsingTest.java | 2 +- .../jet/resolve/ExpectedResolveData.java | 6 ++++-- .../jet/resolve/ExtensibleResolveTestCase.java | 0 .../jetbrains/jet/resolve/JetResolveTest.java | 10 ++++++---- .../types/JetDefaultModalityModifiersTest.java | 2 +- .../jetbrains/jet/types/JetOverridingTest.java | 6 +++--- .../jetbrains/jet/types/JetTypeCheckerTest.java | 2 +- idea/idea.iml | 1 + .../plugin/JetQuickDocumentationProvider.java | 1 + .../actions/CopyAsDiagnosticTestAction.java | 2 +- .../actions/ShowExpressionTypeAction.java | 2 +- .../plugin/annotations/DebugInfoAnnotator.java | 2 +- .../annotations/JetLineMarkerProvider.java | 2 +- .../jet/plugin/annotations/JetPsiChecker.java | 2 +- .../jet/plugin/debugger/JetPositionManager.java | 2 +- .../jet/plugin/references/JetPsiReference.java | 2 +- .../references/JetSimpleNameReference.java | 2 +- .../quickfix/AbstractModifierFixTest.java | 3 +-- .../quickfix/AddPrimaryConstructorFixTest.java | 2 +- .../ChangeVariableMutabilityFixTest.java | 3 +-- .../jet/plugin/quickfix/ClassImportFixTest.java | 2 +- .../jet/plugin/quickfix/ExpressionsFixTest.java | 2 +- .../jet/plugin/quickfix/ModifiersFixTest.java | 2 +- .../quickfix/OverrideModifierFixTest.java | 2 +- .../jet/plugin/quickfix/PluginTestCaseBase.java | 12 ++++++++++++ .../plugin/quickfix/TypeAdditionFixTests.java | 2 +- 586 files changed, 69 insertions(+), 42 deletions(-) rename {idea/src/org/jetbrains/jet/plugin => compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java}/AnalyzerFacade.java (89%) rename {idea => compiler/frontend}/src/org/jetbrains/jet/checkers/CheckerTestUtil.java (100%) rename {idea => compiler}/testData/cfg/ArrayAccess.instructions (100%) rename {idea => compiler}/testData/cfg/ArrayAccess.jet (100%) rename {idea => compiler}/testData/cfg/Assignments.instructions (100%) rename {idea => compiler}/testData/cfg/Assignments.jet (100%) rename {idea => compiler}/testData/cfg/Basic.instructions (100%) rename {idea => compiler}/testData/cfg/Basic.jet (100%) rename {idea => compiler}/testData/cfg/EmptyFunction.instructions (100%) rename {idea => compiler}/testData/cfg/EmptyFunction.jet (100%) rename {idea => compiler}/testData/cfg/FailFunction.instructions (100%) rename {idea => compiler}/testData/cfg/FailFunction.jet (100%) rename {idea => compiler}/testData/cfg/Finally.instructions (100%) rename {idea => compiler}/testData/cfg/Finally.jet (100%) rename {idea => compiler}/testData/cfg/LazyBooleans.instructions (100%) rename {idea => compiler}/testData/cfg/LazyBooleans.jet (100%) rename {idea => compiler}/testData/cfg/OnlyWhileInFunctionBody.instructions (100%) rename {idea => compiler}/testData/cfg/OnlyWhileInFunctionBody.jet (100%) rename {idea => compiler}/testData/cfg/ReturnFromExpression.instructions (100%) rename {idea => compiler}/testData/cfg/ReturnFromExpression.jet (100%) rename {idea => compiler}/testData/cfg/ShortFunction.instructions (100%) rename {idea => compiler}/testData/cfg/ShortFunction.jet (100%) rename {idea => compiler}/testData/checker/Abstract.jet (100%) rename {idea => compiler}/testData/checker/AnonymousInitializers.jet (100%) rename {idea => compiler}/testData/checker/BinaryCallsOnNullableValues.jet (100%) rename {idea => compiler}/testData/checker/Bounds.jet (100%) rename {idea => compiler}/testData/checker/BreakContinue.jet (100%) rename {idea => compiler}/testData/checker/Builders.jet (100%) rename {idea => compiler}/testData/checker/Casts.jet (100%) rename {idea => compiler}/testData/checker/ClassObjects.jet (100%) rename {idea => compiler}/testData/checker/Constants.jet (100%) rename {idea => compiler}/testData/checker/Constructors.jet (100%) rename {idea => compiler}/testData/checker/CyclicHierarchy.jet (100%) rename {idea => compiler}/testData/checker/Enums.jet (100%) rename {idea => compiler}/testData/checker/ExtensionFunctions.jet (100%) rename {idea => compiler}/testData/checker/ForRangeConventions.jet (100%) rename {idea => compiler}/testData/checker/FunctionReturnTypes.jet (100%) rename {idea => compiler}/testData/checker/GenericArgumentConsistency.jet (100%) rename {idea => compiler}/testData/checker/IncDec.jet (100%) rename {idea => compiler}/testData/checker/IsExpressions.jet (100%) rename {idea => compiler}/testData/checker/MultipleBounds.jet (100%) rename {idea => compiler}/testData/checker/NamespaceAsExpression.jet (100%) rename {idea => compiler}/testData/checker/NamespaceQualified.jet (100%) rename {idea => compiler}/testData/checker/Nullability.jet (100%) rename {idea => compiler}/testData/checker/Objects.jet (100%) rename {idea => compiler}/testData/checker/Override.jet (100%) rename {idea => compiler}/testData/checker/PrimaryConstructors.jet (100%) rename {idea => compiler}/testData/checker/ProjectionsInSupertypes.jet (100%) rename {idea => compiler}/testData/checker/Properties.jet (100%) rename {idea => compiler}/testData/checker/QualifiedExpressions.jet (100%) rename {idea => compiler}/testData/checker/QualifiedThis.jet (100%) rename {idea => compiler}/testData/checker/RecursiveTypeInference.jet (100%) rename {idea => compiler}/testData/checker/Redeclarations.jet (100%) rename {idea => compiler}/testData/checker/ResolveToJava.jet (100%) rename {idea => compiler}/testData/checker/StringTemplates.jet (100%) rename {idea => compiler}/testData/checker/SupertypeListChecks.jet (100%) rename {idea => compiler}/testData/checker/TraitSupertypeList.jet (100%) rename {idea => compiler}/testData/checker/UnreachableCode.jet (100%) rename {idea => compiler}/testData/checker/Unresolved.jet (100%) rename {idea => compiler}/testData/checker/Variance.jet (100%) rename {idea => compiler}/testData/checker/When.jet (100%) rename {idea => compiler}/testData/checker/infos/Autocasts.jet (100%) rename {idea => compiler}/testData/checker/infos/PropertiesWithBackingFields.jet (100%) rename {idea => compiler}/testData/checker/infos/WrapIntoRef.jet (100%) rename {idea => compiler}/testData/checker/regression/AmbiguityOnLazyTypeComputation.jet (100%) rename {idea => compiler}/testData/checker/regression/AssignmentsUnderOperators.jet (100%) rename {idea => compiler}/testData/checker/regression/CoercionToUnit.jet (100%) rename {idea => compiler}/testData/checker/regression/DoubleDefine.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet11.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet121.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet124.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet169.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet17.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet183-1.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet183.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet53.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet67.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet68.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet69.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet72.jet (100%) rename {idea => compiler}/testData/checker/regression/Jet81.jet (100%) rename {idea => compiler}/testData/checker/regression/OverrideResolution.jet (100%) rename {idea => compiler}/testData/checker/regression/ScopeForSecondaryConstructors.jet (100%) rename {idea => compiler}/testData/checker/regression/SpecififcityByReceiver.jet (100%) rename {idea => compiler}/testData/checker/regression/ThisConstructorInGenericClass.jet (100%) rename {idea => compiler}/testData/checker/regression/WrongTraceInCallResolver.jet (100%) rename {idea => compiler}/testData/checker/regression/kt251.jet (100%) rename {idea => compiler}/testData/checker/regression/kt303.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/checkerTestUtil/test.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Abstract.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/AnonymousInitializers.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/BinaryCallsOnNullableValues.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Bounds.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/BreakContinue.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Builders.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Casts.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ClassObjects.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Constants.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Constructors.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/CovariantOverrideType.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/CyclicHierarchy.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Enums.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ExtensionFunctions.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ForRangeConventions.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/FunctionReturnTypes.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/GenericArgumentConsistency.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/IllegalModifiers.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/IncDec.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/IsExpressions.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/MultipleBounds.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/NamespaceAsExpression.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/NamespaceInExpressionPosition.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/NamespaceQualified.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Nullability.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Objects.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/PrimaryConstructors.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ProjectionsInSupertypes.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Properties.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/QualifiedExpressions.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/QualifiedThis.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/RecursiveTypeInference.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Redeclarations.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ResolveToJava.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Return.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/StringTemplates.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/SupertypeListChecks.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/TraitSupertypeList.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/UnreachableCode.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Unresolved.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/ValAndFunOverrideCompatibilityClash.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/Variance.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/When.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/infos/Autocasts.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/infos/PropertiesWithBackingFields.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/AmbiguityOnLazyTypeComputation.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/AssignmentsUnderOperators.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/CoercionToUnit.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/DoubleDefine.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet11.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet121.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet124.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet169.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet17.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet183-1.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet183.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet53.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet67.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet68.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet69.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet72.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/Jet81.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/OverrideResolution.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/ScopeForSecondaryConstructors.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/SpecififcityByReceiver.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/ThisConstructorInGenericClass.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/WrongTraceInCallResolver.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/kt251.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/full/regression/kt303.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/AutoCreatedIt.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/AutocastAmbiguitites.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/Basic.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/DefaultValuesTypechecking.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/DeferredTypes.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/DelegationAndOverriding.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/DelegationNotTotrait.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/NamedArgumentsAndDefaultValues.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/Override.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/OverridingVarByVal.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/Varargs.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/InfixCallNullability.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/PreferExtensionsOnNullableReceiver.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/ReceiverNullability.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/regressions/kt306.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/regressions/kt307.jet (100%) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/regressions/kt316.jet (100%) rename {idea => compiler}/testData/codegen/PSVM.jet (100%) rename {idea => compiler}/testData/codegen/assign.jet (100%) rename {idea => compiler}/testData/codegen/bottles.jet (100%) rename {idea => compiler}/testData/codegen/bottles2.jet (100%) rename {idea => compiler}/testData/codegen/bridge.jet (100%) rename {idea => compiler}/testData/codegen/checkCast.jet (100%) rename {idea => compiler}/testData/codegen/classes/classObject.jet (100%) rename {idea => compiler}/testData/codegen/classes/classObjectInterface.jet (100%) rename {idea => compiler}/testData/codegen/classes/classObjectMethod.jet (100%) rename {idea => compiler}/testData/codegen/classes/closureWithParameter.jet (100%) rename {idea => compiler}/testData/codegen/classes/closureWithParameterAndBoxing.jet (100%) rename {idea => compiler}/testData/codegen/classes/diamondInheritance.jet (100%) rename {idea => compiler}/testData/codegen/classes/doubleEnclosedLocalVariable.jet (100%) rename {idea => compiler}/testData/codegen/classes/enclosingLocalVariable.jet (100%) rename {idea => compiler}/testData/codegen/classes/enclosingThis.jet (100%) rename {idea => compiler}/testData/codegen/classes/exceptionConstructor.jet (100%) rename {idea => compiler}/testData/codegen/classes/extensionClosure.jet (100%) rename {idea => compiler}/testData/codegen/classes/funDelegation.jet (100%) rename {idea => compiler}/testData/codegen/classes/inheritance.jet (100%) rename {idea => compiler}/testData/codegen/classes/inheritedInnerClass.jet (100%) rename {idea => compiler}/testData/codegen/classes/inheritedMethod.jet (100%) rename {idea => compiler}/testData/codegen/classes/inheritingFromArrayList.jet (100%) rename {idea => compiler}/testData/codegen/classes/initializerBlock.jet (100%) rename {idea => compiler}/testData/codegen/classes/initializerBlockDImpl.jet (100%) rename {idea => compiler}/testData/codegen/classes/innerClass.jet (100%) rename {idea => compiler}/testData/codegen/classes/newInstanceDefaultConstructor.jet (100%) rename {idea => compiler}/testData/codegen/classes/outerThis.jet (100%) rename {idea => compiler}/testData/codegen/classes/overloadBinaryOperator.jet (100%) rename {idea => compiler}/testData/codegen/classes/overloadPlusAssign.jet (100%) rename {idea => compiler}/testData/codegen/classes/overloadPlusAssignReturn.jet (100%) rename {idea => compiler}/testData/codegen/classes/overloadPlusToPlusAssign.jet (100%) rename {idea => compiler}/testData/codegen/classes/overloadUnaryOperator.jet (100%) rename {idea => compiler}/testData/codegen/classes/propertyDelegation.jet (100%) rename {idea => compiler}/testData/codegen/classes/propertyInInitializer.jet (100%) rename {idea => compiler}/testData/codegen/classes/rightHandOverride.jet (100%) rename {idea => compiler}/testData/codegen/classes/secondaryConstructors.jet (100%) rename {idea => compiler}/testData/codegen/classes/simpleBox.jet (100%) rename {idea => compiler}/testData/codegen/classes/simpleClass.jet (100%) rename {idea => compiler}/testData/codegen/classes/simplestClosure.jet (100%) rename {idea => compiler}/testData/codegen/classes/simplestClosureAndBoxing.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/break.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/continue.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/doWhile.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/for.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forInArray.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forIntArray.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forIntRange.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forNullableIntArray.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forPrimitiveIntArray.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/forUserType.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/if.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/ifBlock.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/ifNoElse.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/singleBranchIf.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/tryCatch.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/tryFinally.jet (100%) rename {idea => compiler}/testData/codegen/controlStructures/while.jet (100%) rename {idea => compiler}/testData/codegen/extensionFunctions/generic.jet (100%) rename {idea => compiler}/testData/codegen/extensionFunctions/simple.jet (100%) rename {idea => compiler}/testData/codegen/extensionFunctions/whenFail.jet (100%) rename {idea => compiler}/testData/codegen/functionCall.jet (100%) rename {idea => compiler}/testData/codegen/functions/defaultargs.jet (100%) rename {idea => compiler}/testData/codegen/functions/namedargs.jet (100%) rename {idea => compiler}/testData/codegen/functions/nothisnoclosure.jet (100%) rename {idea => compiler}/testData/codegen/helloWorld.jet (100%) rename {idea => compiler}/testData/codegen/incrementProperty.jet (100%) rename {idea => compiler}/testData/codegen/localProperty.jet (100%) rename {idea => compiler}/testData/codegen/namespaceQualifiedMethod.jet (100%) rename {idea => compiler}/testData/codegen/newInstanceExplicitConstructor.jet (100%) rename {idea => compiler}/testData/codegen/objects/methodOnObject.jet (100%) rename {idea => compiler}/testData/codegen/objects/objectLiteral.jet (100%) rename {idea => compiler}/testData/codegen/objects/simpleObject.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/callProperty.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/constant.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/exceptionOnNoMatch.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/inrange.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/is.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/pattern.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/range.jet (100%) rename {idea => compiler}/testData/codegen/patternMatching/rangeChar.jet (100%) rename {idea => compiler}/testData/codegen/properties/fieldPropertyAccess.jet (100%) rename {idea => compiler}/testData/codegen/properties/fieldSetter.jet (100%) rename {idea => compiler}/testData/codegen/properties/fieldSetterPlusEq.jet (100%) rename {idea => compiler}/testData/codegen/properties/privateVal.jet (100%) rename {idea => compiler}/testData/codegen/properties/privateVar.jet (100%) rename {idea => compiler}/testData/codegen/properties/propertyReceiverOnStack.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt232.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt237.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt238.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt239.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt242.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt243.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt245.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt247.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt248.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt249.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt257.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt259.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt297.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt299.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt326.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt343.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt344.jet (100%) rename {idea => compiler}/testData/codegen/regressions/kt48.jet (100%) rename {idea => compiler}/testData/codegen/systemOut.jet (100%) rename {idea => compiler}/testData/codegen/traits/multiple.jet (100%) rename {idea => compiler}/testData/codegen/traits/simple.jet (100%) rename {idea => compiler}/testData/codegen/traits/stdlib.jet (100%) rename {idea => compiler}/testData/codegen/traits/withRequired.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/asInLoop.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/asSafeWithGenerics.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/classObjectInTypeInfo.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/forwardTypeParameter.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/genericFunction.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/getTypeInfo.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/inner.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/isTypeParameter.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/isWithGenericParameters.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/isWithGenerics.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/nullability.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/oneArgTypeinfo.jet (100%) rename {idea => compiler}/testData/codegen/typeInfo/primitiveTypeInfo.jet (100%) rename {idea => compiler}/testData/mockJDK-1.7/jre/lib/annotations.jar (100%) rename {idea => compiler}/testData/mockJDK-1.7/jre/lib/rt.jar (100%) rename {idea => compiler}/testData/mockJDK-1.7/src.zip (100%) rename {idea => compiler}/testData/psi/AnnotatedExpressions.jet (100%) rename {idea => compiler}/testData/psi/AnnotatedExpressions.txt (100%) rename {idea => compiler}/testData/psi/AnonymousInitializer.jet (100%) rename {idea => compiler}/testData/psi/AnonymousInitializer.txt (100%) rename {idea => compiler}/testData/psi/Attributes.jet (100%) rename {idea => compiler}/testData/psi/Attributes.txt (100%) rename {idea => compiler}/testData/psi/AttributesOnPatterns.jet (100%) rename {idea => compiler}/testData/psi/AttributesOnPatterns.txt (100%) rename {idea => compiler}/testData/psi/Attributes_ERR.jet (100%) rename {idea => compiler}/testData/psi/Attributes_ERR.txt (100%) rename {idea => compiler}/testData/psi/BabySteps.jet (100%) rename {idea => compiler}/testData/psi/BabySteps.txt (100%) rename {idea => compiler}/testData/psi/BabySteps_ERR.jet (100%) rename {idea => compiler}/testData/psi/BabySteps_ERR.txt (100%) rename {idea => compiler}/testData/psi/ByCaluses.jet (100%) rename {idea => compiler}/testData/psi/ByCaluses.txt (100%) rename {idea => compiler}/testData/psi/CallWithManyClosures.jet (100%) rename {idea => compiler}/testData/psi/CallWithManyClosures.txt (100%) rename {idea => compiler}/testData/psi/CallsInWhen.jet (100%) rename {idea => compiler}/testData/psi/CallsInWhen.txt (100%) rename {idea => compiler}/testData/psi/Constructors.jet (100%) rename {idea => compiler}/testData/psi/Constructors.txt (100%) rename {idea => compiler}/testData/psi/ControlStructures.jet (100%) rename {idea => compiler}/testData/psi/ControlStructures.txt (100%) rename {idea => compiler}/testData/psi/EOLsInComments.jet (100%) rename {idea => compiler}/testData/psi/EOLsInComments.txt (100%) rename {idea => compiler}/testData/psi/EOLsOnRollback.jet (100%) rename {idea => compiler}/testData/psi/EOLsOnRollback.txt (100%) rename {idea => compiler}/testData/psi/EmptyFile.jet (100%) rename {idea => compiler}/testData/psi/EmptyFile.txt (100%) rename {idea => compiler}/testData/psi/Enums.jet (100%) rename {idea => compiler}/testData/psi/Enums.txt (100%) rename {idea => compiler}/testData/psi/Expressions_ERR.jet (100%) rename {idea => compiler}/testData/psi/Expressions_ERR.txt (100%) rename {idea => compiler}/testData/psi/FileStart_ERR.jet (100%) rename {idea => compiler}/testData/psi/FileStart_ERR.txt (100%) rename {idea => compiler}/testData/psi/FunctionCalls.jet (100%) rename {idea => compiler}/testData/psi/FunctionCalls.txt (100%) rename {idea => compiler}/testData/psi/FunctionLiterals.jet (100%) rename {idea => compiler}/testData/psi/FunctionLiterals.txt (100%) rename {idea => compiler}/testData/psi/FunctionLiterals_ERR.jet (100%) rename {idea => compiler}/testData/psi/FunctionLiterals_ERR.txt (100%) rename {idea => compiler}/testData/psi/FunctionTypes.jet (100%) rename {idea => compiler}/testData/psi/FunctionTypes.txt (100%) rename {idea => compiler}/testData/psi/FunctionTypes_ERR.jet (100%) rename {idea => compiler}/testData/psi/FunctionTypes_ERR.txt (100%) rename {idea => compiler}/testData/psi/Functions.jet (100%) rename {idea => compiler}/testData/psi/Functions.txt (100%) rename {idea => compiler}/testData/psi/Functions_ERR.jet (100%) rename {idea => compiler}/testData/psi/Functions_ERR.txt (100%) rename {idea => compiler}/testData/psi/HangOnLonelyModifier.jet (100%) rename {idea => compiler}/testData/psi/HangOnLonelyModifier.txt (100%) rename {idea => compiler}/testData/psi/IfWithPropery.jet (100%) rename {idea => compiler}/testData/psi/IfWithPropery.txt (100%) rename {idea => compiler}/testData/psi/ImportSoftKW.jet (100%) rename {idea => compiler}/testData/psi/ImportSoftKW.txt (100%) rename {idea => compiler}/testData/psi/Imports.jet (100%) rename {idea => compiler}/testData/psi/Imports.txt (100%) rename {idea => compiler}/testData/psi/Imports_ERR.jet (100%) rename {idea => compiler}/testData/psi/Imports_ERR.txt (100%) rename {idea => compiler}/testData/psi/Labels.jet (100%) rename {idea => compiler}/testData/psi/Labels.txt (100%) rename {idea => compiler}/testData/psi/LocalDeclarations.jet (100%) rename {idea => compiler}/testData/psi/LocalDeclarations.txt (100%) rename {idea => compiler}/testData/psi/ModifierAsSelector.jet (100%) rename {idea => compiler}/testData/psi/ModifierAsSelector.txt (100%) rename {idea => compiler}/testData/psi/NamespaceBlock.jet (100%) rename {idea => compiler}/testData/psi/NamespaceBlock.txt (100%) rename {idea => compiler}/testData/psi/NamespaceBlockFirst.jet (100%) rename {idea => compiler}/testData/psi/NamespaceBlockFirst.txt (100%) rename {idea => compiler}/testData/psi/NamespaceBlock_ERR.jet (100%) rename {idea => compiler}/testData/psi/NamespaceBlock_ERR.txt (100%) rename {idea => compiler}/testData/psi/NamespaceModifiers.jet (100%) rename {idea => compiler}/testData/psi/NamespaceModifiers.txt (100%) rename {idea => compiler}/testData/psi/NewlinesInParentheses.jet (100%) rename {idea => compiler}/testData/psi/NewlinesInParentheses.txt (100%) rename {idea => compiler}/testData/psi/NotIsAndNotIn.jet (100%) rename {idea => compiler}/testData/psi/NotIsAndNotIn.txt (100%) rename {idea => compiler}/testData/psi/Precedence.jet (100%) rename {idea => compiler}/testData/psi/Precedence.txt (100%) rename {idea => compiler}/testData/psi/PredicateExpression.jet (100%) rename {idea => compiler}/testData/psi/PredicateExpression.txt (100%) rename {idea => compiler}/testData/psi/Properties.jet (100%) rename {idea => compiler}/testData/psi/Properties.txt (100%) rename {idea => compiler}/testData/psi/PropertiesFollowedByInitializers.jet (100%) rename {idea => compiler}/testData/psi/PropertiesFollowedByInitializers.txt (100%) rename {idea => compiler}/testData/psi/Properties_ERR.jet (100%) rename {idea => compiler}/testData/psi/Properties_ERR.txt (100%) rename {idea => compiler}/testData/psi/QuotedIdentifiers.jet (100%) rename {idea => compiler}/testData/psi/QuotedIdentifiers.txt (100%) rename {idea => compiler}/testData/psi/RootNamespace.jet (100%) rename {idea => compiler}/testData/psi/RootNamespace.txt (100%) rename {idea => compiler}/testData/psi/SemicolonAfterIf.jet (100%) rename {idea => compiler}/testData/psi/SemicolonAfterIf.txt (100%) rename {idea => compiler}/testData/psi/ShortAnnotations.jet (100%) rename {idea => compiler}/testData/psi/ShortAnnotations.txt (100%) rename {idea => compiler}/testData/psi/SimpleClassMembers.jet (100%) rename {idea => compiler}/testData/psi/SimpleClassMembers.txt (100%) rename {idea => compiler}/testData/psi/SimpleClassMembers_ERR.jet (100%) rename {idea => compiler}/testData/psi/SimpleClassMembers_ERR.txt (100%) rename {idea => compiler}/testData/psi/SimpleExpressions.jet (100%) rename {idea => compiler}/testData/psi/SimpleExpressions.txt (100%) rename {idea => compiler}/testData/psi/SimpleModifiers.jet (100%) rename {idea => compiler}/testData/psi/SimpleModifiers.txt (100%) rename {idea => compiler}/testData/psi/SoftKeywords.jet (100%) rename {idea => compiler}/testData/psi/SoftKeywords.txt (100%) rename {idea => compiler}/testData/psi/SoftKeywordsInTypeArguments.jet (100%) rename {idea => compiler}/testData/psi/SoftKeywordsInTypeArguments.txt (100%) rename {idea => compiler}/testData/psi/StringTemplates.jet (100%) rename {idea => compiler}/testData/psi/StringTemplates.txt (100%) rename {idea => compiler}/testData/psi/ThisType.jet (100%) rename {idea => compiler}/testData/psi/ThisType.txt (100%) rename {idea => compiler}/testData/psi/TupleTypes.jet (100%) rename {idea => compiler}/testData/psi/TupleTypes.txt (100%) rename {idea => compiler}/testData/psi/TupleTypes_ERR.jet (100%) rename {idea => compiler}/testData/psi/TupleTypes_ERR.txt (100%) rename {idea => compiler}/testData/psi/TuplesWithLabeledEntries.jet (100%) rename {idea => compiler}/testData/psi/TuplesWithLabeledEntries.txt (100%) rename {idea => compiler}/testData/psi/TypeAnnotations.jet (100%) rename {idea => compiler}/testData/psi/TypeAnnotations.txt (100%) rename {idea => compiler}/testData/psi/TypeConstraints.jet (100%) rename {idea => compiler}/testData/psi/TypeConstraints.txt (100%) rename {idea => compiler}/testData/psi/TypeDef.jet (100%) rename {idea => compiler}/testData/psi/TypeDef.txt (100%) rename {idea => compiler}/testData/psi/TypeDef_ERR.jet (100%) rename {idea => compiler}/testData/psi/TypeDef_ERR.txt (100%) rename {idea => compiler}/testData/psi/TypeExpressionAmbiguities_ERR.jet (100%) rename {idea => compiler}/testData/psi/TypeExpressionAmbiguities_ERR.txt (100%) rename {idea => compiler}/testData/psi/TypeParametersBeforeName.jet (100%) rename {idea => compiler}/testData/psi/TypeParametersBeforeName.txt (100%) rename {idea => compiler}/testData/psi/When.jet (100%) rename {idea => compiler}/testData/psi/When.txt (100%) rename {idea => compiler}/testData/psi/When_ERR.jet (100%) rename {idea => compiler}/testData/psi/When_ERR.txt (100%) rename {idea => compiler}/testData/psi/examples/AnonymousObjects.jet (100%) rename {idea => compiler}/testData/psi/examples/AnonymousObjects.txt (100%) rename {idea => compiler}/testData/psi/examples/BinaryTree.jet (100%) rename {idea => compiler}/testData/psi/examples/BinaryTree.txt (100%) rename {idea => compiler}/testData/psi/examples/BitArith.jet (100%) rename {idea => compiler}/testData/psi/examples/BitArith.txt (100%) rename {idea => compiler}/testData/psi/examples/Builder.jet (100%) rename {idea => compiler}/testData/psi/examples/Builder.txt (100%) rename {idea => compiler}/testData/psi/examples/Color.jet (100%) rename {idea => compiler}/testData/psi/examples/Color.txt (100%) rename {idea => compiler}/testData/psi/examples/FunctionsAndTypes.jet (100%) rename {idea => compiler}/testData/psi/examples/FunctionsAndTypes.txt (100%) rename {idea => compiler}/testData/psi/examples/Graph.jet (100%) rename {idea => compiler}/testData/psi/examples/Graph.txt (100%) rename {idea => compiler}/testData/psi/examples/IPushPop.jet (100%) rename {idea => compiler}/testData/psi/examples/IPushPop.txt (100%) rename {idea => compiler}/testData/psi/examples/LINQ.jet (100%) rename {idea => compiler}/testData/psi/examples/LINQ.txt (100%) rename {idea => compiler}/testData/psi/examples/PolymorphicClassObjects.jet (100%) rename {idea => compiler}/testData/psi/examples/PolymorphicClassObjects.txt (100%) rename {idea => compiler}/testData/psi/examples/Queue.jet (100%) rename {idea => compiler}/testData/psi/examples/Queue.txt (100%) rename {idea => compiler}/testData/psi/examples/Stack.jet (100%) rename {idea => compiler}/testData/psi/examples/Stack.txt (100%) rename {idea => compiler}/testData/psi/examples/UnionFind.jet (100%) rename {idea => compiler}/testData/psi/examples/UnionFind.txt (100%) rename {idea => compiler}/testData/psi/examples/UpdateOperation.jet (100%) rename {idea => compiler}/testData/psi/examples/UpdateOperation.txt (100%) rename {idea => compiler}/testData/psi/examples/With.jet (100%) rename {idea => compiler}/testData/psi/examples/With.txt (100%) rename {idea => compiler}/testData/psi/examples/array/MutableArray.jet (100%) rename {idea => compiler}/testData/psi/examples/array/MutableArray.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/ArrayList.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/ArrayList.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/HashMap.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/HashMap.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IIterable.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IIterable.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IIterator.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IIterator.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IList.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IList.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableIterable.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableIterable.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableIterator.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableIterator.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableList.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableList.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableSet.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/IMutableSet.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/ISet.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/ISet.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/ISized.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/ISized.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/LinkedList.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/LinkedList.txt (100%) rename {idea => compiler}/testData/psi/examples/collections/List.jet (100%) rename {idea => compiler}/testData/psi/examples/collections/List.txt (100%) rename {idea => compiler}/testData/psi/examples/io/IOSamples.jet (100%) rename {idea => compiler}/testData/psi/examples/io/IOSamples.txt (100%) rename {idea => compiler}/testData/psi/examples/map/IMap.jet (100%) rename {idea => compiler}/testData/psi/examples/map/IMap.txt (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/BinaryHeap.jet (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/BinaryHeap.txt (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/IPriorityQueue.jet (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/IPriorityQueue.txt (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.jet (100%) rename {idea => compiler}/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.txt (100%) rename {idea => compiler}/testData/psi/examples/util/Comparison.jet (100%) rename {idea => compiler}/testData/psi/examples/util/Comparison.txt (100%) rename {idea => compiler}/testData/psi/examples/util/IComparable.jet (100%) rename {idea => compiler}/testData/psi/examples/util/IComparable.txt (100%) rename {idea => compiler}/testData/psi/functionReceivers/FunctionTypesWithFunctionReceivers.jet (100%) rename {idea => compiler}/testData/psi/functionReceivers/FunctionsWithFunctionReceivers.jet (100%) rename {idea => compiler}/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.jet (100%) rename {idea => compiler}/testData/resolve/Basic.jet (100%) rename {idea => compiler}/testData/resolve/ClassObjects.jet (100%) rename {idea => compiler}/testData/resolve/Classifiers.jet (100%) rename {idea => compiler}/testData/resolve/ConstructorsAndInitializers.jet (100%) rename {idea => compiler}/testData/resolve/ErrorSupertype.jet (100%) rename {idea => compiler}/testData/resolve/ExtensionFunctions.jet (100%) rename {idea => compiler}/testData/resolve/FunctionVariable.jet (100%) rename {idea => compiler}/testData/resolve/LocalObjects.jet (100%) rename {idea => compiler}/testData/resolve/Namespaces.jet (100%) rename {idea => compiler}/testData/resolve/NestedObjects.jet (100%) rename {idea => compiler}/testData/resolve/Objects.jet (100%) rename {idea => compiler}/testData/resolve/PrimaryConstructorParameters.jet (100%) rename {idea => compiler}/testData/resolve/PrimaryConstructors.jet (100%) rename {idea => compiler}/testData/resolve/Projections.jet (100%) rename {idea => compiler}/testData/resolve/ResolveOfInfixExpressions.jet (100%) rename {idea => compiler}/testData/resolve/ResolveToJava.jet (100%) rename {idea => compiler}/testData/resolve/ScopeInteraction.jet (100%) rename {idea => compiler}/testData/resolve/StringTemplates.jet (100%) rename {idea => compiler}/testData/resolve/TryCatch.jet (100%) rename {idea => compiler}/testData/resolve/regressions/kt300.jet (100%) create mode 100644 compiler/tests/compiler-tests.iml rename {idea => compiler}/tests/org/jetbrains/jet/JetLightProjectDescriptor.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/JetLiteFixture.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/JetTestCaseBase.java (95%) rename {idea => compiler}/tests/org/jetbrains/jet/JetTestUtils.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java (99%) rename {idea => compiler}/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java (97%) rename {idea => compiler}/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/checkers/QuickJetPsiCheckerTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ArrayGenTest.java (97%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java (88%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ClassGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ClosuresGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/CodegenTestCase.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/FunctionGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/ObjectGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/PatternMatchingTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/PropertyGenTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/SafeRefTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/TraitsTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/codegen/TypeInfoTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/parsing/JetParsingTest.java (98%) rename {idea => compiler}/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java (97%) rename {idea => compiler}/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java (100%) rename {idea => compiler}/tests/org/jetbrains/jet/resolve/JetResolveTest.java (96%) rename {idea => compiler}/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java (99%) rename {idea => compiler}/tests/org/jetbrains/jet/types/JetOverridingTest.java (97%) rename {idea => compiler}/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java (99%) create mode 100644 idea/tests/org/jetbrains/jet/plugin/quickfix/PluginTestCaseBase.java diff --git a/.idea/modules.xml b/.idea/modules.xml index 4959db82cd6..463eb8bb67f 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -5,6 +5,7 @@ + diff --git a/idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacade.java similarity index 89% rename from idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java rename to compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacade.java index ec376a187b8..e0772dbcd28 100644 --- a/idea/src/org/jetbrains/jet/plugin/AnalyzerFacade.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/AnalyzerFacade.java @@ -1,4 +1,4 @@ -package org.jetbrains.jet.plugin; +package org.jetbrains.jet.lang.resolve.java; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.cfg.pseudocode.JetControlFlowDataTraceFactory; @@ -6,7 +6,6 @@ import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetNamespace; import org.jetbrains.jet.lang.resolve.AnalyzingUtils; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.lang.resolve.java.JavaDefaultImports; /** * @author abreslav diff --git a/idea/src/org/jetbrains/jet/checkers/CheckerTestUtil.java b/compiler/frontend/src/org/jetbrains/jet/checkers/CheckerTestUtil.java similarity index 100% rename from idea/src/org/jetbrains/jet/checkers/CheckerTestUtil.java rename to compiler/frontend/src/org/jetbrains/jet/checkers/CheckerTestUtil.java diff --git a/idea/testData/cfg/ArrayAccess.instructions b/compiler/testData/cfg/ArrayAccess.instructions similarity index 100% rename from idea/testData/cfg/ArrayAccess.instructions rename to compiler/testData/cfg/ArrayAccess.instructions diff --git a/idea/testData/cfg/ArrayAccess.jet b/compiler/testData/cfg/ArrayAccess.jet similarity index 100% rename from idea/testData/cfg/ArrayAccess.jet rename to compiler/testData/cfg/ArrayAccess.jet diff --git a/idea/testData/cfg/Assignments.instructions b/compiler/testData/cfg/Assignments.instructions similarity index 100% rename from idea/testData/cfg/Assignments.instructions rename to compiler/testData/cfg/Assignments.instructions diff --git a/idea/testData/cfg/Assignments.jet b/compiler/testData/cfg/Assignments.jet similarity index 100% rename from idea/testData/cfg/Assignments.jet rename to compiler/testData/cfg/Assignments.jet diff --git a/idea/testData/cfg/Basic.instructions b/compiler/testData/cfg/Basic.instructions similarity index 100% rename from idea/testData/cfg/Basic.instructions rename to compiler/testData/cfg/Basic.instructions diff --git a/idea/testData/cfg/Basic.jet b/compiler/testData/cfg/Basic.jet similarity index 100% rename from idea/testData/cfg/Basic.jet rename to compiler/testData/cfg/Basic.jet diff --git a/idea/testData/cfg/EmptyFunction.instructions b/compiler/testData/cfg/EmptyFunction.instructions similarity index 100% rename from idea/testData/cfg/EmptyFunction.instructions rename to compiler/testData/cfg/EmptyFunction.instructions diff --git a/idea/testData/cfg/EmptyFunction.jet b/compiler/testData/cfg/EmptyFunction.jet similarity index 100% rename from idea/testData/cfg/EmptyFunction.jet rename to compiler/testData/cfg/EmptyFunction.jet diff --git a/idea/testData/cfg/FailFunction.instructions b/compiler/testData/cfg/FailFunction.instructions similarity index 100% rename from idea/testData/cfg/FailFunction.instructions rename to compiler/testData/cfg/FailFunction.instructions diff --git a/idea/testData/cfg/FailFunction.jet b/compiler/testData/cfg/FailFunction.jet similarity index 100% rename from idea/testData/cfg/FailFunction.jet rename to compiler/testData/cfg/FailFunction.jet diff --git a/idea/testData/cfg/Finally.instructions b/compiler/testData/cfg/Finally.instructions similarity index 100% rename from idea/testData/cfg/Finally.instructions rename to compiler/testData/cfg/Finally.instructions diff --git a/idea/testData/cfg/Finally.jet b/compiler/testData/cfg/Finally.jet similarity index 100% rename from idea/testData/cfg/Finally.jet rename to compiler/testData/cfg/Finally.jet diff --git a/idea/testData/cfg/LazyBooleans.instructions b/compiler/testData/cfg/LazyBooleans.instructions similarity index 100% rename from idea/testData/cfg/LazyBooleans.instructions rename to compiler/testData/cfg/LazyBooleans.instructions diff --git a/idea/testData/cfg/LazyBooleans.jet b/compiler/testData/cfg/LazyBooleans.jet similarity index 100% rename from idea/testData/cfg/LazyBooleans.jet rename to compiler/testData/cfg/LazyBooleans.jet diff --git a/idea/testData/cfg/OnlyWhileInFunctionBody.instructions b/compiler/testData/cfg/OnlyWhileInFunctionBody.instructions similarity index 100% rename from idea/testData/cfg/OnlyWhileInFunctionBody.instructions rename to compiler/testData/cfg/OnlyWhileInFunctionBody.instructions diff --git a/idea/testData/cfg/OnlyWhileInFunctionBody.jet b/compiler/testData/cfg/OnlyWhileInFunctionBody.jet similarity index 100% rename from idea/testData/cfg/OnlyWhileInFunctionBody.jet rename to compiler/testData/cfg/OnlyWhileInFunctionBody.jet diff --git a/idea/testData/cfg/ReturnFromExpression.instructions b/compiler/testData/cfg/ReturnFromExpression.instructions similarity index 100% rename from idea/testData/cfg/ReturnFromExpression.instructions rename to compiler/testData/cfg/ReturnFromExpression.instructions diff --git a/idea/testData/cfg/ReturnFromExpression.jet b/compiler/testData/cfg/ReturnFromExpression.jet similarity index 100% rename from idea/testData/cfg/ReturnFromExpression.jet rename to compiler/testData/cfg/ReturnFromExpression.jet diff --git a/idea/testData/cfg/ShortFunction.instructions b/compiler/testData/cfg/ShortFunction.instructions similarity index 100% rename from idea/testData/cfg/ShortFunction.instructions rename to compiler/testData/cfg/ShortFunction.instructions diff --git a/idea/testData/cfg/ShortFunction.jet b/compiler/testData/cfg/ShortFunction.jet similarity index 100% rename from idea/testData/cfg/ShortFunction.jet rename to compiler/testData/cfg/ShortFunction.jet diff --git a/idea/testData/checker/Abstract.jet b/compiler/testData/checker/Abstract.jet similarity index 100% rename from idea/testData/checker/Abstract.jet rename to compiler/testData/checker/Abstract.jet diff --git a/idea/testData/checker/AnonymousInitializers.jet b/compiler/testData/checker/AnonymousInitializers.jet similarity index 100% rename from idea/testData/checker/AnonymousInitializers.jet rename to compiler/testData/checker/AnonymousInitializers.jet diff --git a/idea/testData/checker/BinaryCallsOnNullableValues.jet b/compiler/testData/checker/BinaryCallsOnNullableValues.jet similarity index 100% rename from idea/testData/checker/BinaryCallsOnNullableValues.jet rename to compiler/testData/checker/BinaryCallsOnNullableValues.jet diff --git a/idea/testData/checker/Bounds.jet b/compiler/testData/checker/Bounds.jet similarity index 100% rename from idea/testData/checker/Bounds.jet rename to compiler/testData/checker/Bounds.jet diff --git a/idea/testData/checker/BreakContinue.jet b/compiler/testData/checker/BreakContinue.jet similarity index 100% rename from idea/testData/checker/BreakContinue.jet rename to compiler/testData/checker/BreakContinue.jet diff --git a/idea/testData/checker/Builders.jet b/compiler/testData/checker/Builders.jet similarity index 100% rename from idea/testData/checker/Builders.jet rename to compiler/testData/checker/Builders.jet diff --git a/idea/testData/checker/Casts.jet b/compiler/testData/checker/Casts.jet similarity index 100% rename from idea/testData/checker/Casts.jet rename to compiler/testData/checker/Casts.jet diff --git a/idea/testData/checker/ClassObjects.jet b/compiler/testData/checker/ClassObjects.jet similarity index 100% rename from idea/testData/checker/ClassObjects.jet rename to compiler/testData/checker/ClassObjects.jet diff --git a/idea/testData/checker/Constants.jet b/compiler/testData/checker/Constants.jet similarity index 100% rename from idea/testData/checker/Constants.jet rename to compiler/testData/checker/Constants.jet diff --git a/idea/testData/checker/Constructors.jet b/compiler/testData/checker/Constructors.jet similarity index 100% rename from idea/testData/checker/Constructors.jet rename to compiler/testData/checker/Constructors.jet diff --git a/idea/testData/checker/CyclicHierarchy.jet b/compiler/testData/checker/CyclicHierarchy.jet similarity index 100% rename from idea/testData/checker/CyclicHierarchy.jet rename to compiler/testData/checker/CyclicHierarchy.jet diff --git a/idea/testData/checker/Enums.jet b/compiler/testData/checker/Enums.jet similarity index 100% rename from idea/testData/checker/Enums.jet rename to compiler/testData/checker/Enums.jet diff --git a/idea/testData/checker/ExtensionFunctions.jet b/compiler/testData/checker/ExtensionFunctions.jet similarity index 100% rename from idea/testData/checker/ExtensionFunctions.jet rename to compiler/testData/checker/ExtensionFunctions.jet diff --git a/idea/testData/checker/ForRangeConventions.jet b/compiler/testData/checker/ForRangeConventions.jet similarity index 100% rename from idea/testData/checker/ForRangeConventions.jet rename to compiler/testData/checker/ForRangeConventions.jet diff --git a/idea/testData/checker/FunctionReturnTypes.jet b/compiler/testData/checker/FunctionReturnTypes.jet similarity index 100% rename from idea/testData/checker/FunctionReturnTypes.jet rename to compiler/testData/checker/FunctionReturnTypes.jet diff --git a/idea/testData/checker/GenericArgumentConsistency.jet b/compiler/testData/checker/GenericArgumentConsistency.jet similarity index 100% rename from idea/testData/checker/GenericArgumentConsistency.jet rename to compiler/testData/checker/GenericArgumentConsistency.jet diff --git a/idea/testData/checker/IncDec.jet b/compiler/testData/checker/IncDec.jet similarity index 100% rename from idea/testData/checker/IncDec.jet rename to compiler/testData/checker/IncDec.jet diff --git a/idea/testData/checker/IsExpressions.jet b/compiler/testData/checker/IsExpressions.jet similarity index 100% rename from idea/testData/checker/IsExpressions.jet rename to compiler/testData/checker/IsExpressions.jet diff --git a/idea/testData/checker/MultipleBounds.jet b/compiler/testData/checker/MultipleBounds.jet similarity index 100% rename from idea/testData/checker/MultipleBounds.jet rename to compiler/testData/checker/MultipleBounds.jet diff --git a/idea/testData/checker/NamespaceAsExpression.jet b/compiler/testData/checker/NamespaceAsExpression.jet similarity index 100% rename from idea/testData/checker/NamespaceAsExpression.jet rename to compiler/testData/checker/NamespaceAsExpression.jet diff --git a/idea/testData/checker/NamespaceQualified.jet b/compiler/testData/checker/NamespaceQualified.jet similarity index 100% rename from idea/testData/checker/NamespaceQualified.jet rename to compiler/testData/checker/NamespaceQualified.jet diff --git a/idea/testData/checker/Nullability.jet b/compiler/testData/checker/Nullability.jet similarity index 100% rename from idea/testData/checker/Nullability.jet rename to compiler/testData/checker/Nullability.jet diff --git a/idea/testData/checker/Objects.jet b/compiler/testData/checker/Objects.jet similarity index 100% rename from idea/testData/checker/Objects.jet rename to compiler/testData/checker/Objects.jet diff --git a/idea/testData/checker/Override.jet b/compiler/testData/checker/Override.jet similarity index 100% rename from idea/testData/checker/Override.jet rename to compiler/testData/checker/Override.jet diff --git a/idea/testData/checker/PrimaryConstructors.jet b/compiler/testData/checker/PrimaryConstructors.jet similarity index 100% rename from idea/testData/checker/PrimaryConstructors.jet rename to compiler/testData/checker/PrimaryConstructors.jet diff --git a/idea/testData/checker/ProjectionsInSupertypes.jet b/compiler/testData/checker/ProjectionsInSupertypes.jet similarity index 100% rename from idea/testData/checker/ProjectionsInSupertypes.jet rename to compiler/testData/checker/ProjectionsInSupertypes.jet diff --git a/idea/testData/checker/Properties.jet b/compiler/testData/checker/Properties.jet similarity index 100% rename from idea/testData/checker/Properties.jet rename to compiler/testData/checker/Properties.jet diff --git a/idea/testData/checker/QualifiedExpressions.jet b/compiler/testData/checker/QualifiedExpressions.jet similarity index 100% rename from idea/testData/checker/QualifiedExpressions.jet rename to compiler/testData/checker/QualifiedExpressions.jet diff --git a/idea/testData/checker/QualifiedThis.jet b/compiler/testData/checker/QualifiedThis.jet similarity index 100% rename from idea/testData/checker/QualifiedThis.jet rename to compiler/testData/checker/QualifiedThis.jet diff --git a/idea/testData/checker/RecursiveTypeInference.jet b/compiler/testData/checker/RecursiveTypeInference.jet similarity index 100% rename from idea/testData/checker/RecursiveTypeInference.jet rename to compiler/testData/checker/RecursiveTypeInference.jet diff --git a/idea/testData/checker/Redeclarations.jet b/compiler/testData/checker/Redeclarations.jet similarity index 100% rename from idea/testData/checker/Redeclarations.jet rename to compiler/testData/checker/Redeclarations.jet diff --git a/idea/testData/checker/ResolveToJava.jet b/compiler/testData/checker/ResolveToJava.jet similarity index 100% rename from idea/testData/checker/ResolveToJava.jet rename to compiler/testData/checker/ResolveToJava.jet diff --git a/idea/testData/checker/StringTemplates.jet b/compiler/testData/checker/StringTemplates.jet similarity index 100% rename from idea/testData/checker/StringTemplates.jet rename to compiler/testData/checker/StringTemplates.jet diff --git a/idea/testData/checker/SupertypeListChecks.jet b/compiler/testData/checker/SupertypeListChecks.jet similarity index 100% rename from idea/testData/checker/SupertypeListChecks.jet rename to compiler/testData/checker/SupertypeListChecks.jet diff --git a/idea/testData/checker/TraitSupertypeList.jet b/compiler/testData/checker/TraitSupertypeList.jet similarity index 100% rename from idea/testData/checker/TraitSupertypeList.jet rename to compiler/testData/checker/TraitSupertypeList.jet diff --git a/idea/testData/checker/UnreachableCode.jet b/compiler/testData/checker/UnreachableCode.jet similarity index 100% rename from idea/testData/checker/UnreachableCode.jet rename to compiler/testData/checker/UnreachableCode.jet diff --git a/idea/testData/checker/Unresolved.jet b/compiler/testData/checker/Unresolved.jet similarity index 100% rename from idea/testData/checker/Unresolved.jet rename to compiler/testData/checker/Unresolved.jet diff --git a/idea/testData/checker/Variance.jet b/compiler/testData/checker/Variance.jet similarity index 100% rename from idea/testData/checker/Variance.jet rename to compiler/testData/checker/Variance.jet diff --git a/idea/testData/checker/When.jet b/compiler/testData/checker/When.jet similarity index 100% rename from idea/testData/checker/When.jet rename to compiler/testData/checker/When.jet diff --git a/idea/testData/checker/infos/Autocasts.jet b/compiler/testData/checker/infos/Autocasts.jet similarity index 100% rename from idea/testData/checker/infos/Autocasts.jet rename to compiler/testData/checker/infos/Autocasts.jet diff --git a/idea/testData/checker/infos/PropertiesWithBackingFields.jet b/compiler/testData/checker/infos/PropertiesWithBackingFields.jet similarity index 100% rename from idea/testData/checker/infos/PropertiesWithBackingFields.jet rename to compiler/testData/checker/infos/PropertiesWithBackingFields.jet diff --git a/idea/testData/checker/infos/WrapIntoRef.jet b/compiler/testData/checker/infos/WrapIntoRef.jet similarity index 100% rename from idea/testData/checker/infos/WrapIntoRef.jet rename to compiler/testData/checker/infos/WrapIntoRef.jet diff --git a/idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.jet b/compiler/testData/checker/regression/AmbiguityOnLazyTypeComputation.jet similarity index 100% rename from idea/testData/checker/regression/AmbiguityOnLazyTypeComputation.jet rename to compiler/testData/checker/regression/AmbiguityOnLazyTypeComputation.jet diff --git a/idea/testData/checker/regression/AssignmentsUnderOperators.jet b/compiler/testData/checker/regression/AssignmentsUnderOperators.jet similarity index 100% rename from idea/testData/checker/regression/AssignmentsUnderOperators.jet rename to compiler/testData/checker/regression/AssignmentsUnderOperators.jet diff --git a/idea/testData/checker/regression/CoercionToUnit.jet b/compiler/testData/checker/regression/CoercionToUnit.jet similarity index 100% rename from idea/testData/checker/regression/CoercionToUnit.jet rename to compiler/testData/checker/regression/CoercionToUnit.jet diff --git a/idea/testData/checker/regression/DoubleDefine.jet b/compiler/testData/checker/regression/DoubleDefine.jet similarity index 100% rename from idea/testData/checker/regression/DoubleDefine.jet rename to compiler/testData/checker/regression/DoubleDefine.jet diff --git a/idea/testData/checker/regression/Jet11.jet b/compiler/testData/checker/regression/Jet11.jet similarity index 100% rename from idea/testData/checker/regression/Jet11.jet rename to compiler/testData/checker/regression/Jet11.jet diff --git a/idea/testData/checker/regression/Jet121.jet b/compiler/testData/checker/regression/Jet121.jet similarity index 100% rename from idea/testData/checker/regression/Jet121.jet rename to compiler/testData/checker/regression/Jet121.jet diff --git a/idea/testData/checker/regression/Jet124.jet b/compiler/testData/checker/regression/Jet124.jet similarity index 100% rename from idea/testData/checker/regression/Jet124.jet rename to compiler/testData/checker/regression/Jet124.jet diff --git a/idea/testData/checker/regression/Jet169.jet b/compiler/testData/checker/regression/Jet169.jet similarity index 100% rename from idea/testData/checker/regression/Jet169.jet rename to compiler/testData/checker/regression/Jet169.jet diff --git a/idea/testData/checker/regression/Jet17.jet b/compiler/testData/checker/regression/Jet17.jet similarity index 100% rename from idea/testData/checker/regression/Jet17.jet rename to compiler/testData/checker/regression/Jet17.jet diff --git a/idea/testData/checker/regression/Jet183-1.jet b/compiler/testData/checker/regression/Jet183-1.jet similarity index 100% rename from idea/testData/checker/regression/Jet183-1.jet rename to compiler/testData/checker/regression/Jet183-1.jet diff --git a/idea/testData/checker/regression/Jet183.jet b/compiler/testData/checker/regression/Jet183.jet similarity index 100% rename from idea/testData/checker/regression/Jet183.jet rename to compiler/testData/checker/regression/Jet183.jet diff --git a/idea/testData/checker/regression/Jet53.jet b/compiler/testData/checker/regression/Jet53.jet similarity index 100% rename from idea/testData/checker/regression/Jet53.jet rename to compiler/testData/checker/regression/Jet53.jet diff --git a/idea/testData/checker/regression/Jet67.jet b/compiler/testData/checker/regression/Jet67.jet similarity index 100% rename from idea/testData/checker/regression/Jet67.jet rename to compiler/testData/checker/regression/Jet67.jet diff --git a/idea/testData/checker/regression/Jet68.jet b/compiler/testData/checker/regression/Jet68.jet similarity index 100% rename from idea/testData/checker/regression/Jet68.jet rename to compiler/testData/checker/regression/Jet68.jet diff --git a/idea/testData/checker/regression/Jet69.jet b/compiler/testData/checker/regression/Jet69.jet similarity index 100% rename from idea/testData/checker/regression/Jet69.jet rename to compiler/testData/checker/regression/Jet69.jet diff --git a/idea/testData/checker/regression/Jet72.jet b/compiler/testData/checker/regression/Jet72.jet similarity index 100% rename from idea/testData/checker/regression/Jet72.jet rename to compiler/testData/checker/regression/Jet72.jet diff --git a/idea/testData/checker/regression/Jet81.jet b/compiler/testData/checker/regression/Jet81.jet similarity index 100% rename from idea/testData/checker/regression/Jet81.jet rename to compiler/testData/checker/regression/Jet81.jet diff --git a/idea/testData/checker/regression/OverrideResolution.jet b/compiler/testData/checker/regression/OverrideResolution.jet similarity index 100% rename from idea/testData/checker/regression/OverrideResolution.jet rename to compiler/testData/checker/regression/OverrideResolution.jet diff --git a/idea/testData/checker/regression/ScopeForSecondaryConstructors.jet b/compiler/testData/checker/regression/ScopeForSecondaryConstructors.jet similarity index 100% rename from idea/testData/checker/regression/ScopeForSecondaryConstructors.jet rename to compiler/testData/checker/regression/ScopeForSecondaryConstructors.jet diff --git a/idea/testData/checker/regression/SpecififcityByReceiver.jet b/compiler/testData/checker/regression/SpecififcityByReceiver.jet similarity index 100% rename from idea/testData/checker/regression/SpecififcityByReceiver.jet rename to compiler/testData/checker/regression/SpecififcityByReceiver.jet diff --git a/idea/testData/checker/regression/ThisConstructorInGenericClass.jet b/compiler/testData/checker/regression/ThisConstructorInGenericClass.jet similarity index 100% rename from idea/testData/checker/regression/ThisConstructorInGenericClass.jet rename to compiler/testData/checker/regression/ThisConstructorInGenericClass.jet diff --git a/idea/testData/checker/regression/WrongTraceInCallResolver.jet b/compiler/testData/checker/regression/WrongTraceInCallResolver.jet similarity index 100% rename from idea/testData/checker/regression/WrongTraceInCallResolver.jet rename to compiler/testData/checker/regression/WrongTraceInCallResolver.jet diff --git a/idea/testData/checker/regression/kt251.jet b/compiler/testData/checker/regression/kt251.jet similarity index 100% rename from idea/testData/checker/regression/kt251.jet rename to compiler/testData/checker/regression/kt251.jet diff --git a/idea/testData/checker/regression/kt303.jet b/compiler/testData/checker/regression/kt303.jet similarity index 100% rename from idea/testData/checker/regression/kt303.jet rename to compiler/testData/checker/regression/kt303.jet diff --git a/idea/testData/checkerWithErrorTypes/checkerTestUtil/test.jet b/compiler/testData/checkerWithErrorTypes/checkerTestUtil/test.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/checkerTestUtil/test.jet rename to compiler/testData/checkerWithErrorTypes/checkerTestUtil/test.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Abstract.jet b/compiler/testData/checkerWithErrorTypes/full/Abstract.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Abstract.jet rename to compiler/testData/checkerWithErrorTypes/full/Abstract.jet diff --git a/idea/testData/checkerWithErrorTypes/full/AnonymousInitializers.jet b/compiler/testData/checkerWithErrorTypes/full/AnonymousInitializers.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/AnonymousInitializers.jet rename to compiler/testData/checkerWithErrorTypes/full/AnonymousInitializers.jet diff --git a/idea/testData/checkerWithErrorTypes/full/BinaryCallsOnNullableValues.jet b/compiler/testData/checkerWithErrorTypes/full/BinaryCallsOnNullableValues.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/BinaryCallsOnNullableValues.jet rename to compiler/testData/checkerWithErrorTypes/full/BinaryCallsOnNullableValues.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Bounds.jet b/compiler/testData/checkerWithErrorTypes/full/Bounds.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Bounds.jet rename to compiler/testData/checkerWithErrorTypes/full/Bounds.jet diff --git a/idea/testData/checkerWithErrorTypes/full/BreakContinue.jet b/compiler/testData/checkerWithErrorTypes/full/BreakContinue.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/BreakContinue.jet rename to compiler/testData/checkerWithErrorTypes/full/BreakContinue.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Builders.jet b/compiler/testData/checkerWithErrorTypes/full/Builders.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Builders.jet rename to compiler/testData/checkerWithErrorTypes/full/Builders.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Casts.jet b/compiler/testData/checkerWithErrorTypes/full/Casts.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Casts.jet rename to compiler/testData/checkerWithErrorTypes/full/Casts.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ClassObjects.jet b/compiler/testData/checkerWithErrorTypes/full/ClassObjects.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ClassObjects.jet rename to compiler/testData/checkerWithErrorTypes/full/ClassObjects.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Constants.jet b/compiler/testData/checkerWithErrorTypes/full/Constants.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Constants.jet rename to compiler/testData/checkerWithErrorTypes/full/Constants.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Constructors.jet b/compiler/testData/checkerWithErrorTypes/full/Constructors.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Constructors.jet rename to compiler/testData/checkerWithErrorTypes/full/Constructors.jet diff --git a/idea/testData/checkerWithErrorTypes/full/CovariantOverrideType.jet b/compiler/testData/checkerWithErrorTypes/full/CovariantOverrideType.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/CovariantOverrideType.jet rename to compiler/testData/checkerWithErrorTypes/full/CovariantOverrideType.jet diff --git a/idea/testData/checkerWithErrorTypes/full/CyclicHierarchy.jet b/compiler/testData/checkerWithErrorTypes/full/CyclicHierarchy.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/CyclicHierarchy.jet rename to compiler/testData/checkerWithErrorTypes/full/CyclicHierarchy.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Enums.jet b/compiler/testData/checkerWithErrorTypes/full/Enums.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Enums.jet rename to compiler/testData/checkerWithErrorTypes/full/Enums.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ExtensionFunctions.jet b/compiler/testData/checkerWithErrorTypes/full/ExtensionFunctions.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ExtensionFunctions.jet rename to compiler/testData/checkerWithErrorTypes/full/ExtensionFunctions.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ForRangeConventions.jet b/compiler/testData/checkerWithErrorTypes/full/ForRangeConventions.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ForRangeConventions.jet rename to compiler/testData/checkerWithErrorTypes/full/ForRangeConventions.jet diff --git a/idea/testData/checkerWithErrorTypes/full/FunctionReturnTypes.jet b/compiler/testData/checkerWithErrorTypes/full/FunctionReturnTypes.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/FunctionReturnTypes.jet rename to compiler/testData/checkerWithErrorTypes/full/FunctionReturnTypes.jet diff --git a/idea/testData/checkerWithErrorTypes/full/GenericArgumentConsistency.jet b/compiler/testData/checkerWithErrorTypes/full/GenericArgumentConsistency.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/GenericArgumentConsistency.jet rename to compiler/testData/checkerWithErrorTypes/full/GenericArgumentConsistency.jet diff --git a/idea/testData/checkerWithErrorTypes/full/IllegalModifiers.jet b/compiler/testData/checkerWithErrorTypes/full/IllegalModifiers.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/IllegalModifiers.jet rename to compiler/testData/checkerWithErrorTypes/full/IllegalModifiers.jet diff --git a/idea/testData/checkerWithErrorTypes/full/IncDec.jet b/compiler/testData/checkerWithErrorTypes/full/IncDec.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/IncDec.jet rename to compiler/testData/checkerWithErrorTypes/full/IncDec.jet diff --git a/idea/testData/checkerWithErrorTypes/full/IsExpressions.jet b/compiler/testData/checkerWithErrorTypes/full/IsExpressions.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/IsExpressions.jet rename to compiler/testData/checkerWithErrorTypes/full/IsExpressions.jet diff --git a/idea/testData/checkerWithErrorTypes/full/MultipleBounds.jet b/compiler/testData/checkerWithErrorTypes/full/MultipleBounds.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/MultipleBounds.jet rename to compiler/testData/checkerWithErrorTypes/full/MultipleBounds.jet diff --git a/idea/testData/checkerWithErrorTypes/full/NamespaceAsExpression.jet b/compiler/testData/checkerWithErrorTypes/full/NamespaceAsExpression.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/NamespaceAsExpression.jet rename to compiler/testData/checkerWithErrorTypes/full/NamespaceAsExpression.jet diff --git a/idea/testData/checkerWithErrorTypes/full/NamespaceInExpressionPosition.jet b/compiler/testData/checkerWithErrorTypes/full/NamespaceInExpressionPosition.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/NamespaceInExpressionPosition.jet rename to compiler/testData/checkerWithErrorTypes/full/NamespaceInExpressionPosition.jet diff --git a/idea/testData/checkerWithErrorTypes/full/NamespaceQualified.jet b/compiler/testData/checkerWithErrorTypes/full/NamespaceQualified.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/NamespaceQualified.jet rename to compiler/testData/checkerWithErrorTypes/full/NamespaceQualified.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Nullability.jet b/compiler/testData/checkerWithErrorTypes/full/Nullability.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Nullability.jet rename to compiler/testData/checkerWithErrorTypes/full/Nullability.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Objects.jet b/compiler/testData/checkerWithErrorTypes/full/Objects.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Objects.jet rename to compiler/testData/checkerWithErrorTypes/full/Objects.jet diff --git a/idea/testData/checkerWithErrorTypes/full/PrimaryConstructors.jet b/compiler/testData/checkerWithErrorTypes/full/PrimaryConstructors.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/PrimaryConstructors.jet rename to compiler/testData/checkerWithErrorTypes/full/PrimaryConstructors.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ProjectionsInSupertypes.jet b/compiler/testData/checkerWithErrorTypes/full/ProjectionsInSupertypes.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ProjectionsInSupertypes.jet rename to compiler/testData/checkerWithErrorTypes/full/ProjectionsInSupertypes.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Properties.jet b/compiler/testData/checkerWithErrorTypes/full/Properties.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Properties.jet rename to compiler/testData/checkerWithErrorTypes/full/Properties.jet diff --git a/idea/testData/checkerWithErrorTypes/full/QualifiedExpressions.jet b/compiler/testData/checkerWithErrorTypes/full/QualifiedExpressions.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/QualifiedExpressions.jet rename to compiler/testData/checkerWithErrorTypes/full/QualifiedExpressions.jet diff --git a/idea/testData/checkerWithErrorTypes/full/QualifiedThis.jet b/compiler/testData/checkerWithErrorTypes/full/QualifiedThis.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/QualifiedThis.jet rename to compiler/testData/checkerWithErrorTypes/full/QualifiedThis.jet diff --git a/idea/testData/checkerWithErrorTypes/full/RecursiveTypeInference.jet b/compiler/testData/checkerWithErrorTypes/full/RecursiveTypeInference.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/RecursiveTypeInference.jet rename to compiler/testData/checkerWithErrorTypes/full/RecursiveTypeInference.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Redeclarations.jet b/compiler/testData/checkerWithErrorTypes/full/Redeclarations.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Redeclarations.jet rename to compiler/testData/checkerWithErrorTypes/full/Redeclarations.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ResolveToJava.jet b/compiler/testData/checkerWithErrorTypes/full/ResolveToJava.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ResolveToJava.jet rename to compiler/testData/checkerWithErrorTypes/full/ResolveToJava.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Return.jet b/compiler/testData/checkerWithErrorTypes/full/Return.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Return.jet rename to compiler/testData/checkerWithErrorTypes/full/Return.jet diff --git a/idea/testData/checkerWithErrorTypes/full/StringTemplates.jet b/compiler/testData/checkerWithErrorTypes/full/StringTemplates.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/StringTemplates.jet rename to compiler/testData/checkerWithErrorTypes/full/StringTemplates.jet diff --git a/idea/testData/checkerWithErrorTypes/full/SupertypeListChecks.jet b/compiler/testData/checkerWithErrorTypes/full/SupertypeListChecks.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/SupertypeListChecks.jet rename to compiler/testData/checkerWithErrorTypes/full/SupertypeListChecks.jet diff --git a/idea/testData/checkerWithErrorTypes/full/TraitSupertypeList.jet b/compiler/testData/checkerWithErrorTypes/full/TraitSupertypeList.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/TraitSupertypeList.jet rename to compiler/testData/checkerWithErrorTypes/full/TraitSupertypeList.jet diff --git a/idea/testData/checkerWithErrorTypes/full/UnreachableCode.jet b/compiler/testData/checkerWithErrorTypes/full/UnreachableCode.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/UnreachableCode.jet rename to compiler/testData/checkerWithErrorTypes/full/UnreachableCode.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Unresolved.jet b/compiler/testData/checkerWithErrorTypes/full/Unresolved.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Unresolved.jet rename to compiler/testData/checkerWithErrorTypes/full/Unresolved.jet diff --git a/idea/testData/checkerWithErrorTypes/full/ValAndFunOverrideCompatibilityClash.jet b/compiler/testData/checkerWithErrorTypes/full/ValAndFunOverrideCompatibilityClash.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/ValAndFunOverrideCompatibilityClash.jet rename to compiler/testData/checkerWithErrorTypes/full/ValAndFunOverrideCompatibilityClash.jet diff --git a/idea/testData/checkerWithErrorTypes/full/Variance.jet b/compiler/testData/checkerWithErrorTypes/full/Variance.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/Variance.jet rename to compiler/testData/checkerWithErrorTypes/full/Variance.jet diff --git a/idea/testData/checkerWithErrorTypes/full/When.jet b/compiler/testData/checkerWithErrorTypes/full/When.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/When.jet rename to compiler/testData/checkerWithErrorTypes/full/When.jet diff --git a/idea/testData/checkerWithErrorTypes/full/infos/Autocasts.jet b/compiler/testData/checkerWithErrorTypes/full/infos/Autocasts.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/infos/Autocasts.jet rename to compiler/testData/checkerWithErrorTypes/full/infos/Autocasts.jet diff --git a/idea/testData/checkerWithErrorTypes/full/infos/PropertiesWithBackingFields.jet b/compiler/testData/checkerWithErrorTypes/full/infos/PropertiesWithBackingFields.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/infos/PropertiesWithBackingFields.jet rename to compiler/testData/checkerWithErrorTypes/full/infos/PropertiesWithBackingFields.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/AmbiguityOnLazyTypeComputation.jet b/compiler/testData/checkerWithErrorTypes/full/regression/AmbiguityOnLazyTypeComputation.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/AmbiguityOnLazyTypeComputation.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/AmbiguityOnLazyTypeComputation.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/AssignmentsUnderOperators.jet b/compiler/testData/checkerWithErrorTypes/full/regression/AssignmentsUnderOperators.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/AssignmentsUnderOperators.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/AssignmentsUnderOperators.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/CoercionToUnit.jet b/compiler/testData/checkerWithErrorTypes/full/regression/CoercionToUnit.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/CoercionToUnit.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/CoercionToUnit.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/DoubleDefine.jet b/compiler/testData/checkerWithErrorTypes/full/regression/DoubleDefine.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/DoubleDefine.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/DoubleDefine.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet11.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet11.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet11.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet11.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet121.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet121.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet121.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet121.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet124.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet124.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet124.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet124.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet169.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet169.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet169.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet169.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet17.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet17.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet17.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet17.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet183-1.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet183-1.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet183-1.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet183-1.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet183.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet183.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet183.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet183.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet53.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet53.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet53.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet53.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet67.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet67.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet67.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet67.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet68.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet68.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet68.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet68.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet69.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet69.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet69.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet69.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet72.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet72.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet72.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet72.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/Jet81.jet b/compiler/testData/checkerWithErrorTypes/full/regression/Jet81.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/Jet81.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/Jet81.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/OverrideResolution.jet b/compiler/testData/checkerWithErrorTypes/full/regression/OverrideResolution.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/OverrideResolution.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/OverrideResolution.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/ScopeForSecondaryConstructors.jet b/compiler/testData/checkerWithErrorTypes/full/regression/ScopeForSecondaryConstructors.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/ScopeForSecondaryConstructors.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/ScopeForSecondaryConstructors.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/SpecififcityByReceiver.jet b/compiler/testData/checkerWithErrorTypes/full/regression/SpecififcityByReceiver.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/SpecififcityByReceiver.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/SpecififcityByReceiver.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/ThisConstructorInGenericClass.jet b/compiler/testData/checkerWithErrorTypes/full/regression/ThisConstructorInGenericClass.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/ThisConstructorInGenericClass.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/ThisConstructorInGenericClass.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/WrongTraceInCallResolver.jet b/compiler/testData/checkerWithErrorTypes/full/regression/WrongTraceInCallResolver.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/WrongTraceInCallResolver.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/WrongTraceInCallResolver.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/kt251.jet b/compiler/testData/checkerWithErrorTypes/full/regression/kt251.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/kt251.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/kt251.jet diff --git a/idea/testData/checkerWithErrorTypes/full/regression/kt303.jet b/compiler/testData/checkerWithErrorTypes/full/regression/kt303.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/full/regression/kt303.jet rename to compiler/testData/checkerWithErrorTypes/full/regression/kt303.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/AutoCreatedIt.jet b/compiler/testData/checkerWithErrorTypes/quick/AutoCreatedIt.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/AutoCreatedIt.jet rename to compiler/testData/checkerWithErrorTypes/quick/AutoCreatedIt.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/AutocastAmbiguitites.jet b/compiler/testData/checkerWithErrorTypes/quick/AutocastAmbiguitites.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/AutocastAmbiguitites.jet rename to compiler/testData/checkerWithErrorTypes/quick/AutocastAmbiguitites.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet b/compiler/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet rename to compiler/testData/checkerWithErrorTypes/quick/AutocastsForStableIdentifiers.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/Basic.jet b/compiler/testData/checkerWithErrorTypes/quick/Basic.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/Basic.jet rename to compiler/testData/checkerWithErrorTypes/quick/Basic.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/DefaultValuesTypechecking.jet b/compiler/testData/checkerWithErrorTypes/quick/DefaultValuesTypechecking.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/DefaultValuesTypechecking.jet rename to compiler/testData/checkerWithErrorTypes/quick/DefaultValuesTypechecking.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/DeferredTypes.jet b/compiler/testData/checkerWithErrorTypes/quick/DeferredTypes.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/DeferredTypes.jet rename to compiler/testData/checkerWithErrorTypes/quick/DeferredTypes.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/DelegationAndOverriding.jet b/compiler/testData/checkerWithErrorTypes/quick/DelegationAndOverriding.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/DelegationAndOverriding.jet rename to compiler/testData/checkerWithErrorTypes/quick/DelegationAndOverriding.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/DelegationNotTotrait.jet b/compiler/testData/checkerWithErrorTypes/quick/DelegationNotTotrait.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/DelegationNotTotrait.jet rename to compiler/testData/checkerWithErrorTypes/quick/DelegationNotTotrait.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/NamedArgumentsAndDefaultValues.jet b/compiler/testData/checkerWithErrorTypes/quick/NamedArgumentsAndDefaultValues.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/NamedArgumentsAndDefaultValues.jet rename to compiler/testData/checkerWithErrorTypes/quick/NamedArgumentsAndDefaultValues.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/Override.jet b/compiler/testData/checkerWithErrorTypes/quick/Override.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/Override.jet rename to compiler/testData/checkerWithErrorTypes/quick/Override.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/OverridingVarByVal.jet b/compiler/testData/checkerWithErrorTypes/quick/OverridingVarByVal.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/OverridingVarByVal.jet rename to compiler/testData/checkerWithErrorTypes/quick/OverridingVarByVal.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/Varargs.jet b/compiler/testData/checkerWithErrorTypes/quick/Varargs.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/Varargs.jet rename to compiler/testData/checkerWithErrorTypes/quick/Varargs.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/InfixCallNullability.jet b/compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/InfixCallNullability.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/InfixCallNullability.jet rename to compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/InfixCallNullability.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet b/compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet rename to compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/NullableNothingIsExactlyNull.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/PreferExtensionsOnNullableReceiver.jet b/compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/PreferExtensionsOnNullableReceiver.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/PreferExtensionsOnNullableReceiver.jet rename to compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/PreferExtensionsOnNullableReceiver.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/ReceiverNullability.jet b/compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/ReceiverNullability.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/ReceiverNullability.jet rename to compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/ReceiverNullability.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet b/compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet rename to compiler/testData/checkerWithErrorTypes/quick/nullabilityAndAutoCasts/kt362.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/regressions/kt306.jet b/compiler/testData/checkerWithErrorTypes/quick/regressions/kt306.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/regressions/kt306.jet rename to compiler/testData/checkerWithErrorTypes/quick/regressions/kt306.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/regressions/kt307.jet b/compiler/testData/checkerWithErrorTypes/quick/regressions/kt307.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/regressions/kt307.jet rename to compiler/testData/checkerWithErrorTypes/quick/regressions/kt307.jet diff --git a/idea/testData/checkerWithErrorTypes/quick/regressions/kt316.jet b/compiler/testData/checkerWithErrorTypes/quick/regressions/kt316.jet similarity index 100% rename from idea/testData/checkerWithErrorTypes/quick/regressions/kt316.jet rename to compiler/testData/checkerWithErrorTypes/quick/regressions/kt316.jet diff --git a/idea/testData/codegen/PSVM.jet b/compiler/testData/codegen/PSVM.jet similarity index 100% rename from idea/testData/codegen/PSVM.jet rename to compiler/testData/codegen/PSVM.jet diff --git a/idea/testData/codegen/assign.jet b/compiler/testData/codegen/assign.jet similarity index 100% rename from idea/testData/codegen/assign.jet rename to compiler/testData/codegen/assign.jet diff --git a/idea/testData/codegen/bottles.jet b/compiler/testData/codegen/bottles.jet similarity index 100% rename from idea/testData/codegen/bottles.jet rename to compiler/testData/codegen/bottles.jet diff --git a/idea/testData/codegen/bottles2.jet b/compiler/testData/codegen/bottles2.jet similarity index 100% rename from idea/testData/codegen/bottles2.jet rename to compiler/testData/codegen/bottles2.jet diff --git a/idea/testData/codegen/bridge.jet b/compiler/testData/codegen/bridge.jet similarity index 100% rename from idea/testData/codegen/bridge.jet rename to compiler/testData/codegen/bridge.jet diff --git a/idea/testData/codegen/checkCast.jet b/compiler/testData/codegen/checkCast.jet similarity index 100% rename from idea/testData/codegen/checkCast.jet rename to compiler/testData/codegen/checkCast.jet diff --git a/idea/testData/codegen/classes/classObject.jet b/compiler/testData/codegen/classes/classObject.jet similarity index 100% rename from idea/testData/codegen/classes/classObject.jet rename to compiler/testData/codegen/classes/classObject.jet diff --git a/idea/testData/codegen/classes/classObjectInterface.jet b/compiler/testData/codegen/classes/classObjectInterface.jet similarity index 100% rename from idea/testData/codegen/classes/classObjectInterface.jet rename to compiler/testData/codegen/classes/classObjectInterface.jet diff --git a/idea/testData/codegen/classes/classObjectMethod.jet b/compiler/testData/codegen/classes/classObjectMethod.jet similarity index 100% rename from idea/testData/codegen/classes/classObjectMethod.jet rename to compiler/testData/codegen/classes/classObjectMethod.jet diff --git a/idea/testData/codegen/classes/closureWithParameter.jet b/compiler/testData/codegen/classes/closureWithParameter.jet similarity index 100% rename from idea/testData/codegen/classes/closureWithParameter.jet rename to compiler/testData/codegen/classes/closureWithParameter.jet diff --git a/idea/testData/codegen/classes/closureWithParameterAndBoxing.jet b/compiler/testData/codegen/classes/closureWithParameterAndBoxing.jet similarity index 100% rename from idea/testData/codegen/classes/closureWithParameterAndBoxing.jet rename to compiler/testData/codegen/classes/closureWithParameterAndBoxing.jet diff --git a/idea/testData/codegen/classes/diamondInheritance.jet b/compiler/testData/codegen/classes/diamondInheritance.jet similarity index 100% rename from idea/testData/codegen/classes/diamondInheritance.jet rename to compiler/testData/codegen/classes/diamondInheritance.jet diff --git a/idea/testData/codegen/classes/doubleEnclosedLocalVariable.jet b/compiler/testData/codegen/classes/doubleEnclosedLocalVariable.jet similarity index 100% rename from idea/testData/codegen/classes/doubleEnclosedLocalVariable.jet rename to compiler/testData/codegen/classes/doubleEnclosedLocalVariable.jet diff --git a/idea/testData/codegen/classes/enclosingLocalVariable.jet b/compiler/testData/codegen/classes/enclosingLocalVariable.jet similarity index 100% rename from idea/testData/codegen/classes/enclosingLocalVariable.jet rename to compiler/testData/codegen/classes/enclosingLocalVariable.jet diff --git a/idea/testData/codegen/classes/enclosingThis.jet b/compiler/testData/codegen/classes/enclosingThis.jet similarity index 100% rename from idea/testData/codegen/classes/enclosingThis.jet rename to compiler/testData/codegen/classes/enclosingThis.jet diff --git a/idea/testData/codegen/classes/exceptionConstructor.jet b/compiler/testData/codegen/classes/exceptionConstructor.jet similarity index 100% rename from idea/testData/codegen/classes/exceptionConstructor.jet rename to compiler/testData/codegen/classes/exceptionConstructor.jet diff --git a/idea/testData/codegen/classes/extensionClosure.jet b/compiler/testData/codegen/classes/extensionClosure.jet similarity index 100% rename from idea/testData/codegen/classes/extensionClosure.jet rename to compiler/testData/codegen/classes/extensionClosure.jet diff --git a/idea/testData/codegen/classes/funDelegation.jet b/compiler/testData/codegen/classes/funDelegation.jet similarity index 100% rename from idea/testData/codegen/classes/funDelegation.jet rename to compiler/testData/codegen/classes/funDelegation.jet diff --git a/idea/testData/codegen/classes/inheritance.jet b/compiler/testData/codegen/classes/inheritance.jet similarity index 100% rename from idea/testData/codegen/classes/inheritance.jet rename to compiler/testData/codegen/classes/inheritance.jet diff --git a/idea/testData/codegen/classes/inheritedInnerClass.jet b/compiler/testData/codegen/classes/inheritedInnerClass.jet similarity index 100% rename from idea/testData/codegen/classes/inheritedInnerClass.jet rename to compiler/testData/codegen/classes/inheritedInnerClass.jet diff --git a/idea/testData/codegen/classes/inheritedMethod.jet b/compiler/testData/codegen/classes/inheritedMethod.jet similarity index 100% rename from idea/testData/codegen/classes/inheritedMethod.jet rename to compiler/testData/codegen/classes/inheritedMethod.jet diff --git a/idea/testData/codegen/classes/inheritingFromArrayList.jet b/compiler/testData/codegen/classes/inheritingFromArrayList.jet similarity index 100% rename from idea/testData/codegen/classes/inheritingFromArrayList.jet rename to compiler/testData/codegen/classes/inheritingFromArrayList.jet diff --git a/idea/testData/codegen/classes/initializerBlock.jet b/compiler/testData/codegen/classes/initializerBlock.jet similarity index 100% rename from idea/testData/codegen/classes/initializerBlock.jet rename to compiler/testData/codegen/classes/initializerBlock.jet diff --git a/idea/testData/codegen/classes/initializerBlockDImpl.jet b/compiler/testData/codegen/classes/initializerBlockDImpl.jet similarity index 100% rename from idea/testData/codegen/classes/initializerBlockDImpl.jet rename to compiler/testData/codegen/classes/initializerBlockDImpl.jet diff --git a/idea/testData/codegen/classes/innerClass.jet b/compiler/testData/codegen/classes/innerClass.jet similarity index 100% rename from idea/testData/codegen/classes/innerClass.jet rename to compiler/testData/codegen/classes/innerClass.jet diff --git a/idea/testData/codegen/classes/newInstanceDefaultConstructor.jet b/compiler/testData/codegen/classes/newInstanceDefaultConstructor.jet similarity index 100% rename from idea/testData/codegen/classes/newInstanceDefaultConstructor.jet rename to compiler/testData/codegen/classes/newInstanceDefaultConstructor.jet diff --git a/idea/testData/codegen/classes/outerThis.jet b/compiler/testData/codegen/classes/outerThis.jet similarity index 100% rename from idea/testData/codegen/classes/outerThis.jet rename to compiler/testData/codegen/classes/outerThis.jet diff --git a/idea/testData/codegen/classes/overloadBinaryOperator.jet b/compiler/testData/codegen/classes/overloadBinaryOperator.jet similarity index 100% rename from idea/testData/codegen/classes/overloadBinaryOperator.jet rename to compiler/testData/codegen/classes/overloadBinaryOperator.jet diff --git a/idea/testData/codegen/classes/overloadPlusAssign.jet b/compiler/testData/codegen/classes/overloadPlusAssign.jet similarity index 100% rename from idea/testData/codegen/classes/overloadPlusAssign.jet rename to compiler/testData/codegen/classes/overloadPlusAssign.jet diff --git a/idea/testData/codegen/classes/overloadPlusAssignReturn.jet b/compiler/testData/codegen/classes/overloadPlusAssignReturn.jet similarity index 100% rename from idea/testData/codegen/classes/overloadPlusAssignReturn.jet rename to compiler/testData/codegen/classes/overloadPlusAssignReturn.jet diff --git a/idea/testData/codegen/classes/overloadPlusToPlusAssign.jet b/compiler/testData/codegen/classes/overloadPlusToPlusAssign.jet similarity index 100% rename from idea/testData/codegen/classes/overloadPlusToPlusAssign.jet rename to compiler/testData/codegen/classes/overloadPlusToPlusAssign.jet diff --git a/idea/testData/codegen/classes/overloadUnaryOperator.jet b/compiler/testData/codegen/classes/overloadUnaryOperator.jet similarity index 100% rename from idea/testData/codegen/classes/overloadUnaryOperator.jet rename to compiler/testData/codegen/classes/overloadUnaryOperator.jet diff --git a/idea/testData/codegen/classes/propertyDelegation.jet b/compiler/testData/codegen/classes/propertyDelegation.jet similarity index 100% rename from idea/testData/codegen/classes/propertyDelegation.jet rename to compiler/testData/codegen/classes/propertyDelegation.jet diff --git a/idea/testData/codegen/classes/propertyInInitializer.jet b/compiler/testData/codegen/classes/propertyInInitializer.jet similarity index 100% rename from idea/testData/codegen/classes/propertyInInitializer.jet rename to compiler/testData/codegen/classes/propertyInInitializer.jet diff --git a/idea/testData/codegen/classes/rightHandOverride.jet b/compiler/testData/codegen/classes/rightHandOverride.jet similarity index 100% rename from idea/testData/codegen/classes/rightHandOverride.jet rename to compiler/testData/codegen/classes/rightHandOverride.jet diff --git a/idea/testData/codegen/classes/secondaryConstructors.jet b/compiler/testData/codegen/classes/secondaryConstructors.jet similarity index 100% rename from idea/testData/codegen/classes/secondaryConstructors.jet rename to compiler/testData/codegen/classes/secondaryConstructors.jet diff --git a/idea/testData/codegen/classes/simpleBox.jet b/compiler/testData/codegen/classes/simpleBox.jet similarity index 100% rename from idea/testData/codegen/classes/simpleBox.jet rename to compiler/testData/codegen/classes/simpleBox.jet diff --git a/idea/testData/codegen/classes/simpleClass.jet b/compiler/testData/codegen/classes/simpleClass.jet similarity index 100% rename from idea/testData/codegen/classes/simpleClass.jet rename to compiler/testData/codegen/classes/simpleClass.jet diff --git a/idea/testData/codegen/classes/simplestClosure.jet b/compiler/testData/codegen/classes/simplestClosure.jet similarity index 100% rename from idea/testData/codegen/classes/simplestClosure.jet rename to compiler/testData/codegen/classes/simplestClosure.jet diff --git a/idea/testData/codegen/classes/simplestClosureAndBoxing.jet b/compiler/testData/codegen/classes/simplestClosureAndBoxing.jet similarity index 100% rename from idea/testData/codegen/classes/simplestClosureAndBoxing.jet rename to compiler/testData/codegen/classes/simplestClosureAndBoxing.jet diff --git a/idea/testData/codegen/controlStructures/break.jet b/compiler/testData/codegen/controlStructures/break.jet similarity index 100% rename from idea/testData/codegen/controlStructures/break.jet rename to compiler/testData/codegen/controlStructures/break.jet diff --git a/idea/testData/codegen/controlStructures/continue.jet b/compiler/testData/codegen/controlStructures/continue.jet similarity index 100% rename from idea/testData/codegen/controlStructures/continue.jet rename to compiler/testData/codegen/controlStructures/continue.jet diff --git a/idea/testData/codegen/controlStructures/doWhile.jet b/compiler/testData/codegen/controlStructures/doWhile.jet similarity index 100% rename from idea/testData/codegen/controlStructures/doWhile.jet rename to compiler/testData/codegen/controlStructures/doWhile.jet diff --git a/idea/testData/codegen/controlStructures/for.jet b/compiler/testData/codegen/controlStructures/for.jet similarity index 100% rename from idea/testData/codegen/controlStructures/for.jet rename to compiler/testData/codegen/controlStructures/for.jet diff --git a/idea/testData/codegen/controlStructures/forInArray.jet b/compiler/testData/codegen/controlStructures/forInArray.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forInArray.jet rename to compiler/testData/codegen/controlStructures/forInArray.jet diff --git a/idea/testData/codegen/controlStructures/forIntArray.jet b/compiler/testData/codegen/controlStructures/forIntArray.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forIntArray.jet rename to compiler/testData/codegen/controlStructures/forIntArray.jet diff --git a/idea/testData/codegen/controlStructures/forIntRange.jet b/compiler/testData/codegen/controlStructures/forIntRange.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forIntRange.jet rename to compiler/testData/codegen/controlStructures/forIntRange.jet diff --git a/idea/testData/codegen/controlStructures/forNullableIntArray.jet b/compiler/testData/codegen/controlStructures/forNullableIntArray.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forNullableIntArray.jet rename to compiler/testData/codegen/controlStructures/forNullableIntArray.jet diff --git a/idea/testData/codegen/controlStructures/forPrimitiveIntArray.jet b/compiler/testData/codegen/controlStructures/forPrimitiveIntArray.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forPrimitiveIntArray.jet rename to compiler/testData/codegen/controlStructures/forPrimitiveIntArray.jet diff --git a/idea/testData/codegen/controlStructures/forUserType.jet b/compiler/testData/codegen/controlStructures/forUserType.jet similarity index 100% rename from idea/testData/codegen/controlStructures/forUserType.jet rename to compiler/testData/codegen/controlStructures/forUserType.jet diff --git a/idea/testData/codegen/controlStructures/if.jet b/compiler/testData/codegen/controlStructures/if.jet similarity index 100% rename from idea/testData/codegen/controlStructures/if.jet rename to compiler/testData/codegen/controlStructures/if.jet diff --git a/idea/testData/codegen/controlStructures/ifBlock.jet b/compiler/testData/codegen/controlStructures/ifBlock.jet similarity index 100% rename from idea/testData/codegen/controlStructures/ifBlock.jet rename to compiler/testData/codegen/controlStructures/ifBlock.jet diff --git a/idea/testData/codegen/controlStructures/ifNoElse.jet b/compiler/testData/codegen/controlStructures/ifNoElse.jet similarity index 100% rename from idea/testData/codegen/controlStructures/ifNoElse.jet rename to compiler/testData/codegen/controlStructures/ifNoElse.jet diff --git a/idea/testData/codegen/controlStructures/singleBranchIf.jet b/compiler/testData/codegen/controlStructures/singleBranchIf.jet similarity index 100% rename from idea/testData/codegen/controlStructures/singleBranchIf.jet rename to compiler/testData/codegen/controlStructures/singleBranchIf.jet diff --git a/idea/testData/codegen/controlStructures/tryCatch.jet b/compiler/testData/codegen/controlStructures/tryCatch.jet similarity index 100% rename from idea/testData/codegen/controlStructures/tryCatch.jet rename to compiler/testData/codegen/controlStructures/tryCatch.jet diff --git a/idea/testData/codegen/controlStructures/tryFinally.jet b/compiler/testData/codegen/controlStructures/tryFinally.jet similarity index 100% rename from idea/testData/codegen/controlStructures/tryFinally.jet rename to compiler/testData/codegen/controlStructures/tryFinally.jet diff --git a/idea/testData/codegen/controlStructures/while.jet b/compiler/testData/codegen/controlStructures/while.jet similarity index 100% rename from idea/testData/codegen/controlStructures/while.jet rename to compiler/testData/codegen/controlStructures/while.jet diff --git a/idea/testData/codegen/extensionFunctions/generic.jet b/compiler/testData/codegen/extensionFunctions/generic.jet similarity index 100% rename from idea/testData/codegen/extensionFunctions/generic.jet rename to compiler/testData/codegen/extensionFunctions/generic.jet diff --git a/idea/testData/codegen/extensionFunctions/simple.jet b/compiler/testData/codegen/extensionFunctions/simple.jet similarity index 100% rename from idea/testData/codegen/extensionFunctions/simple.jet rename to compiler/testData/codegen/extensionFunctions/simple.jet diff --git a/idea/testData/codegen/extensionFunctions/whenFail.jet b/compiler/testData/codegen/extensionFunctions/whenFail.jet similarity index 100% rename from idea/testData/codegen/extensionFunctions/whenFail.jet rename to compiler/testData/codegen/extensionFunctions/whenFail.jet diff --git a/idea/testData/codegen/functionCall.jet b/compiler/testData/codegen/functionCall.jet similarity index 100% rename from idea/testData/codegen/functionCall.jet rename to compiler/testData/codegen/functionCall.jet diff --git a/idea/testData/codegen/functions/defaultargs.jet b/compiler/testData/codegen/functions/defaultargs.jet similarity index 100% rename from idea/testData/codegen/functions/defaultargs.jet rename to compiler/testData/codegen/functions/defaultargs.jet diff --git a/idea/testData/codegen/functions/namedargs.jet b/compiler/testData/codegen/functions/namedargs.jet similarity index 100% rename from idea/testData/codegen/functions/namedargs.jet rename to compiler/testData/codegen/functions/namedargs.jet diff --git a/idea/testData/codegen/functions/nothisnoclosure.jet b/compiler/testData/codegen/functions/nothisnoclosure.jet similarity index 100% rename from idea/testData/codegen/functions/nothisnoclosure.jet rename to compiler/testData/codegen/functions/nothisnoclosure.jet diff --git a/idea/testData/codegen/helloWorld.jet b/compiler/testData/codegen/helloWorld.jet similarity index 100% rename from idea/testData/codegen/helloWorld.jet rename to compiler/testData/codegen/helloWorld.jet diff --git a/idea/testData/codegen/incrementProperty.jet b/compiler/testData/codegen/incrementProperty.jet similarity index 100% rename from idea/testData/codegen/incrementProperty.jet rename to compiler/testData/codegen/incrementProperty.jet diff --git a/idea/testData/codegen/localProperty.jet b/compiler/testData/codegen/localProperty.jet similarity index 100% rename from idea/testData/codegen/localProperty.jet rename to compiler/testData/codegen/localProperty.jet diff --git a/idea/testData/codegen/namespaceQualifiedMethod.jet b/compiler/testData/codegen/namespaceQualifiedMethod.jet similarity index 100% rename from idea/testData/codegen/namespaceQualifiedMethod.jet rename to compiler/testData/codegen/namespaceQualifiedMethod.jet diff --git a/idea/testData/codegen/newInstanceExplicitConstructor.jet b/compiler/testData/codegen/newInstanceExplicitConstructor.jet similarity index 100% rename from idea/testData/codegen/newInstanceExplicitConstructor.jet rename to compiler/testData/codegen/newInstanceExplicitConstructor.jet diff --git a/idea/testData/codegen/objects/methodOnObject.jet b/compiler/testData/codegen/objects/methodOnObject.jet similarity index 100% rename from idea/testData/codegen/objects/methodOnObject.jet rename to compiler/testData/codegen/objects/methodOnObject.jet diff --git a/idea/testData/codegen/objects/objectLiteral.jet b/compiler/testData/codegen/objects/objectLiteral.jet similarity index 100% rename from idea/testData/codegen/objects/objectLiteral.jet rename to compiler/testData/codegen/objects/objectLiteral.jet diff --git a/idea/testData/codegen/objects/simpleObject.jet b/compiler/testData/codegen/objects/simpleObject.jet similarity index 100% rename from idea/testData/codegen/objects/simpleObject.jet rename to compiler/testData/codegen/objects/simpleObject.jet diff --git a/idea/testData/codegen/patternMatching/callProperty.jet b/compiler/testData/codegen/patternMatching/callProperty.jet similarity index 100% rename from idea/testData/codegen/patternMatching/callProperty.jet rename to compiler/testData/codegen/patternMatching/callProperty.jet diff --git a/idea/testData/codegen/patternMatching/constant.jet b/compiler/testData/codegen/patternMatching/constant.jet similarity index 100% rename from idea/testData/codegen/patternMatching/constant.jet rename to compiler/testData/codegen/patternMatching/constant.jet diff --git a/idea/testData/codegen/patternMatching/exceptionOnNoMatch.jet b/compiler/testData/codegen/patternMatching/exceptionOnNoMatch.jet similarity index 100% rename from idea/testData/codegen/patternMatching/exceptionOnNoMatch.jet rename to compiler/testData/codegen/patternMatching/exceptionOnNoMatch.jet diff --git a/idea/testData/codegen/patternMatching/inrange.jet b/compiler/testData/codegen/patternMatching/inrange.jet similarity index 100% rename from idea/testData/codegen/patternMatching/inrange.jet rename to compiler/testData/codegen/patternMatching/inrange.jet diff --git a/idea/testData/codegen/patternMatching/is.jet b/compiler/testData/codegen/patternMatching/is.jet similarity index 100% rename from idea/testData/codegen/patternMatching/is.jet rename to compiler/testData/codegen/patternMatching/is.jet diff --git a/idea/testData/codegen/patternMatching/pattern.jet b/compiler/testData/codegen/patternMatching/pattern.jet similarity index 100% rename from idea/testData/codegen/patternMatching/pattern.jet rename to compiler/testData/codegen/patternMatching/pattern.jet diff --git a/idea/testData/codegen/patternMatching/range.jet b/compiler/testData/codegen/patternMatching/range.jet similarity index 100% rename from idea/testData/codegen/patternMatching/range.jet rename to compiler/testData/codegen/patternMatching/range.jet diff --git a/idea/testData/codegen/patternMatching/rangeChar.jet b/compiler/testData/codegen/patternMatching/rangeChar.jet similarity index 100% rename from idea/testData/codegen/patternMatching/rangeChar.jet rename to compiler/testData/codegen/patternMatching/rangeChar.jet diff --git a/idea/testData/codegen/properties/fieldPropertyAccess.jet b/compiler/testData/codegen/properties/fieldPropertyAccess.jet similarity index 100% rename from idea/testData/codegen/properties/fieldPropertyAccess.jet rename to compiler/testData/codegen/properties/fieldPropertyAccess.jet diff --git a/idea/testData/codegen/properties/fieldSetter.jet b/compiler/testData/codegen/properties/fieldSetter.jet similarity index 100% rename from idea/testData/codegen/properties/fieldSetter.jet rename to compiler/testData/codegen/properties/fieldSetter.jet diff --git a/idea/testData/codegen/properties/fieldSetterPlusEq.jet b/compiler/testData/codegen/properties/fieldSetterPlusEq.jet similarity index 100% rename from idea/testData/codegen/properties/fieldSetterPlusEq.jet rename to compiler/testData/codegen/properties/fieldSetterPlusEq.jet diff --git a/idea/testData/codegen/properties/privateVal.jet b/compiler/testData/codegen/properties/privateVal.jet similarity index 100% rename from idea/testData/codegen/properties/privateVal.jet rename to compiler/testData/codegen/properties/privateVal.jet diff --git a/idea/testData/codegen/properties/privateVar.jet b/compiler/testData/codegen/properties/privateVar.jet similarity index 100% rename from idea/testData/codegen/properties/privateVar.jet rename to compiler/testData/codegen/properties/privateVar.jet diff --git a/idea/testData/codegen/properties/propertyReceiverOnStack.jet b/compiler/testData/codegen/properties/propertyReceiverOnStack.jet similarity index 100% rename from idea/testData/codegen/properties/propertyReceiverOnStack.jet rename to compiler/testData/codegen/properties/propertyReceiverOnStack.jet diff --git a/idea/testData/codegen/regressions/kt232.jet b/compiler/testData/codegen/regressions/kt232.jet similarity index 100% rename from idea/testData/codegen/regressions/kt232.jet rename to compiler/testData/codegen/regressions/kt232.jet diff --git a/idea/testData/codegen/regressions/kt237.jet b/compiler/testData/codegen/regressions/kt237.jet similarity index 100% rename from idea/testData/codegen/regressions/kt237.jet rename to compiler/testData/codegen/regressions/kt237.jet diff --git a/idea/testData/codegen/regressions/kt238.jet b/compiler/testData/codegen/regressions/kt238.jet similarity index 100% rename from idea/testData/codegen/regressions/kt238.jet rename to compiler/testData/codegen/regressions/kt238.jet diff --git a/idea/testData/codegen/regressions/kt239.jet b/compiler/testData/codegen/regressions/kt239.jet similarity index 100% rename from idea/testData/codegen/regressions/kt239.jet rename to compiler/testData/codegen/regressions/kt239.jet diff --git a/idea/testData/codegen/regressions/kt242.jet b/compiler/testData/codegen/regressions/kt242.jet similarity index 100% rename from idea/testData/codegen/regressions/kt242.jet rename to compiler/testData/codegen/regressions/kt242.jet diff --git a/idea/testData/codegen/regressions/kt243.jet b/compiler/testData/codegen/regressions/kt243.jet similarity index 100% rename from idea/testData/codegen/regressions/kt243.jet rename to compiler/testData/codegen/regressions/kt243.jet diff --git a/idea/testData/codegen/regressions/kt245.jet b/compiler/testData/codegen/regressions/kt245.jet similarity index 100% rename from idea/testData/codegen/regressions/kt245.jet rename to compiler/testData/codegen/regressions/kt245.jet diff --git a/idea/testData/codegen/regressions/kt247.jet b/compiler/testData/codegen/regressions/kt247.jet similarity index 100% rename from idea/testData/codegen/regressions/kt247.jet rename to compiler/testData/codegen/regressions/kt247.jet diff --git a/idea/testData/codegen/regressions/kt248.jet b/compiler/testData/codegen/regressions/kt248.jet similarity index 100% rename from idea/testData/codegen/regressions/kt248.jet rename to compiler/testData/codegen/regressions/kt248.jet diff --git a/idea/testData/codegen/regressions/kt249.jet b/compiler/testData/codegen/regressions/kt249.jet similarity index 100% rename from idea/testData/codegen/regressions/kt249.jet rename to compiler/testData/codegen/regressions/kt249.jet diff --git a/idea/testData/codegen/regressions/kt257.jet b/compiler/testData/codegen/regressions/kt257.jet similarity index 100% rename from idea/testData/codegen/regressions/kt257.jet rename to compiler/testData/codegen/regressions/kt257.jet diff --git a/idea/testData/codegen/regressions/kt259.jet b/compiler/testData/codegen/regressions/kt259.jet similarity index 100% rename from idea/testData/codegen/regressions/kt259.jet rename to compiler/testData/codegen/regressions/kt259.jet diff --git a/idea/testData/codegen/regressions/kt297.jet b/compiler/testData/codegen/regressions/kt297.jet similarity index 100% rename from idea/testData/codegen/regressions/kt297.jet rename to compiler/testData/codegen/regressions/kt297.jet diff --git a/idea/testData/codegen/regressions/kt299.jet b/compiler/testData/codegen/regressions/kt299.jet similarity index 100% rename from idea/testData/codegen/regressions/kt299.jet rename to compiler/testData/codegen/regressions/kt299.jet diff --git a/idea/testData/codegen/regressions/kt326.jet b/compiler/testData/codegen/regressions/kt326.jet similarity index 100% rename from idea/testData/codegen/regressions/kt326.jet rename to compiler/testData/codegen/regressions/kt326.jet diff --git a/idea/testData/codegen/regressions/kt343.jet b/compiler/testData/codegen/regressions/kt343.jet similarity index 100% rename from idea/testData/codegen/regressions/kt343.jet rename to compiler/testData/codegen/regressions/kt343.jet diff --git a/idea/testData/codegen/regressions/kt344.jet b/compiler/testData/codegen/regressions/kt344.jet similarity index 100% rename from idea/testData/codegen/regressions/kt344.jet rename to compiler/testData/codegen/regressions/kt344.jet diff --git a/idea/testData/codegen/regressions/kt48.jet b/compiler/testData/codegen/regressions/kt48.jet similarity index 100% rename from idea/testData/codegen/regressions/kt48.jet rename to compiler/testData/codegen/regressions/kt48.jet diff --git a/idea/testData/codegen/systemOut.jet b/compiler/testData/codegen/systemOut.jet similarity index 100% rename from idea/testData/codegen/systemOut.jet rename to compiler/testData/codegen/systemOut.jet diff --git a/idea/testData/codegen/traits/multiple.jet b/compiler/testData/codegen/traits/multiple.jet similarity index 100% rename from idea/testData/codegen/traits/multiple.jet rename to compiler/testData/codegen/traits/multiple.jet diff --git a/idea/testData/codegen/traits/simple.jet b/compiler/testData/codegen/traits/simple.jet similarity index 100% rename from idea/testData/codegen/traits/simple.jet rename to compiler/testData/codegen/traits/simple.jet diff --git a/idea/testData/codegen/traits/stdlib.jet b/compiler/testData/codegen/traits/stdlib.jet similarity index 100% rename from idea/testData/codegen/traits/stdlib.jet rename to compiler/testData/codegen/traits/stdlib.jet diff --git a/idea/testData/codegen/traits/withRequired.jet b/compiler/testData/codegen/traits/withRequired.jet similarity index 100% rename from idea/testData/codegen/traits/withRequired.jet rename to compiler/testData/codegen/traits/withRequired.jet diff --git a/idea/testData/codegen/typeInfo/asInLoop.jet b/compiler/testData/codegen/typeInfo/asInLoop.jet similarity index 100% rename from idea/testData/codegen/typeInfo/asInLoop.jet rename to compiler/testData/codegen/typeInfo/asInLoop.jet diff --git a/idea/testData/codegen/typeInfo/asSafeWithGenerics.jet b/compiler/testData/codegen/typeInfo/asSafeWithGenerics.jet similarity index 100% rename from idea/testData/codegen/typeInfo/asSafeWithGenerics.jet rename to compiler/testData/codegen/typeInfo/asSafeWithGenerics.jet diff --git a/idea/testData/codegen/typeInfo/classObjectInTypeInfo.jet b/compiler/testData/codegen/typeInfo/classObjectInTypeInfo.jet similarity index 100% rename from idea/testData/codegen/typeInfo/classObjectInTypeInfo.jet rename to compiler/testData/codegen/typeInfo/classObjectInTypeInfo.jet diff --git a/idea/testData/codegen/typeInfo/forwardTypeParameter.jet b/compiler/testData/codegen/typeInfo/forwardTypeParameter.jet similarity index 100% rename from idea/testData/codegen/typeInfo/forwardTypeParameter.jet rename to compiler/testData/codegen/typeInfo/forwardTypeParameter.jet diff --git a/idea/testData/codegen/typeInfo/genericFunction.jet b/compiler/testData/codegen/typeInfo/genericFunction.jet similarity index 100% rename from idea/testData/codegen/typeInfo/genericFunction.jet rename to compiler/testData/codegen/typeInfo/genericFunction.jet diff --git a/idea/testData/codegen/typeInfo/getTypeInfo.jet b/compiler/testData/codegen/typeInfo/getTypeInfo.jet similarity index 100% rename from idea/testData/codegen/typeInfo/getTypeInfo.jet rename to compiler/testData/codegen/typeInfo/getTypeInfo.jet diff --git a/idea/testData/codegen/typeInfo/inner.jet b/compiler/testData/codegen/typeInfo/inner.jet similarity index 100% rename from idea/testData/codegen/typeInfo/inner.jet rename to compiler/testData/codegen/typeInfo/inner.jet diff --git a/idea/testData/codegen/typeInfo/isTypeParameter.jet b/compiler/testData/codegen/typeInfo/isTypeParameter.jet similarity index 100% rename from idea/testData/codegen/typeInfo/isTypeParameter.jet rename to compiler/testData/codegen/typeInfo/isTypeParameter.jet diff --git a/idea/testData/codegen/typeInfo/isWithGenericParameters.jet b/compiler/testData/codegen/typeInfo/isWithGenericParameters.jet similarity index 100% rename from idea/testData/codegen/typeInfo/isWithGenericParameters.jet rename to compiler/testData/codegen/typeInfo/isWithGenericParameters.jet diff --git a/idea/testData/codegen/typeInfo/isWithGenerics.jet b/compiler/testData/codegen/typeInfo/isWithGenerics.jet similarity index 100% rename from idea/testData/codegen/typeInfo/isWithGenerics.jet rename to compiler/testData/codegen/typeInfo/isWithGenerics.jet diff --git a/idea/testData/codegen/typeInfo/nullability.jet b/compiler/testData/codegen/typeInfo/nullability.jet similarity index 100% rename from idea/testData/codegen/typeInfo/nullability.jet rename to compiler/testData/codegen/typeInfo/nullability.jet diff --git a/idea/testData/codegen/typeInfo/oneArgTypeinfo.jet b/compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet similarity index 100% rename from idea/testData/codegen/typeInfo/oneArgTypeinfo.jet rename to compiler/testData/codegen/typeInfo/oneArgTypeinfo.jet diff --git a/idea/testData/codegen/typeInfo/primitiveTypeInfo.jet b/compiler/testData/codegen/typeInfo/primitiveTypeInfo.jet similarity index 100% rename from idea/testData/codegen/typeInfo/primitiveTypeInfo.jet rename to compiler/testData/codegen/typeInfo/primitiveTypeInfo.jet diff --git a/idea/testData/mockJDK-1.7/jre/lib/annotations.jar b/compiler/testData/mockJDK-1.7/jre/lib/annotations.jar similarity index 100% rename from idea/testData/mockJDK-1.7/jre/lib/annotations.jar rename to compiler/testData/mockJDK-1.7/jre/lib/annotations.jar diff --git a/idea/testData/mockJDK-1.7/jre/lib/rt.jar b/compiler/testData/mockJDK-1.7/jre/lib/rt.jar similarity index 100% rename from idea/testData/mockJDK-1.7/jre/lib/rt.jar rename to compiler/testData/mockJDK-1.7/jre/lib/rt.jar diff --git a/idea/testData/mockJDK-1.7/src.zip b/compiler/testData/mockJDK-1.7/src.zip similarity index 100% rename from idea/testData/mockJDK-1.7/src.zip rename to compiler/testData/mockJDK-1.7/src.zip diff --git a/idea/testData/psi/AnnotatedExpressions.jet b/compiler/testData/psi/AnnotatedExpressions.jet similarity index 100% rename from idea/testData/psi/AnnotatedExpressions.jet rename to compiler/testData/psi/AnnotatedExpressions.jet diff --git a/idea/testData/psi/AnnotatedExpressions.txt b/compiler/testData/psi/AnnotatedExpressions.txt similarity index 100% rename from idea/testData/psi/AnnotatedExpressions.txt rename to compiler/testData/psi/AnnotatedExpressions.txt diff --git a/idea/testData/psi/AnonymousInitializer.jet b/compiler/testData/psi/AnonymousInitializer.jet similarity index 100% rename from idea/testData/psi/AnonymousInitializer.jet rename to compiler/testData/psi/AnonymousInitializer.jet diff --git a/idea/testData/psi/AnonymousInitializer.txt b/compiler/testData/psi/AnonymousInitializer.txt similarity index 100% rename from idea/testData/psi/AnonymousInitializer.txt rename to compiler/testData/psi/AnonymousInitializer.txt diff --git a/idea/testData/psi/Attributes.jet b/compiler/testData/psi/Attributes.jet similarity index 100% rename from idea/testData/psi/Attributes.jet rename to compiler/testData/psi/Attributes.jet diff --git a/idea/testData/psi/Attributes.txt b/compiler/testData/psi/Attributes.txt similarity index 100% rename from idea/testData/psi/Attributes.txt rename to compiler/testData/psi/Attributes.txt diff --git a/idea/testData/psi/AttributesOnPatterns.jet b/compiler/testData/psi/AttributesOnPatterns.jet similarity index 100% rename from idea/testData/psi/AttributesOnPatterns.jet rename to compiler/testData/psi/AttributesOnPatterns.jet diff --git a/idea/testData/psi/AttributesOnPatterns.txt b/compiler/testData/psi/AttributesOnPatterns.txt similarity index 100% rename from idea/testData/psi/AttributesOnPatterns.txt rename to compiler/testData/psi/AttributesOnPatterns.txt diff --git a/idea/testData/psi/Attributes_ERR.jet b/compiler/testData/psi/Attributes_ERR.jet similarity index 100% rename from idea/testData/psi/Attributes_ERR.jet rename to compiler/testData/psi/Attributes_ERR.jet diff --git a/idea/testData/psi/Attributes_ERR.txt b/compiler/testData/psi/Attributes_ERR.txt similarity index 100% rename from idea/testData/psi/Attributes_ERR.txt rename to compiler/testData/psi/Attributes_ERR.txt diff --git a/idea/testData/psi/BabySteps.jet b/compiler/testData/psi/BabySteps.jet similarity index 100% rename from idea/testData/psi/BabySteps.jet rename to compiler/testData/psi/BabySteps.jet diff --git a/idea/testData/psi/BabySteps.txt b/compiler/testData/psi/BabySteps.txt similarity index 100% rename from idea/testData/psi/BabySteps.txt rename to compiler/testData/psi/BabySteps.txt diff --git a/idea/testData/psi/BabySteps_ERR.jet b/compiler/testData/psi/BabySteps_ERR.jet similarity index 100% rename from idea/testData/psi/BabySteps_ERR.jet rename to compiler/testData/psi/BabySteps_ERR.jet diff --git a/idea/testData/psi/BabySteps_ERR.txt b/compiler/testData/psi/BabySteps_ERR.txt similarity index 100% rename from idea/testData/psi/BabySteps_ERR.txt rename to compiler/testData/psi/BabySteps_ERR.txt diff --git a/idea/testData/psi/ByCaluses.jet b/compiler/testData/psi/ByCaluses.jet similarity index 100% rename from idea/testData/psi/ByCaluses.jet rename to compiler/testData/psi/ByCaluses.jet diff --git a/idea/testData/psi/ByCaluses.txt b/compiler/testData/psi/ByCaluses.txt similarity index 100% rename from idea/testData/psi/ByCaluses.txt rename to compiler/testData/psi/ByCaluses.txt diff --git a/idea/testData/psi/CallWithManyClosures.jet b/compiler/testData/psi/CallWithManyClosures.jet similarity index 100% rename from idea/testData/psi/CallWithManyClosures.jet rename to compiler/testData/psi/CallWithManyClosures.jet diff --git a/idea/testData/psi/CallWithManyClosures.txt b/compiler/testData/psi/CallWithManyClosures.txt similarity index 100% rename from idea/testData/psi/CallWithManyClosures.txt rename to compiler/testData/psi/CallWithManyClosures.txt diff --git a/idea/testData/psi/CallsInWhen.jet b/compiler/testData/psi/CallsInWhen.jet similarity index 100% rename from idea/testData/psi/CallsInWhen.jet rename to compiler/testData/psi/CallsInWhen.jet diff --git a/idea/testData/psi/CallsInWhen.txt b/compiler/testData/psi/CallsInWhen.txt similarity index 100% rename from idea/testData/psi/CallsInWhen.txt rename to compiler/testData/psi/CallsInWhen.txt diff --git a/idea/testData/psi/Constructors.jet b/compiler/testData/psi/Constructors.jet similarity index 100% rename from idea/testData/psi/Constructors.jet rename to compiler/testData/psi/Constructors.jet diff --git a/idea/testData/psi/Constructors.txt b/compiler/testData/psi/Constructors.txt similarity index 100% rename from idea/testData/psi/Constructors.txt rename to compiler/testData/psi/Constructors.txt diff --git a/idea/testData/psi/ControlStructures.jet b/compiler/testData/psi/ControlStructures.jet similarity index 100% rename from idea/testData/psi/ControlStructures.jet rename to compiler/testData/psi/ControlStructures.jet diff --git a/idea/testData/psi/ControlStructures.txt b/compiler/testData/psi/ControlStructures.txt similarity index 100% rename from idea/testData/psi/ControlStructures.txt rename to compiler/testData/psi/ControlStructures.txt diff --git a/idea/testData/psi/EOLsInComments.jet b/compiler/testData/psi/EOLsInComments.jet similarity index 100% rename from idea/testData/psi/EOLsInComments.jet rename to compiler/testData/psi/EOLsInComments.jet diff --git a/idea/testData/psi/EOLsInComments.txt b/compiler/testData/psi/EOLsInComments.txt similarity index 100% rename from idea/testData/psi/EOLsInComments.txt rename to compiler/testData/psi/EOLsInComments.txt diff --git a/idea/testData/psi/EOLsOnRollback.jet b/compiler/testData/psi/EOLsOnRollback.jet similarity index 100% rename from idea/testData/psi/EOLsOnRollback.jet rename to compiler/testData/psi/EOLsOnRollback.jet diff --git a/idea/testData/psi/EOLsOnRollback.txt b/compiler/testData/psi/EOLsOnRollback.txt similarity index 100% rename from idea/testData/psi/EOLsOnRollback.txt rename to compiler/testData/psi/EOLsOnRollback.txt diff --git a/idea/testData/psi/EmptyFile.jet b/compiler/testData/psi/EmptyFile.jet similarity index 100% rename from idea/testData/psi/EmptyFile.jet rename to compiler/testData/psi/EmptyFile.jet diff --git a/idea/testData/psi/EmptyFile.txt b/compiler/testData/psi/EmptyFile.txt similarity index 100% rename from idea/testData/psi/EmptyFile.txt rename to compiler/testData/psi/EmptyFile.txt diff --git a/idea/testData/psi/Enums.jet b/compiler/testData/psi/Enums.jet similarity index 100% rename from idea/testData/psi/Enums.jet rename to compiler/testData/psi/Enums.jet diff --git a/idea/testData/psi/Enums.txt b/compiler/testData/psi/Enums.txt similarity index 100% rename from idea/testData/psi/Enums.txt rename to compiler/testData/psi/Enums.txt diff --git a/idea/testData/psi/Expressions_ERR.jet b/compiler/testData/psi/Expressions_ERR.jet similarity index 100% rename from idea/testData/psi/Expressions_ERR.jet rename to compiler/testData/psi/Expressions_ERR.jet diff --git a/idea/testData/psi/Expressions_ERR.txt b/compiler/testData/psi/Expressions_ERR.txt similarity index 100% rename from idea/testData/psi/Expressions_ERR.txt rename to compiler/testData/psi/Expressions_ERR.txt diff --git a/idea/testData/psi/FileStart_ERR.jet b/compiler/testData/psi/FileStart_ERR.jet similarity index 100% rename from idea/testData/psi/FileStart_ERR.jet rename to compiler/testData/psi/FileStart_ERR.jet diff --git a/idea/testData/psi/FileStart_ERR.txt b/compiler/testData/psi/FileStart_ERR.txt similarity index 100% rename from idea/testData/psi/FileStart_ERR.txt rename to compiler/testData/psi/FileStart_ERR.txt diff --git a/idea/testData/psi/FunctionCalls.jet b/compiler/testData/psi/FunctionCalls.jet similarity index 100% rename from idea/testData/psi/FunctionCalls.jet rename to compiler/testData/psi/FunctionCalls.jet diff --git a/idea/testData/psi/FunctionCalls.txt b/compiler/testData/psi/FunctionCalls.txt similarity index 100% rename from idea/testData/psi/FunctionCalls.txt rename to compiler/testData/psi/FunctionCalls.txt diff --git a/idea/testData/psi/FunctionLiterals.jet b/compiler/testData/psi/FunctionLiterals.jet similarity index 100% rename from idea/testData/psi/FunctionLiterals.jet rename to compiler/testData/psi/FunctionLiterals.jet diff --git a/idea/testData/psi/FunctionLiterals.txt b/compiler/testData/psi/FunctionLiterals.txt similarity index 100% rename from idea/testData/psi/FunctionLiterals.txt rename to compiler/testData/psi/FunctionLiterals.txt diff --git a/idea/testData/psi/FunctionLiterals_ERR.jet b/compiler/testData/psi/FunctionLiterals_ERR.jet similarity index 100% rename from idea/testData/psi/FunctionLiterals_ERR.jet rename to compiler/testData/psi/FunctionLiterals_ERR.jet diff --git a/idea/testData/psi/FunctionLiterals_ERR.txt b/compiler/testData/psi/FunctionLiterals_ERR.txt similarity index 100% rename from idea/testData/psi/FunctionLiterals_ERR.txt rename to compiler/testData/psi/FunctionLiterals_ERR.txt diff --git a/idea/testData/psi/FunctionTypes.jet b/compiler/testData/psi/FunctionTypes.jet similarity index 100% rename from idea/testData/psi/FunctionTypes.jet rename to compiler/testData/psi/FunctionTypes.jet diff --git a/idea/testData/psi/FunctionTypes.txt b/compiler/testData/psi/FunctionTypes.txt similarity index 100% rename from idea/testData/psi/FunctionTypes.txt rename to compiler/testData/psi/FunctionTypes.txt diff --git a/idea/testData/psi/FunctionTypes_ERR.jet b/compiler/testData/psi/FunctionTypes_ERR.jet similarity index 100% rename from idea/testData/psi/FunctionTypes_ERR.jet rename to compiler/testData/psi/FunctionTypes_ERR.jet diff --git a/idea/testData/psi/FunctionTypes_ERR.txt b/compiler/testData/psi/FunctionTypes_ERR.txt similarity index 100% rename from idea/testData/psi/FunctionTypes_ERR.txt rename to compiler/testData/psi/FunctionTypes_ERR.txt diff --git a/idea/testData/psi/Functions.jet b/compiler/testData/psi/Functions.jet similarity index 100% rename from idea/testData/psi/Functions.jet rename to compiler/testData/psi/Functions.jet diff --git a/idea/testData/psi/Functions.txt b/compiler/testData/psi/Functions.txt similarity index 100% rename from idea/testData/psi/Functions.txt rename to compiler/testData/psi/Functions.txt diff --git a/idea/testData/psi/Functions_ERR.jet b/compiler/testData/psi/Functions_ERR.jet similarity index 100% rename from idea/testData/psi/Functions_ERR.jet rename to compiler/testData/psi/Functions_ERR.jet diff --git a/idea/testData/psi/Functions_ERR.txt b/compiler/testData/psi/Functions_ERR.txt similarity index 100% rename from idea/testData/psi/Functions_ERR.txt rename to compiler/testData/psi/Functions_ERR.txt diff --git a/idea/testData/psi/HangOnLonelyModifier.jet b/compiler/testData/psi/HangOnLonelyModifier.jet similarity index 100% rename from idea/testData/psi/HangOnLonelyModifier.jet rename to compiler/testData/psi/HangOnLonelyModifier.jet diff --git a/idea/testData/psi/HangOnLonelyModifier.txt b/compiler/testData/psi/HangOnLonelyModifier.txt similarity index 100% rename from idea/testData/psi/HangOnLonelyModifier.txt rename to compiler/testData/psi/HangOnLonelyModifier.txt diff --git a/idea/testData/psi/IfWithPropery.jet b/compiler/testData/psi/IfWithPropery.jet similarity index 100% rename from idea/testData/psi/IfWithPropery.jet rename to compiler/testData/psi/IfWithPropery.jet diff --git a/idea/testData/psi/IfWithPropery.txt b/compiler/testData/psi/IfWithPropery.txt similarity index 100% rename from idea/testData/psi/IfWithPropery.txt rename to compiler/testData/psi/IfWithPropery.txt diff --git a/idea/testData/psi/ImportSoftKW.jet b/compiler/testData/psi/ImportSoftKW.jet similarity index 100% rename from idea/testData/psi/ImportSoftKW.jet rename to compiler/testData/psi/ImportSoftKW.jet diff --git a/idea/testData/psi/ImportSoftKW.txt b/compiler/testData/psi/ImportSoftKW.txt similarity index 100% rename from idea/testData/psi/ImportSoftKW.txt rename to compiler/testData/psi/ImportSoftKW.txt diff --git a/idea/testData/psi/Imports.jet b/compiler/testData/psi/Imports.jet similarity index 100% rename from idea/testData/psi/Imports.jet rename to compiler/testData/psi/Imports.jet diff --git a/idea/testData/psi/Imports.txt b/compiler/testData/psi/Imports.txt similarity index 100% rename from idea/testData/psi/Imports.txt rename to compiler/testData/psi/Imports.txt diff --git a/idea/testData/psi/Imports_ERR.jet b/compiler/testData/psi/Imports_ERR.jet similarity index 100% rename from idea/testData/psi/Imports_ERR.jet rename to compiler/testData/psi/Imports_ERR.jet diff --git a/idea/testData/psi/Imports_ERR.txt b/compiler/testData/psi/Imports_ERR.txt similarity index 100% rename from idea/testData/psi/Imports_ERR.txt rename to compiler/testData/psi/Imports_ERR.txt diff --git a/idea/testData/psi/Labels.jet b/compiler/testData/psi/Labels.jet similarity index 100% rename from idea/testData/psi/Labels.jet rename to compiler/testData/psi/Labels.jet diff --git a/idea/testData/psi/Labels.txt b/compiler/testData/psi/Labels.txt similarity index 100% rename from idea/testData/psi/Labels.txt rename to compiler/testData/psi/Labels.txt diff --git a/idea/testData/psi/LocalDeclarations.jet b/compiler/testData/psi/LocalDeclarations.jet similarity index 100% rename from idea/testData/psi/LocalDeclarations.jet rename to compiler/testData/psi/LocalDeclarations.jet diff --git a/idea/testData/psi/LocalDeclarations.txt b/compiler/testData/psi/LocalDeclarations.txt similarity index 100% rename from idea/testData/psi/LocalDeclarations.txt rename to compiler/testData/psi/LocalDeclarations.txt diff --git a/idea/testData/psi/ModifierAsSelector.jet b/compiler/testData/psi/ModifierAsSelector.jet similarity index 100% rename from idea/testData/psi/ModifierAsSelector.jet rename to compiler/testData/psi/ModifierAsSelector.jet diff --git a/idea/testData/psi/ModifierAsSelector.txt b/compiler/testData/psi/ModifierAsSelector.txt similarity index 100% rename from idea/testData/psi/ModifierAsSelector.txt rename to compiler/testData/psi/ModifierAsSelector.txt diff --git a/idea/testData/psi/NamespaceBlock.jet b/compiler/testData/psi/NamespaceBlock.jet similarity index 100% rename from idea/testData/psi/NamespaceBlock.jet rename to compiler/testData/psi/NamespaceBlock.jet diff --git a/idea/testData/psi/NamespaceBlock.txt b/compiler/testData/psi/NamespaceBlock.txt similarity index 100% rename from idea/testData/psi/NamespaceBlock.txt rename to compiler/testData/psi/NamespaceBlock.txt diff --git a/idea/testData/psi/NamespaceBlockFirst.jet b/compiler/testData/psi/NamespaceBlockFirst.jet similarity index 100% rename from idea/testData/psi/NamespaceBlockFirst.jet rename to compiler/testData/psi/NamespaceBlockFirst.jet diff --git a/idea/testData/psi/NamespaceBlockFirst.txt b/compiler/testData/psi/NamespaceBlockFirst.txt similarity index 100% rename from idea/testData/psi/NamespaceBlockFirst.txt rename to compiler/testData/psi/NamespaceBlockFirst.txt diff --git a/idea/testData/psi/NamespaceBlock_ERR.jet b/compiler/testData/psi/NamespaceBlock_ERR.jet similarity index 100% rename from idea/testData/psi/NamespaceBlock_ERR.jet rename to compiler/testData/psi/NamespaceBlock_ERR.jet diff --git a/idea/testData/psi/NamespaceBlock_ERR.txt b/compiler/testData/psi/NamespaceBlock_ERR.txt similarity index 100% rename from idea/testData/psi/NamespaceBlock_ERR.txt rename to compiler/testData/psi/NamespaceBlock_ERR.txt diff --git a/idea/testData/psi/NamespaceModifiers.jet b/compiler/testData/psi/NamespaceModifiers.jet similarity index 100% rename from idea/testData/psi/NamespaceModifiers.jet rename to compiler/testData/psi/NamespaceModifiers.jet diff --git a/idea/testData/psi/NamespaceModifiers.txt b/compiler/testData/psi/NamespaceModifiers.txt similarity index 100% rename from idea/testData/psi/NamespaceModifiers.txt rename to compiler/testData/psi/NamespaceModifiers.txt diff --git a/idea/testData/psi/NewlinesInParentheses.jet b/compiler/testData/psi/NewlinesInParentheses.jet similarity index 100% rename from idea/testData/psi/NewlinesInParentheses.jet rename to compiler/testData/psi/NewlinesInParentheses.jet diff --git a/idea/testData/psi/NewlinesInParentheses.txt b/compiler/testData/psi/NewlinesInParentheses.txt similarity index 100% rename from idea/testData/psi/NewlinesInParentheses.txt rename to compiler/testData/psi/NewlinesInParentheses.txt diff --git a/idea/testData/psi/NotIsAndNotIn.jet b/compiler/testData/psi/NotIsAndNotIn.jet similarity index 100% rename from idea/testData/psi/NotIsAndNotIn.jet rename to compiler/testData/psi/NotIsAndNotIn.jet diff --git a/idea/testData/psi/NotIsAndNotIn.txt b/compiler/testData/psi/NotIsAndNotIn.txt similarity index 100% rename from idea/testData/psi/NotIsAndNotIn.txt rename to compiler/testData/psi/NotIsAndNotIn.txt diff --git a/idea/testData/psi/Precedence.jet b/compiler/testData/psi/Precedence.jet similarity index 100% rename from idea/testData/psi/Precedence.jet rename to compiler/testData/psi/Precedence.jet diff --git a/idea/testData/psi/Precedence.txt b/compiler/testData/psi/Precedence.txt similarity index 100% rename from idea/testData/psi/Precedence.txt rename to compiler/testData/psi/Precedence.txt diff --git a/idea/testData/psi/PredicateExpression.jet b/compiler/testData/psi/PredicateExpression.jet similarity index 100% rename from idea/testData/psi/PredicateExpression.jet rename to compiler/testData/psi/PredicateExpression.jet diff --git a/idea/testData/psi/PredicateExpression.txt b/compiler/testData/psi/PredicateExpression.txt similarity index 100% rename from idea/testData/psi/PredicateExpression.txt rename to compiler/testData/psi/PredicateExpression.txt diff --git a/idea/testData/psi/Properties.jet b/compiler/testData/psi/Properties.jet similarity index 100% rename from idea/testData/psi/Properties.jet rename to compiler/testData/psi/Properties.jet diff --git a/idea/testData/psi/Properties.txt b/compiler/testData/psi/Properties.txt similarity index 100% rename from idea/testData/psi/Properties.txt rename to compiler/testData/psi/Properties.txt diff --git a/idea/testData/psi/PropertiesFollowedByInitializers.jet b/compiler/testData/psi/PropertiesFollowedByInitializers.jet similarity index 100% rename from idea/testData/psi/PropertiesFollowedByInitializers.jet rename to compiler/testData/psi/PropertiesFollowedByInitializers.jet diff --git a/idea/testData/psi/PropertiesFollowedByInitializers.txt b/compiler/testData/psi/PropertiesFollowedByInitializers.txt similarity index 100% rename from idea/testData/psi/PropertiesFollowedByInitializers.txt rename to compiler/testData/psi/PropertiesFollowedByInitializers.txt diff --git a/idea/testData/psi/Properties_ERR.jet b/compiler/testData/psi/Properties_ERR.jet similarity index 100% rename from idea/testData/psi/Properties_ERR.jet rename to compiler/testData/psi/Properties_ERR.jet diff --git a/idea/testData/psi/Properties_ERR.txt b/compiler/testData/psi/Properties_ERR.txt similarity index 100% rename from idea/testData/psi/Properties_ERR.txt rename to compiler/testData/psi/Properties_ERR.txt diff --git a/idea/testData/psi/QuotedIdentifiers.jet b/compiler/testData/psi/QuotedIdentifiers.jet similarity index 100% rename from idea/testData/psi/QuotedIdentifiers.jet rename to compiler/testData/psi/QuotedIdentifiers.jet diff --git a/idea/testData/psi/QuotedIdentifiers.txt b/compiler/testData/psi/QuotedIdentifiers.txt similarity index 100% rename from idea/testData/psi/QuotedIdentifiers.txt rename to compiler/testData/psi/QuotedIdentifiers.txt diff --git a/idea/testData/psi/RootNamespace.jet b/compiler/testData/psi/RootNamespace.jet similarity index 100% rename from idea/testData/psi/RootNamespace.jet rename to compiler/testData/psi/RootNamespace.jet diff --git a/idea/testData/psi/RootNamespace.txt b/compiler/testData/psi/RootNamespace.txt similarity index 100% rename from idea/testData/psi/RootNamespace.txt rename to compiler/testData/psi/RootNamespace.txt diff --git a/idea/testData/psi/SemicolonAfterIf.jet b/compiler/testData/psi/SemicolonAfterIf.jet similarity index 100% rename from idea/testData/psi/SemicolonAfterIf.jet rename to compiler/testData/psi/SemicolonAfterIf.jet diff --git a/idea/testData/psi/SemicolonAfterIf.txt b/compiler/testData/psi/SemicolonAfterIf.txt similarity index 100% rename from idea/testData/psi/SemicolonAfterIf.txt rename to compiler/testData/psi/SemicolonAfterIf.txt diff --git a/idea/testData/psi/ShortAnnotations.jet b/compiler/testData/psi/ShortAnnotations.jet similarity index 100% rename from idea/testData/psi/ShortAnnotations.jet rename to compiler/testData/psi/ShortAnnotations.jet diff --git a/idea/testData/psi/ShortAnnotations.txt b/compiler/testData/psi/ShortAnnotations.txt similarity index 100% rename from idea/testData/psi/ShortAnnotations.txt rename to compiler/testData/psi/ShortAnnotations.txt diff --git a/idea/testData/psi/SimpleClassMembers.jet b/compiler/testData/psi/SimpleClassMembers.jet similarity index 100% rename from idea/testData/psi/SimpleClassMembers.jet rename to compiler/testData/psi/SimpleClassMembers.jet diff --git a/idea/testData/psi/SimpleClassMembers.txt b/compiler/testData/psi/SimpleClassMembers.txt similarity index 100% rename from idea/testData/psi/SimpleClassMembers.txt rename to compiler/testData/psi/SimpleClassMembers.txt diff --git a/idea/testData/psi/SimpleClassMembers_ERR.jet b/compiler/testData/psi/SimpleClassMembers_ERR.jet similarity index 100% rename from idea/testData/psi/SimpleClassMembers_ERR.jet rename to compiler/testData/psi/SimpleClassMembers_ERR.jet diff --git a/idea/testData/psi/SimpleClassMembers_ERR.txt b/compiler/testData/psi/SimpleClassMembers_ERR.txt similarity index 100% rename from idea/testData/psi/SimpleClassMembers_ERR.txt rename to compiler/testData/psi/SimpleClassMembers_ERR.txt diff --git a/idea/testData/psi/SimpleExpressions.jet b/compiler/testData/psi/SimpleExpressions.jet similarity index 100% rename from idea/testData/psi/SimpleExpressions.jet rename to compiler/testData/psi/SimpleExpressions.jet diff --git a/idea/testData/psi/SimpleExpressions.txt b/compiler/testData/psi/SimpleExpressions.txt similarity index 100% rename from idea/testData/psi/SimpleExpressions.txt rename to compiler/testData/psi/SimpleExpressions.txt diff --git a/idea/testData/psi/SimpleModifiers.jet b/compiler/testData/psi/SimpleModifiers.jet similarity index 100% rename from idea/testData/psi/SimpleModifiers.jet rename to compiler/testData/psi/SimpleModifiers.jet diff --git a/idea/testData/psi/SimpleModifiers.txt b/compiler/testData/psi/SimpleModifiers.txt similarity index 100% rename from idea/testData/psi/SimpleModifiers.txt rename to compiler/testData/psi/SimpleModifiers.txt diff --git a/idea/testData/psi/SoftKeywords.jet b/compiler/testData/psi/SoftKeywords.jet similarity index 100% rename from idea/testData/psi/SoftKeywords.jet rename to compiler/testData/psi/SoftKeywords.jet diff --git a/idea/testData/psi/SoftKeywords.txt b/compiler/testData/psi/SoftKeywords.txt similarity index 100% rename from idea/testData/psi/SoftKeywords.txt rename to compiler/testData/psi/SoftKeywords.txt diff --git a/idea/testData/psi/SoftKeywordsInTypeArguments.jet b/compiler/testData/psi/SoftKeywordsInTypeArguments.jet similarity index 100% rename from idea/testData/psi/SoftKeywordsInTypeArguments.jet rename to compiler/testData/psi/SoftKeywordsInTypeArguments.jet diff --git a/idea/testData/psi/SoftKeywordsInTypeArguments.txt b/compiler/testData/psi/SoftKeywordsInTypeArguments.txt similarity index 100% rename from idea/testData/psi/SoftKeywordsInTypeArguments.txt rename to compiler/testData/psi/SoftKeywordsInTypeArguments.txt diff --git a/idea/testData/psi/StringTemplates.jet b/compiler/testData/psi/StringTemplates.jet similarity index 100% rename from idea/testData/psi/StringTemplates.jet rename to compiler/testData/psi/StringTemplates.jet diff --git a/idea/testData/psi/StringTemplates.txt b/compiler/testData/psi/StringTemplates.txt similarity index 100% rename from idea/testData/psi/StringTemplates.txt rename to compiler/testData/psi/StringTemplates.txt diff --git a/idea/testData/psi/ThisType.jet b/compiler/testData/psi/ThisType.jet similarity index 100% rename from idea/testData/psi/ThisType.jet rename to compiler/testData/psi/ThisType.jet diff --git a/idea/testData/psi/ThisType.txt b/compiler/testData/psi/ThisType.txt similarity index 100% rename from idea/testData/psi/ThisType.txt rename to compiler/testData/psi/ThisType.txt diff --git a/idea/testData/psi/TupleTypes.jet b/compiler/testData/psi/TupleTypes.jet similarity index 100% rename from idea/testData/psi/TupleTypes.jet rename to compiler/testData/psi/TupleTypes.jet diff --git a/idea/testData/psi/TupleTypes.txt b/compiler/testData/psi/TupleTypes.txt similarity index 100% rename from idea/testData/psi/TupleTypes.txt rename to compiler/testData/psi/TupleTypes.txt diff --git a/idea/testData/psi/TupleTypes_ERR.jet b/compiler/testData/psi/TupleTypes_ERR.jet similarity index 100% rename from idea/testData/psi/TupleTypes_ERR.jet rename to compiler/testData/psi/TupleTypes_ERR.jet diff --git a/idea/testData/psi/TupleTypes_ERR.txt b/compiler/testData/psi/TupleTypes_ERR.txt similarity index 100% rename from idea/testData/psi/TupleTypes_ERR.txt rename to compiler/testData/psi/TupleTypes_ERR.txt diff --git a/idea/testData/psi/TuplesWithLabeledEntries.jet b/compiler/testData/psi/TuplesWithLabeledEntries.jet similarity index 100% rename from idea/testData/psi/TuplesWithLabeledEntries.jet rename to compiler/testData/psi/TuplesWithLabeledEntries.jet diff --git a/idea/testData/psi/TuplesWithLabeledEntries.txt b/compiler/testData/psi/TuplesWithLabeledEntries.txt similarity index 100% rename from idea/testData/psi/TuplesWithLabeledEntries.txt rename to compiler/testData/psi/TuplesWithLabeledEntries.txt diff --git a/idea/testData/psi/TypeAnnotations.jet b/compiler/testData/psi/TypeAnnotations.jet similarity index 100% rename from idea/testData/psi/TypeAnnotations.jet rename to compiler/testData/psi/TypeAnnotations.jet diff --git a/idea/testData/psi/TypeAnnotations.txt b/compiler/testData/psi/TypeAnnotations.txt similarity index 100% rename from idea/testData/psi/TypeAnnotations.txt rename to compiler/testData/psi/TypeAnnotations.txt diff --git a/idea/testData/psi/TypeConstraints.jet b/compiler/testData/psi/TypeConstraints.jet similarity index 100% rename from idea/testData/psi/TypeConstraints.jet rename to compiler/testData/psi/TypeConstraints.jet diff --git a/idea/testData/psi/TypeConstraints.txt b/compiler/testData/psi/TypeConstraints.txt similarity index 100% rename from idea/testData/psi/TypeConstraints.txt rename to compiler/testData/psi/TypeConstraints.txt diff --git a/idea/testData/psi/TypeDef.jet b/compiler/testData/psi/TypeDef.jet similarity index 100% rename from idea/testData/psi/TypeDef.jet rename to compiler/testData/psi/TypeDef.jet diff --git a/idea/testData/psi/TypeDef.txt b/compiler/testData/psi/TypeDef.txt similarity index 100% rename from idea/testData/psi/TypeDef.txt rename to compiler/testData/psi/TypeDef.txt diff --git a/idea/testData/psi/TypeDef_ERR.jet b/compiler/testData/psi/TypeDef_ERR.jet similarity index 100% rename from idea/testData/psi/TypeDef_ERR.jet rename to compiler/testData/psi/TypeDef_ERR.jet diff --git a/idea/testData/psi/TypeDef_ERR.txt b/compiler/testData/psi/TypeDef_ERR.txt similarity index 100% rename from idea/testData/psi/TypeDef_ERR.txt rename to compiler/testData/psi/TypeDef_ERR.txt diff --git a/idea/testData/psi/TypeExpressionAmbiguities_ERR.jet b/compiler/testData/psi/TypeExpressionAmbiguities_ERR.jet similarity index 100% rename from idea/testData/psi/TypeExpressionAmbiguities_ERR.jet rename to compiler/testData/psi/TypeExpressionAmbiguities_ERR.jet diff --git a/idea/testData/psi/TypeExpressionAmbiguities_ERR.txt b/compiler/testData/psi/TypeExpressionAmbiguities_ERR.txt similarity index 100% rename from idea/testData/psi/TypeExpressionAmbiguities_ERR.txt rename to compiler/testData/psi/TypeExpressionAmbiguities_ERR.txt diff --git a/idea/testData/psi/TypeParametersBeforeName.jet b/compiler/testData/psi/TypeParametersBeforeName.jet similarity index 100% rename from idea/testData/psi/TypeParametersBeforeName.jet rename to compiler/testData/psi/TypeParametersBeforeName.jet diff --git a/idea/testData/psi/TypeParametersBeforeName.txt b/compiler/testData/psi/TypeParametersBeforeName.txt similarity index 100% rename from idea/testData/psi/TypeParametersBeforeName.txt rename to compiler/testData/psi/TypeParametersBeforeName.txt diff --git a/idea/testData/psi/When.jet b/compiler/testData/psi/When.jet similarity index 100% rename from idea/testData/psi/When.jet rename to compiler/testData/psi/When.jet diff --git a/idea/testData/psi/When.txt b/compiler/testData/psi/When.txt similarity index 100% rename from idea/testData/psi/When.txt rename to compiler/testData/psi/When.txt diff --git a/idea/testData/psi/When_ERR.jet b/compiler/testData/psi/When_ERR.jet similarity index 100% rename from idea/testData/psi/When_ERR.jet rename to compiler/testData/psi/When_ERR.jet diff --git a/idea/testData/psi/When_ERR.txt b/compiler/testData/psi/When_ERR.txt similarity index 100% rename from idea/testData/psi/When_ERR.txt rename to compiler/testData/psi/When_ERR.txt diff --git a/idea/testData/psi/examples/AnonymousObjects.jet b/compiler/testData/psi/examples/AnonymousObjects.jet similarity index 100% rename from idea/testData/psi/examples/AnonymousObjects.jet rename to compiler/testData/psi/examples/AnonymousObjects.jet diff --git a/idea/testData/psi/examples/AnonymousObjects.txt b/compiler/testData/psi/examples/AnonymousObjects.txt similarity index 100% rename from idea/testData/psi/examples/AnonymousObjects.txt rename to compiler/testData/psi/examples/AnonymousObjects.txt diff --git a/idea/testData/psi/examples/BinaryTree.jet b/compiler/testData/psi/examples/BinaryTree.jet similarity index 100% rename from idea/testData/psi/examples/BinaryTree.jet rename to compiler/testData/psi/examples/BinaryTree.jet diff --git a/idea/testData/psi/examples/BinaryTree.txt b/compiler/testData/psi/examples/BinaryTree.txt similarity index 100% rename from idea/testData/psi/examples/BinaryTree.txt rename to compiler/testData/psi/examples/BinaryTree.txt diff --git a/idea/testData/psi/examples/BitArith.jet b/compiler/testData/psi/examples/BitArith.jet similarity index 100% rename from idea/testData/psi/examples/BitArith.jet rename to compiler/testData/psi/examples/BitArith.jet diff --git a/idea/testData/psi/examples/BitArith.txt b/compiler/testData/psi/examples/BitArith.txt similarity index 100% rename from idea/testData/psi/examples/BitArith.txt rename to compiler/testData/psi/examples/BitArith.txt diff --git a/idea/testData/psi/examples/Builder.jet b/compiler/testData/psi/examples/Builder.jet similarity index 100% rename from idea/testData/psi/examples/Builder.jet rename to compiler/testData/psi/examples/Builder.jet diff --git a/idea/testData/psi/examples/Builder.txt b/compiler/testData/psi/examples/Builder.txt similarity index 100% rename from idea/testData/psi/examples/Builder.txt rename to compiler/testData/psi/examples/Builder.txt diff --git a/idea/testData/psi/examples/Color.jet b/compiler/testData/psi/examples/Color.jet similarity index 100% rename from idea/testData/psi/examples/Color.jet rename to compiler/testData/psi/examples/Color.jet diff --git a/idea/testData/psi/examples/Color.txt b/compiler/testData/psi/examples/Color.txt similarity index 100% rename from idea/testData/psi/examples/Color.txt rename to compiler/testData/psi/examples/Color.txt diff --git a/idea/testData/psi/examples/FunctionsAndTypes.jet b/compiler/testData/psi/examples/FunctionsAndTypes.jet similarity index 100% rename from idea/testData/psi/examples/FunctionsAndTypes.jet rename to compiler/testData/psi/examples/FunctionsAndTypes.jet diff --git a/idea/testData/psi/examples/FunctionsAndTypes.txt b/compiler/testData/psi/examples/FunctionsAndTypes.txt similarity index 100% rename from idea/testData/psi/examples/FunctionsAndTypes.txt rename to compiler/testData/psi/examples/FunctionsAndTypes.txt diff --git a/idea/testData/psi/examples/Graph.jet b/compiler/testData/psi/examples/Graph.jet similarity index 100% rename from idea/testData/psi/examples/Graph.jet rename to compiler/testData/psi/examples/Graph.jet diff --git a/idea/testData/psi/examples/Graph.txt b/compiler/testData/psi/examples/Graph.txt similarity index 100% rename from idea/testData/psi/examples/Graph.txt rename to compiler/testData/psi/examples/Graph.txt diff --git a/idea/testData/psi/examples/IPushPop.jet b/compiler/testData/psi/examples/IPushPop.jet similarity index 100% rename from idea/testData/psi/examples/IPushPop.jet rename to compiler/testData/psi/examples/IPushPop.jet diff --git a/idea/testData/psi/examples/IPushPop.txt b/compiler/testData/psi/examples/IPushPop.txt similarity index 100% rename from idea/testData/psi/examples/IPushPop.txt rename to compiler/testData/psi/examples/IPushPop.txt diff --git a/idea/testData/psi/examples/LINQ.jet b/compiler/testData/psi/examples/LINQ.jet similarity index 100% rename from idea/testData/psi/examples/LINQ.jet rename to compiler/testData/psi/examples/LINQ.jet diff --git a/idea/testData/psi/examples/LINQ.txt b/compiler/testData/psi/examples/LINQ.txt similarity index 100% rename from idea/testData/psi/examples/LINQ.txt rename to compiler/testData/psi/examples/LINQ.txt diff --git a/idea/testData/psi/examples/PolymorphicClassObjects.jet b/compiler/testData/psi/examples/PolymorphicClassObjects.jet similarity index 100% rename from idea/testData/psi/examples/PolymorphicClassObjects.jet rename to compiler/testData/psi/examples/PolymorphicClassObjects.jet diff --git a/idea/testData/psi/examples/PolymorphicClassObjects.txt b/compiler/testData/psi/examples/PolymorphicClassObjects.txt similarity index 100% rename from idea/testData/psi/examples/PolymorphicClassObjects.txt rename to compiler/testData/psi/examples/PolymorphicClassObjects.txt diff --git a/idea/testData/psi/examples/Queue.jet b/compiler/testData/psi/examples/Queue.jet similarity index 100% rename from idea/testData/psi/examples/Queue.jet rename to compiler/testData/psi/examples/Queue.jet diff --git a/idea/testData/psi/examples/Queue.txt b/compiler/testData/psi/examples/Queue.txt similarity index 100% rename from idea/testData/psi/examples/Queue.txt rename to compiler/testData/psi/examples/Queue.txt diff --git a/idea/testData/psi/examples/Stack.jet b/compiler/testData/psi/examples/Stack.jet similarity index 100% rename from idea/testData/psi/examples/Stack.jet rename to compiler/testData/psi/examples/Stack.jet diff --git a/idea/testData/psi/examples/Stack.txt b/compiler/testData/psi/examples/Stack.txt similarity index 100% rename from idea/testData/psi/examples/Stack.txt rename to compiler/testData/psi/examples/Stack.txt diff --git a/idea/testData/psi/examples/UnionFind.jet b/compiler/testData/psi/examples/UnionFind.jet similarity index 100% rename from idea/testData/psi/examples/UnionFind.jet rename to compiler/testData/psi/examples/UnionFind.jet diff --git a/idea/testData/psi/examples/UnionFind.txt b/compiler/testData/psi/examples/UnionFind.txt similarity index 100% rename from idea/testData/psi/examples/UnionFind.txt rename to compiler/testData/psi/examples/UnionFind.txt diff --git a/idea/testData/psi/examples/UpdateOperation.jet b/compiler/testData/psi/examples/UpdateOperation.jet similarity index 100% rename from idea/testData/psi/examples/UpdateOperation.jet rename to compiler/testData/psi/examples/UpdateOperation.jet diff --git a/idea/testData/psi/examples/UpdateOperation.txt b/compiler/testData/psi/examples/UpdateOperation.txt similarity index 100% rename from idea/testData/psi/examples/UpdateOperation.txt rename to compiler/testData/psi/examples/UpdateOperation.txt diff --git a/idea/testData/psi/examples/With.jet b/compiler/testData/psi/examples/With.jet similarity index 100% rename from idea/testData/psi/examples/With.jet rename to compiler/testData/psi/examples/With.jet diff --git a/idea/testData/psi/examples/With.txt b/compiler/testData/psi/examples/With.txt similarity index 100% rename from idea/testData/psi/examples/With.txt rename to compiler/testData/psi/examples/With.txt diff --git a/idea/testData/psi/examples/array/MutableArray.jet b/compiler/testData/psi/examples/array/MutableArray.jet similarity index 100% rename from idea/testData/psi/examples/array/MutableArray.jet rename to compiler/testData/psi/examples/array/MutableArray.jet diff --git a/idea/testData/psi/examples/array/MutableArray.txt b/compiler/testData/psi/examples/array/MutableArray.txt similarity index 100% rename from idea/testData/psi/examples/array/MutableArray.txt rename to compiler/testData/psi/examples/array/MutableArray.txt diff --git a/idea/testData/psi/examples/collections/ArrayList.jet b/compiler/testData/psi/examples/collections/ArrayList.jet similarity index 100% rename from idea/testData/psi/examples/collections/ArrayList.jet rename to compiler/testData/psi/examples/collections/ArrayList.jet diff --git a/idea/testData/psi/examples/collections/ArrayList.txt b/compiler/testData/psi/examples/collections/ArrayList.txt similarity index 100% rename from idea/testData/psi/examples/collections/ArrayList.txt rename to compiler/testData/psi/examples/collections/ArrayList.txt diff --git a/idea/testData/psi/examples/collections/HashMap.jet b/compiler/testData/psi/examples/collections/HashMap.jet similarity index 100% rename from idea/testData/psi/examples/collections/HashMap.jet rename to compiler/testData/psi/examples/collections/HashMap.jet diff --git a/idea/testData/psi/examples/collections/HashMap.txt b/compiler/testData/psi/examples/collections/HashMap.txt similarity index 100% rename from idea/testData/psi/examples/collections/HashMap.txt rename to compiler/testData/psi/examples/collections/HashMap.txt diff --git a/idea/testData/psi/examples/collections/IIterable.jet b/compiler/testData/psi/examples/collections/IIterable.jet similarity index 100% rename from idea/testData/psi/examples/collections/IIterable.jet rename to compiler/testData/psi/examples/collections/IIterable.jet diff --git a/idea/testData/psi/examples/collections/IIterable.txt b/compiler/testData/psi/examples/collections/IIterable.txt similarity index 100% rename from idea/testData/psi/examples/collections/IIterable.txt rename to compiler/testData/psi/examples/collections/IIterable.txt diff --git a/idea/testData/psi/examples/collections/IIterator.jet b/compiler/testData/psi/examples/collections/IIterator.jet similarity index 100% rename from idea/testData/psi/examples/collections/IIterator.jet rename to compiler/testData/psi/examples/collections/IIterator.jet diff --git a/idea/testData/psi/examples/collections/IIterator.txt b/compiler/testData/psi/examples/collections/IIterator.txt similarity index 100% rename from idea/testData/psi/examples/collections/IIterator.txt rename to compiler/testData/psi/examples/collections/IIterator.txt diff --git a/idea/testData/psi/examples/collections/IList.jet b/compiler/testData/psi/examples/collections/IList.jet similarity index 100% rename from idea/testData/psi/examples/collections/IList.jet rename to compiler/testData/psi/examples/collections/IList.jet diff --git a/idea/testData/psi/examples/collections/IList.txt b/compiler/testData/psi/examples/collections/IList.txt similarity index 100% rename from idea/testData/psi/examples/collections/IList.txt rename to compiler/testData/psi/examples/collections/IList.txt diff --git a/idea/testData/psi/examples/collections/IMutableIterable.jet b/compiler/testData/psi/examples/collections/IMutableIterable.jet similarity index 100% rename from idea/testData/psi/examples/collections/IMutableIterable.jet rename to compiler/testData/psi/examples/collections/IMutableIterable.jet diff --git a/idea/testData/psi/examples/collections/IMutableIterable.txt b/compiler/testData/psi/examples/collections/IMutableIterable.txt similarity index 100% rename from idea/testData/psi/examples/collections/IMutableIterable.txt rename to compiler/testData/psi/examples/collections/IMutableIterable.txt diff --git a/idea/testData/psi/examples/collections/IMutableIterator.jet b/compiler/testData/psi/examples/collections/IMutableIterator.jet similarity index 100% rename from idea/testData/psi/examples/collections/IMutableIterator.jet rename to compiler/testData/psi/examples/collections/IMutableIterator.jet diff --git a/idea/testData/psi/examples/collections/IMutableIterator.txt b/compiler/testData/psi/examples/collections/IMutableIterator.txt similarity index 100% rename from idea/testData/psi/examples/collections/IMutableIterator.txt rename to compiler/testData/psi/examples/collections/IMutableIterator.txt diff --git a/idea/testData/psi/examples/collections/IMutableList.jet b/compiler/testData/psi/examples/collections/IMutableList.jet similarity index 100% rename from idea/testData/psi/examples/collections/IMutableList.jet rename to compiler/testData/psi/examples/collections/IMutableList.jet diff --git a/idea/testData/psi/examples/collections/IMutableList.txt b/compiler/testData/psi/examples/collections/IMutableList.txt similarity index 100% rename from idea/testData/psi/examples/collections/IMutableList.txt rename to compiler/testData/psi/examples/collections/IMutableList.txt diff --git a/idea/testData/psi/examples/collections/IMutableSet.jet b/compiler/testData/psi/examples/collections/IMutableSet.jet similarity index 100% rename from idea/testData/psi/examples/collections/IMutableSet.jet rename to compiler/testData/psi/examples/collections/IMutableSet.jet diff --git a/idea/testData/psi/examples/collections/IMutableSet.txt b/compiler/testData/psi/examples/collections/IMutableSet.txt similarity index 100% rename from idea/testData/psi/examples/collections/IMutableSet.txt rename to compiler/testData/psi/examples/collections/IMutableSet.txt diff --git a/idea/testData/psi/examples/collections/ISet.jet b/compiler/testData/psi/examples/collections/ISet.jet similarity index 100% rename from idea/testData/psi/examples/collections/ISet.jet rename to compiler/testData/psi/examples/collections/ISet.jet diff --git a/idea/testData/psi/examples/collections/ISet.txt b/compiler/testData/psi/examples/collections/ISet.txt similarity index 100% rename from idea/testData/psi/examples/collections/ISet.txt rename to compiler/testData/psi/examples/collections/ISet.txt diff --git a/idea/testData/psi/examples/collections/ISized.jet b/compiler/testData/psi/examples/collections/ISized.jet similarity index 100% rename from idea/testData/psi/examples/collections/ISized.jet rename to compiler/testData/psi/examples/collections/ISized.jet diff --git a/idea/testData/psi/examples/collections/ISized.txt b/compiler/testData/psi/examples/collections/ISized.txt similarity index 100% rename from idea/testData/psi/examples/collections/ISized.txt rename to compiler/testData/psi/examples/collections/ISized.txt diff --git a/idea/testData/psi/examples/collections/LinkedList.jet b/compiler/testData/psi/examples/collections/LinkedList.jet similarity index 100% rename from idea/testData/psi/examples/collections/LinkedList.jet rename to compiler/testData/psi/examples/collections/LinkedList.jet diff --git a/idea/testData/psi/examples/collections/LinkedList.txt b/compiler/testData/psi/examples/collections/LinkedList.txt similarity index 100% rename from idea/testData/psi/examples/collections/LinkedList.txt rename to compiler/testData/psi/examples/collections/LinkedList.txt diff --git a/idea/testData/psi/examples/collections/List.jet b/compiler/testData/psi/examples/collections/List.jet similarity index 100% rename from idea/testData/psi/examples/collections/List.jet rename to compiler/testData/psi/examples/collections/List.jet diff --git a/idea/testData/psi/examples/collections/List.txt b/compiler/testData/psi/examples/collections/List.txt similarity index 100% rename from idea/testData/psi/examples/collections/List.txt rename to compiler/testData/psi/examples/collections/List.txt diff --git a/idea/testData/psi/examples/io/IOSamples.jet b/compiler/testData/psi/examples/io/IOSamples.jet similarity index 100% rename from idea/testData/psi/examples/io/IOSamples.jet rename to compiler/testData/psi/examples/io/IOSamples.jet diff --git a/idea/testData/psi/examples/io/IOSamples.txt b/compiler/testData/psi/examples/io/IOSamples.txt similarity index 100% rename from idea/testData/psi/examples/io/IOSamples.txt rename to compiler/testData/psi/examples/io/IOSamples.txt diff --git a/idea/testData/psi/examples/map/IMap.jet b/compiler/testData/psi/examples/map/IMap.jet similarity index 100% rename from idea/testData/psi/examples/map/IMap.jet rename to compiler/testData/psi/examples/map/IMap.jet diff --git a/idea/testData/psi/examples/map/IMap.txt b/compiler/testData/psi/examples/map/IMap.txt similarity index 100% rename from idea/testData/psi/examples/map/IMap.txt rename to compiler/testData/psi/examples/map/IMap.txt diff --git a/idea/testData/psi/examples/priorityqueues/BinaryHeap.jet b/compiler/testData/psi/examples/priorityqueues/BinaryHeap.jet similarity index 100% rename from idea/testData/psi/examples/priorityqueues/BinaryHeap.jet rename to compiler/testData/psi/examples/priorityqueues/BinaryHeap.jet diff --git a/idea/testData/psi/examples/priorityqueues/BinaryHeap.txt b/compiler/testData/psi/examples/priorityqueues/BinaryHeap.txt similarity index 100% rename from idea/testData/psi/examples/priorityqueues/BinaryHeap.txt rename to compiler/testData/psi/examples/priorityqueues/BinaryHeap.txt diff --git a/idea/testData/psi/examples/priorityqueues/IPriorityQueue.jet b/compiler/testData/psi/examples/priorityqueues/IPriorityQueue.jet similarity index 100% rename from idea/testData/psi/examples/priorityqueues/IPriorityQueue.jet rename to compiler/testData/psi/examples/priorityqueues/IPriorityQueue.jet diff --git a/idea/testData/psi/examples/priorityqueues/IPriorityQueue.txt b/compiler/testData/psi/examples/priorityqueues/IPriorityQueue.txt similarity index 100% rename from idea/testData/psi/examples/priorityqueues/IPriorityQueue.txt rename to compiler/testData/psi/examples/priorityqueues/IPriorityQueue.txt diff --git a/idea/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.jet b/compiler/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.jet similarity index 100% rename from idea/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.jet rename to compiler/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.jet diff --git a/idea/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.txt b/compiler/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.txt similarity index 100% rename from idea/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.txt rename to compiler/testData/psi/examples/priorityqueues/PriorityQueueAsPushPop.txt diff --git a/idea/testData/psi/examples/util/Comparison.jet b/compiler/testData/psi/examples/util/Comparison.jet similarity index 100% rename from idea/testData/psi/examples/util/Comparison.jet rename to compiler/testData/psi/examples/util/Comparison.jet diff --git a/idea/testData/psi/examples/util/Comparison.txt b/compiler/testData/psi/examples/util/Comparison.txt similarity index 100% rename from idea/testData/psi/examples/util/Comparison.txt rename to compiler/testData/psi/examples/util/Comparison.txt diff --git a/idea/testData/psi/examples/util/IComparable.jet b/compiler/testData/psi/examples/util/IComparable.jet similarity index 100% rename from idea/testData/psi/examples/util/IComparable.jet rename to compiler/testData/psi/examples/util/IComparable.jet diff --git a/idea/testData/psi/examples/util/IComparable.txt b/compiler/testData/psi/examples/util/IComparable.txt similarity index 100% rename from idea/testData/psi/examples/util/IComparable.txt rename to compiler/testData/psi/examples/util/IComparable.txt diff --git a/idea/testData/psi/functionReceivers/FunctionTypesWithFunctionReceivers.jet b/compiler/testData/psi/functionReceivers/FunctionTypesWithFunctionReceivers.jet similarity index 100% rename from idea/testData/psi/functionReceivers/FunctionTypesWithFunctionReceivers.jet rename to compiler/testData/psi/functionReceivers/FunctionTypesWithFunctionReceivers.jet diff --git a/idea/testData/psi/functionReceivers/FunctionsWithFunctionReceivers.jet b/compiler/testData/psi/functionReceivers/FunctionsWithFunctionReceivers.jet similarity index 100% rename from idea/testData/psi/functionReceivers/FunctionsWithFunctionReceivers.jet rename to compiler/testData/psi/functionReceivers/FunctionsWithFunctionReceivers.jet diff --git a/idea/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.jet b/compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.jet similarity index 100% rename from idea/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.jet rename to compiler/testData/psi/functionReceivers/PropertiesWithFunctionReceivers.jet diff --git a/idea/testData/resolve/Basic.jet b/compiler/testData/resolve/Basic.jet similarity index 100% rename from idea/testData/resolve/Basic.jet rename to compiler/testData/resolve/Basic.jet diff --git a/idea/testData/resolve/ClassObjects.jet b/compiler/testData/resolve/ClassObjects.jet similarity index 100% rename from idea/testData/resolve/ClassObjects.jet rename to compiler/testData/resolve/ClassObjects.jet diff --git a/idea/testData/resolve/Classifiers.jet b/compiler/testData/resolve/Classifiers.jet similarity index 100% rename from idea/testData/resolve/Classifiers.jet rename to compiler/testData/resolve/Classifiers.jet diff --git a/idea/testData/resolve/ConstructorsAndInitializers.jet b/compiler/testData/resolve/ConstructorsAndInitializers.jet similarity index 100% rename from idea/testData/resolve/ConstructorsAndInitializers.jet rename to compiler/testData/resolve/ConstructorsAndInitializers.jet diff --git a/idea/testData/resolve/ErrorSupertype.jet b/compiler/testData/resolve/ErrorSupertype.jet similarity index 100% rename from idea/testData/resolve/ErrorSupertype.jet rename to compiler/testData/resolve/ErrorSupertype.jet diff --git a/idea/testData/resolve/ExtensionFunctions.jet b/compiler/testData/resolve/ExtensionFunctions.jet similarity index 100% rename from idea/testData/resolve/ExtensionFunctions.jet rename to compiler/testData/resolve/ExtensionFunctions.jet diff --git a/idea/testData/resolve/FunctionVariable.jet b/compiler/testData/resolve/FunctionVariable.jet similarity index 100% rename from idea/testData/resolve/FunctionVariable.jet rename to compiler/testData/resolve/FunctionVariable.jet diff --git a/idea/testData/resolve/LocalObjects.jet b/compiler/testData/resolve/LocalObjects.jet similarity index 100% rename from idea/testData/resolve/LocalObjects.jet rename to compiler/testData/resolve/LocalObjects.jet diff --git a/idea/testData/resolve/Namespaces.jet b/compiler/testData/resolve/Namespaces.jet similarity index 100% rename from idea/testData/resolve/Namespaces.jet rename to compiler/testData/resolve/Namespaces.jet diff --git a/idea/testData/resolve/NestedObjects.jet b/compiler/testData/resolve/NestedObjects.jet similarity index 100% rename from idea/testData/resolve/NestedObjects.jet rename to compiler/testData/resolve/NestedObjects.jet diff --git a/idea/testData/resolve/Objects.jet b/compiler/testData/resolve/Objects.jet similarity index 100% rename from idea/testData/resolve/Objects.jet rename to compiler/testData/resolve/Objects.jet diff --git a/idea/testData/resolve/PrimaryConstructorParameters.jet b/compiler/testData/resolve/PrimaryConstructorParameters.jet similarity index 100% rename from idea/testData/resolve/PrimaryConstructorParameters.jet rename to compiler/testData/resolve/PrimaryConstructorParameters.jet diff --git a/idea/testData/resolve/PrimaryConstructors.jet b/compiler/testData/resolve/PrimaryConstructors.jet similarity index 100% rename from idea/testData/resolve/PrimaryConstructors.jet rename to compiler/testData/resolve/PrimaryConstructors.jet diff --git a/idea/testData/resolve/Projections.jet b/compiler/testData/resolve/Projections.jet similarity index 100% rename from idea/testData/resolve/Projections.jet rename to compiler/testData/resolve/Projections.jet diff --git a/idea/testData/resolve/ResolveOfInfixExpressions.jet b/compiler/testData/resolve/ResolveOfInfixExpressions.jet similarity index 100% rename from idea/testData/resolve/ResolveOfInfixExpressions.jet rename to compiler/testData/resolve/ResolveOfInfixExpressions.jet diff --git a/idea/testData/resolve/ResolveToJava.jet b/compiler/testData/resolve/ResolveToJava.jet similarity index 100% rename from idea/testData/resolve/ResolveToJava.jet rename to compiler/testData/resolve/ResolveToJava.jet diff --git a/idea/testData/resolve/ScopeInteraction.jet b/compiler/testData/resolve/ScopeInteraction.jet similarity index 100% rename from idea/testData/resolve/ScopeInteraction.jet rename to compiler/testData/resolve/ScopeInteraction.jet diff --git a/idea/testData/resolve/StringTemplates.jet b/compiler/testData/resolve/StringTemplates.jet similarity index 100% rename from idea/testData/resolve/StringTemplates.jet rename to compiler/testData/resolve/StringTemplates.jet diff --git a/idea/testData/resolve/TryCatch.jet b/compiler/testData/resolve/TryCatch.jet similarity index 100% rename from idea/testData/resolve/TryCatch.jet rename to compiler/testData/resolve/TryCatch.jet diff --git a/idea/testData/resolve/regressions/kt300.jet b/compiler/testData/resolve/regressions/kt300.jet similarity index 100% rename from idea/testData/resolve/regressions/kt300.jet rename to compiler/testData/resolve/regressions/kt300.jet diff --git a/compiler/tests/compiler-tests.iml b/compiler/tests/compiler-tests.iml new file mode 100644 index 00000000000..d1dadb8a16b --- /dev/null +++ b/compiler/tests/compiler-tests.iml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/idea/tests/org/jetbrains/jet/JetLightProjectDescriptor.java b/compiler/tests/org/jetbrains/jet/JetLightProjectDescriptor.java similarity index 100% rename from idea/tests/org/jetbrains/jet/JetLightProjectDescriptor.java rename to compiler/tests/org/jetbrains/jet/JetLightProjectDescriptor.java diff --git a/idea/tests/org/jetbrains/jet/JetLiteFixture.java b/compiler/tests/org/jetbrains/jet/JetLiteFixture.java similarity index 100% rename from idea/tests/org/jetbrains/jet/JetLiteFixture.java rename to compiler/tests/org/jetbrains/jet/JetLiteFixture.java diff --git a/idea/tests/org/jetbrains/jet/JetTestCaseBase.java b/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java similarity index 95% rename from idea/tests/org/jetbrains/jet/JetTestCaseBase.java rename to compiler/tests/org/jetbrains/jet/JetTestCaseBase.java index f6ba28dcb72..88dd75b955a 100644 --- a/idea/tests/org/jetbrains/jet/JetTestCaseBase.java +++ b/compiler/tests/org/jetbrains/jet/JetTestCaseBase.java @@ -35,7 +35,7 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase { } public static Sdk jdkFromIdeaHome() { - return new JavaSdkImpl().createJdk("JDK", "idea/testData/mockJDK-1.7/jre", true); + return new JavaSdkImpl().createJdk("JDK", "compiler/testData/mockJDK-1.7/jre", true); } @Override @@ -44,7 +44,7 @@ public abstract class JetTestCaseBase extends LightDaemonAnalyzerTestCase { } public static String getTestDataPathBase() { - return getHomeDirectory() + "/idea/testData"; + return getHomeDirectory() + "/compiler/testData"; } public static String getHomeDirectory() { diff --git a/idea/tests/org/jetbrains/jet/JetTestUtils.java b/compiler/tests/org/jetbrains/jet/JetTestUtils.java similarity index 100% rename from idea/tests/org/jetbrains/jet/JetTestUtils.java rename to compiler/tests/org/jetbrains/jet/JetTestUtils.java diff --git a/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java similarity index 99% rename from idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java rename to compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java index 0399c97acf3..bb51aee9cc4 100644 --- a/idea/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java +++ b/compiler/tests/org/jetbrains/jet/cfg/JetControlFlowTest.java @@ -18,7 +18,7 @@ import org.jetbrains.jet.lang.psi.JetElement; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetNamedDeclaration; -import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import java.io.File; import java.io.FileNotFoundException; diff --git a/idea/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java b/compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java rename to compiler/tests/org/jetbrains/jet/checkers/CheckerTestUtilTest.java diff --git a/idea/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java b/compiler/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java similarity index 97% rename from idea/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java rename to compiler/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java index 597eb5e2b95..d71414210c2 100644 --- a/idea/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java +++ b/compiler/tests/org/jetbrains/jet/checkers/FullJetPsiCheckerTest.java @@ -5,6 +5,7 @@ import com.intellij.openapi.util.TextRange; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.CharsetToolkit; +import com.intellij.testFramework.LightPlatformCodeInsightTestCase; import junit.framework.Test; import org.jetbrains.annotations.NonNls; import org.jetbrains.annotations.NotNull; @@ -12,7 +13,7 @@ import org.jetbrains.jet.JetTestCaseBase; import org.jetbrains.jet.lang.diagnostics.DiagnosticUtils; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import java.io.File; import java.io.FileWriter; diff --git a/idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java b/compiler/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java rename to compiler/tests/org/jetbrains/jet/checkers/JetPsiCheckerTest.java diff --git a/idea/tests/org/jetbrains/jet/checkers/QuickJetPsiCheckerTest.java b/compiler/tests/org/jetbrains/jet/checkers/QuickJetPsiCheckerTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/checkers/QuickJetPsiCheckerTest.java rename to compiler/tests/org/jetbrains/jet/checkers/QuickJetPsiCheckerTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/ArrayGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ArrayGenTest.java similarity index 97% rename from idea/tests/org/jetbrains/jet/codegen/ArrayGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ArrayGenTest.java index a7aa2572f54..f5f89630aa5 100644 --- a/idea/tests/org/jetbrains/jet/codegen/ArrayGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/ArrayGenTest.java @@ -1,10 +1,6 @@ package org.jetbrains.jet.codegen; -import jet.typeinfo.TypeInfo; - -import java.lang.reflect.Array; import java.lang.reflect.Method; -import java.util.ArrayList; public class ArrayGenTest extends CodegenTestCase { public void testKt238 () throws Exception { diff --git a/idea/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java similarity index 88% rename from idea/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java index 2f89c65b0e7..2fcda7706f7 100644 --- a/idea/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java +++ b/compiler/tests/org/jetbrains/jet/codegen/BridgeMethodGenTest.java @@ -1,7 +1,5 @@ package org.jetbrains.jet.codegen; -import java.util.List; - public class BridgeMethodGenTest extends CodegenTestCase { public void testBridgeMethod () throws Exception { blackBoxFile("bridge.jet"); diff --git a/idea/tests/org/jetbrains/jet/codegen/ClassGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/ClassGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ClassGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/ClosuresGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ClosuresGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/ClosuresGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ClosuresGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java b/compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/CodegenTestCase.java rename to compiler/tests/org/jetbrains/jet/codegen/CodegenTestCase.java diff --git a/idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java b/compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ControlStructuresTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java b/compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ExtensionFunctionsTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/FunctionGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/FunctionGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/NamespaceGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/ObjectGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/ObjectGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/ObjectGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/PatternMatchingTest.java b/compiler/tests/org/jetbrains/jet/codegen/PatternMatchingTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/PatternMatchingTest.java rename to compiler/tests/org/jetbrains/jet/codegen/PatternMatchingTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java b/compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java rename to compiler/tests/org/jetbrains/jet/codegen/PrimitiveTypesTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java b/compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/PropertyGenTest.java rename to compiler/tests/org/jetbrains/jet/codegen/PropertyGenTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/SafeRefTest.java b/compiler/tests/org/jetbrains/jet/codegen/SafeRefTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/SafeRefTest.java rename to compiler/tests/org/jetbrains/jet/codegen/SafeRefTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/TraitsTest.java b/compiler/tests/org/jetbrains/jet/codegen/TraitsTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/TraitsTest.java rename to compiler/tests/org/jetbrains/jet/codegen/TraitsTest.java diff --git a/idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java b/compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/codegen/TypeInfoTest.java rename to compiler/tests/org/jetbrains/jet/codegen/TypeInfoTest.java diff --git a/idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java b/compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java similarity index 100% rename from idea/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java rename to compiler/tests/org/jetbrains/jet/parsing/JetCodeConformanceTest.java diff --git a/idea/tests/org/jetbrains/jet/parsing/JetParsingTest.java b/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java similarity index 98% rename from idea/tests/org/jetbrains/jet/parsing/JetParsingTest.java rename to compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java index 6e1b8238abf..6413d420c30 100644 --- a/idea/tests/org/jetbrains/jet/parsing/JetParsingTest.java +++ b/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java @@ -41,7 +41,7 @@ public class JetParsingTest extends ParsingTestCase { } public static String getTestDataDir() { - return getHomeDirectory() + "/idea/testData"; + return getHomeDirectory() + "/compiler/testData"; } private static String getHomeDirectory() { diff --git a/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java similarity index 97% rename from idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java rename to compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java index 6eae3034292..2a86bdc82d5 100644 --- a/idea/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java +++ b/compiler/tests/org/jetbrains/jet/resolve/ExpectedResolveData.java @@ -13,11 +13,11 @@ import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnostic; 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.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.TypeConstructor; -import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.HashMap; import java.util.HashSet; @@ -172,7 +172,9 @@ public class ExpectedResolveData { JetTypeReference typeReference = getAncestorOfType(JetTypeReference.class, element); if (expectedDescriptor != null) { DeclarationDescriptor actual = bindingContext.get(REFERENCE_TARGET, reference); - assertSame("Expected: " + name, expectedDescriptor.getOriginal(), actual == null ? null : actual.getOriginal()); + assertSame("Expected: " + name, expectedDescriptor.getOriginal(), actual == null + ? null + : actual.getOriginal()); continue; } diff --git a/idea/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java b/compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java similarity index 100% rename from idea/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java rename to compiler/tests/org/jetbrains/jet/resolve/ExtensibleResolveTestCase.java diff --git a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java similarity index 96% rename from idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java rename to compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java index 2d1afcd62c7..f93dda39119 100644 --- a/idea/tests/org/jetbrains/jet/resolve/JetResolveTest.java +++ b/compiler/tests/org/jetbrains/jet/resolve/JetResolveTest.java @@ -17,11 +17,13 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor; import org.jetbrains.jet.lang.resolve.calls.CallResolver; +import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowInfo; -import org.jetbrains.jet.lang.resolve.calls.OverloadResolutionResults; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; -import org.jetbrains.jet.lang.types.*; +import org.jetbrains.jet.lang.types.JetStandardLibrary; +import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.TypeProjection; import org.jetbrains.jet.parsing.JetParsingTest; import java.io.File; @@ -128,7 +130,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { @Override protected String getTestDataPath() { - return getHomeDirectory() + "/idea/testData"; + return getHomeDirectory() + "/compiler/testData"; } @Override @@ -151,7 +153,7 @@ public class JetResolveTest extends ExtensibleResolveTestCase { } public static Test suite() { - return JetTestCaseBase.suiteForDirectory(getHomeDirectory() + "/idea/testData/", "/resolve/", true, new JetTestCaseBase.NamedTestFactory() { + return JetTestCaseBase.suiteForDirectory(getHomeDirectory() + "/compiler/testData/", "/resolve/", true, new JetTestCaseBase.NamedTestFactory() { @NotNull @Override public Test createTest(@NotNull String dataPath, @NotNull String name) { diff --git a/idea/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java similarity index 99% rename from idea/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java rename to compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java index 2eb81e3b963..9b48938707a 100644 --- a/idea/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetDefaultModalityModifiersTest.java @@ -7,11 +7,11 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.ClassDescriptorResolver; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.RedeclarationHandler; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; import org.jetbrains.jet.lang.types.JetStandardLibrary; -import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.List; diff --git a/idea/tests/org/jetbrains/jet/types/JetOverridingTest.java b/compiler/tests/org/jetbrains/jet/types/JetOverridingTest.java similarity index 97% rename from idea/tests/org/jetbrains/jet/types/JetOverridingTest.java rename to compiler/tests/org/jetbrains/jet/types/JetOverridingTest.java index 913fdecbd7e..2af92fa5a29 100644 --- a/idea/tests/org/jetbrains/jet/types/JetOverridingTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetOverridingTest.java @@ -6,11 +6,11 @@ import org.jetbrains.jet.JetTestUtils; import org.jetbrains.jet.lang.JetSemanticServices; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.ModuleDescriptor; -import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.psi.JetNamedFunction; +import org.jetbrains.jet.lang.psi.JetPsiFactory; import org.jetbrains.jet.lang.resolve.ClassDescriptorResolver; import org.jetbrains.jet.lang.resolve.OverridingUtil; -import org.jetbrains.jet.lang.types.*; +import org.jetbrains.jet.lang.types.JetStandardLibrary; import org.jetbrains.jet.parsing.JetParsingTest; import java.io.File; @@ -35,7 +35,7 @@ public class JetOverridingTest extends LightDaemonAnalyzerTestCase { @Override protected String getTestDataPath() { - return getHomeDirectory() + "/idea/testData"; + return getHomeDirectory() + "/compiler/testData"; } private static String getHomeDirectory() { diff --git a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java similarity index 99% rename from idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java rename to compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java index 7ea91dd752c..651fb148cf1 100644 --- a/idea/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java +++ b/compiler/tests/org/jetbrains/jet/types/JetTypeCheckerTest.java @@ -51,7 +51,7 @@ public class JetTypeCheckerTest extends LightDaemonAnalyzerTestCase { @Override protected String getTestDataPath() { - return getHomeDirectory() + "/idea/testData"; + return getHomeDirectory() + "/compiler/testData"; } private static String getHomeDirectory() { diff --git a/idea/idea.iml b/idea/idea.iml index f59f50c0a63..c994d198190 100644 --- a/idea/idea.iml +++ b/idea/idea.iml @@ -21,6 +21,7 @@ + diff --git a/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java b/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java index 68ff66afb3d..bdcca23ba32 100644 --- a/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/JetQuickDocumentationProvider.java @@ -8,6 +8,7 @@ import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetReferenceExpression; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.resolve.DescriptorRenderer; /** diff --git a/idea/src/org/jetbrains/jet/plugin/actions/CopyAsDiagnosticTestAction.java b/idea/src/org/jetbrains/jet/plugin/actions/CopyAsDiagnosticTestAction.java index b9c35a7986d..6672b66de6e 100644 --- a/idea/src/org/jetbrains/jet/plugin/actions/CopyAsDiagnosticTestAction.java +++ b/idea/src/org/jetbrains/jet/plugin/actions/CopyAsDiagnosticTestAction.java @@ -10,7 +10,7 @@ import com.intellij.psi.PsiFile; import org.jetbrains.jet.checkers.CheckerTestUtil; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import java.awt.*; import java.awt.datatransfer.Clipboard; diff --git a/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java b/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java index 26f778b3fe1..4611f9cc010 100644 --- a/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java +++ b/idea/src/org/jetbrains/jet/plugin/actions/ShowExpressionTypeAction.java @@ -12,8 +12,8 @@ import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.plugin.JetLanguage; /** diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java index d749f54e81b..9c6702b742c 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/DebugInfoAnnotator.java @@ -16,9 +16,9 @@ import org.jetbrains.jet.lang.diagnostics.UnresolvedReferenceDiagnostic; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.ErrorUtils; import org.jetbrains.jet.lexer.JetTokens; -import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.plugin.JetHighlighter; import java.util.Collection; diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java b/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java index e53c0587f4e..299adbff7dc 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/JetLineMarkerProvider.java @@ -24,7 +24,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; -import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.resolve.DescriptorRenderer; import javax.swing.*; diff --git a/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java b/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java index 95962f451d8..d2be0e6939d 100644 --- a/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java +++ b/idea/src/org/jetbrains/jet/plugin/annotations/JetPsiChecker.java @@ -22,8 +22,8 @@ import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.diagnostics.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.plugin.JetHighlighter; import org.jetbrains.jet.plugin.quickfix.JetIntentionActionFactory; import org.jetbrains.jet.plugin.quickfix.QuickFixes; diff --git a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java index 073d4d9ba61..f22310cf037 100644 --- a/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java +++ b/idea/src/org/jetbrains/jet/plugin/debugger/JetPositionManager.java @@ -21,8 +21,8 @@ import org.jetbrains.jet.codegen.GenerationState; import org.jetbrains.jet.codegen.JetTypeMapper; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.types.JetStandardLibrary; -import org.jetbrains.jet.plugin.AnalyzerFacade; import java.util.*; diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java index 76cdd4a0a42..220bc1923d3 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetPsiReference.java @@ -12,7 +12,7 @@ import org.jetbrains.jet.lang.psi.JetReferenceExpression; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.calls.ResolvedCallImpl; -import org.jetbrains.jet.plugin.AnalyzerFacade; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import java.util.Collection; diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java index 55d454b3c50..85b0ee34e89 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java @@ -13,9 +13,9 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; +import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.types.JetType; -import org.jetbrains.jet.plugin.AnalyzerFacade; import org.jetbrains.jet.resolve.DescriptorRenderer; import java.util.List; diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java index cbade4283ca..91542507b41 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/AbstractModifierFixTest.java @@ -1,7 +1,6 @@ package org.jetbrains.jet.plugin.quickfix; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; /** * @author svtk @@ -19,6 +18,6 @@ public class AbstractModifierFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java index c8a067576f9..633f5f8b09d 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/AddPrimaryConstructorFixTest.java @@ -19,6 +19,6 @@ public class AddPrimaryConstructorFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java index e2b04a75f1f..78f7e287f9f 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/ChangeVariableMutabilityFixTest.java @@ -1,7 +1,6 @@ package org.jetbrains.jet.plugin.quickfix; import com.intellij.codeInsight.daemon.quickFix.LightQuickFixTestCase; -import org.jetbrains.jet.JetTestCaseBase; /** * @author svtk @@ -19,6 +18,6 @@ public class ChangeVariableMutabilityFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java index 215a15eb5b2..d765f6aad5c 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/ClassImportFixTest.java @@ -20,7 +20,7 @@ public class ClassImportFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } @Override diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java index 9e0affacba6..ad60d7b72e5 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/ExpressionsFixTest.java @@ -19,6 +19,6 @@ public class ExpressionsFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java index 66b299fded9..32ce67866dd 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/ModifiersFixTest.java @@ -19,7 +19,7 @@ public class ModifiersFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java index 2a67aa23aeb..6969bcce9b8 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/OverrideModifierFixTest.java @@ -19,7 +19,7 @@ public class OverrideModifierFixTest extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } } diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/PluginTestCaseBase.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/PluginTestCaseBase.java new file mode 100644 index 00000000000..c65a3ff5e3f --- /dev/null +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/PluginTestCaseBase.java @@ -0,0 +1,12 @@ +package org.jetbrains.jet.plugin.quickfix; + +import org.jetbrains.jet.JetTestCaseBase; + +/** + * @author yole + */ +public class PluginTestCaseBase { + public static String getTestDataPathBase() { + return JetTestCaseBase.getHomeDirectory() + "/idea/testData"; + } +} diff --git a/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java b/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java index b9154602f09..c870f1e6088 100644 --- a/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java +++ b/idea/tests/org/jetbrains/jet/plugin/quickfix/TypeAdditionFixTests.java @@ -20,7 +20,7 @@ public class TypeAdditionFixTests extends LightQuickFixTestCase { @Override protected String getTestDataPath() { - return JetTestCaseBase.getTestDataPathBase(); + return PluginTestCaseBase.getTestDataPathBase(); } @Override From d445a09a80c4ebd39abf233a8adc717b972baf2d Mon Sep 17 00:00:00 2001 From: Andrey Breslav Date: Thu, 20 Oct 2011 18:38:51 +0400 Subject: [PATCH 22/22] KT-156 Fix the this syntax --- .../expressions/BasicExpressionTypingVisitor.java | 4 +++- .../checkerWithErrorTypes/quick/Super.jet | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) rename {idea => compiler}/testData/checkerWithErrorTypes/quick/Super.jet (86%) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java index 6828fada9ce..74466a6e266 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/BasicExpressionTypingVisitor.java @@ -365,7 +365,9 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor { context.trace.report(AMBIGUOUS_SUPER.on(expression)); } else { - result = substitutor.substitute(supertypes.iterator().next(), Variance.INVARIANT); + // supertypes may be empty when all the supertypes are error types (are not resolved, for example) + JetType type = supertypes.isEmpty() ? JetStandardClasses.getAnyType() : supertypes.iterator().next(); + result = substitutor.substitute(type, Variance.INVARIANT); } } if (result != null) { diff --git a/idea/testData/checkerWithErrorTypes/quick/Super.jet b/compiler/testData/checkerWithErrorTypes/quick/Super.jet similarity index 86% rename from idea/testData/checkerWithErrorTypes/quick/Super.jet rename to compiler/testData/checkerWithErrorTypes/quick/Super.jet index 65087a0a4d4..5ec4cfdcb00 100644 --- a/idea/testData/checkerWithErrorTypes/quick/Super.jet +++ b/compiler/testData/checkerWithErrorTypes/quick/Super.jet @@ -60,3 +60,18 @@ class CG : G { super<G>.foo() // Error } } + +// The case when no supertype is resolved +class ERROR() : UR { + + fun test() { + super.foo() + } +} + +// No supertype at all +class A1 { + fun test() { + super.equals(null) + } +} \ No newline at end of file

    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 a#n$l9xqZ(PfbW#(Y`ima!}{(_9uQ z+ANEB9h60+&&eWX>9UAjjx4gTP!^f|RThbBkwqFhWRZgdvPcrQ9Ma4uhvbXPA?C7j zNLZ&F()Cmx;k`^nBKFXb*cA#$va13z&r1QB9-x3M+pmD+L@6L^;}wvk(+bF*WCi5p z4F%*+jsoH%dmj=D6%fUG1w`YU0-{c#BTM+`h_478@sgq=a~0@_q7farW8kXF+kAXHgM;ufaqeiUncoIabnrV(RZ~ZLO9%d=5WH4+;)}hXmoVN9L?wv~Uth61~|I#00tnbQdTO=pN90pa(z?f%1V0fC_~mo?Qfg6azg1dJI$o^aQ9Bs0`>S z&@-TNpyxm@fL;Ps0969L0(uSf2IwtN6;L(MJD~SKAAo9rYJuv2J_6MPH2{4QVnFr7 zA76kPfxZGY0eu5%2Ko-v0`vpuC(tjTR-iVZcAyTRPN3gFT|nJHJwUxceL(#{13-g7 ze}IO7uvKj%KoFutNDTOo3T13>^5nFBNzXdaL*kRH%{AblVMAVVM{panq2KqkV_{-*H9 zLLf7sML_027C@Fji-D|wtbuHRY=OXNB1?hnfb4-BfR+I*2XX{j0kjgx31}72YM?bh zYk{1BT!7XAtp{=yhW2-ZKiq*lfHnYm0&N7^1hg5*3up_FH;@m|Rv=#>KOldg0H8pi zAfRBNZ9vRv-P$*Cs5Z3hJ*nfM0_5tk&Isg;_bP(teP$bY{peUed zpctSdK(Rn^Ku3X&0mTCy2RZ?C66pV_;4Xf<2%-Q0Lxlpteo&x5!>>pv?(R}bi@WRp zKp=#K9yoB~z=cJNyK7tA-QC^YDHICd9=>^R@{TXroyqL%Tmt4Xp9L&r5sS%Y30X@G z%UI3|R=>5HIfN$v{xr9YDl35HK|2y!mICfNTn|Is80hL(ul@1 zp()L1P77Mniq^EDE$wJe2RhP;&Jq3ZBI!yuy3>O+dXkO>QjrWY314h|#J=>SKLZ%Z zAj0|(aVWzW&Im>_im*OL9LqSyM?8loNG39g!XT0sof@R1MU&%ah4Y*_Y5r(8=h5W3 z>Cyby)VP?SAU!%QW^^Q&(knV6rgtRxAtuCHxy+oM5=_rf9PDevytqVXtnGuY*-3Fh IMrJhkKM657FaQ7m delta 61635 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

    rFHMFL6cS&qgaPzkP9blr#bB0b5GLPyd&#AAb81 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