From 2a10a328b135e11d616d40ac448044c18e20e8cb Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Fri, 21 Aug 2015 21:52:39 +0300 Subject: [PATCH] [groovy] trait fields: fix type --- .../typedef/GrTypeDefinitionMembersCache.java | 7 +-- .../lang/resolve/ResolveToCompiledTest.groovy | 45 ++++++++++++++++++ plugins/groovy/testdata/lib/some-library.jar | Bin 0 -> 8715 bytes 3 files changed, 46 insertions(+), 6 deletions(-) create mode 100644 plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveToCompiledTest.groovy create mode 100644 plugins/groovy/testdata/lib/some-library.jar diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionMembersCache.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionMembersCache.java index a57aeb988aa4..1f4ac2f191e0 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionMembersCache.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionMembersCache.java @@ -354,12 +354,7 @@ public class GrTypeDefinitionMembersCache { @Override public boolean process(VirtualFile file, Collection values) { for (TraitFieldDescriptor descriptor : values) { - final GrLightField field = new GrLightField( - trait, - descriptor.name, - myElementFactory.createTypeFromText(descriptor.name, trait), - trait - ); + final GrLightField field = new GrLightField(trait, descriptor.name, descriptor.typeString); if (descriptor.isStatic) { field.getModifierList().addModifier(STATIC_MASK); } diff --git a/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveToCompiledTest.groovy b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveToCompiledTest.groovy new file mode 100644 index 000000000000..b33aba13cb0f --- /dev/null +++ b/plugins/groovy/test/org/jetbrains/plugins/groovy/lang/resolve/ResolveToCompiledTest.groovy @@ -0,0 +1,45 @@ +/* + * Copyright 2000-2015 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.jetbrains.plugins.groovy.lang.resolve + +import com.intellij.openapi.module.Module +import com.intellij.openapi.roots.ContentEntry +import com.intellij.openapi.roots.ModifiableRootModel +import com.intellij.testFramework.LightProjectDescriptor +import com.intellij.testFramework.PsiTestUtil +import groovy.transform.CompileStatic +import org.jetbrains.annotations.NotNull +import org.jetbrains.plugins.groovy.GroovyLightProjectDescriptor +import org.jetbrains.plugins.groovy.util.TestUtils + +import static org.jetbrains.plugins.groovy.config.GroovyFacetUtil.getBundledGroovyJar + +@CompileStatic +class ResolveToCompiledTest extends GroovyResolveTestCase { + + final String basePath = "resolve/" + + final LightProjectDescriptor projectDescriptor = new GroovyLightProjectDescriptor(getBundledGroovyJar() as String) { + @Override + void configureModule(@NotNull Module module, @NotNull ModifiableRootModel model, @NotNull ContentEntry contentEntry) { + super.configureModule(module, model, contentEntry) + PsiTestUtil.addLibrary(module, model, "some-library", "${TestUtils.absoluteTestDataPath}/lib", 'some-library.jar'); + } + } + + void 'test resolve implemented trait method()'() { + } +} diff --git a/plugins/groovy/testdata/lib/some-library.jar b/plugins/groovy/testdata/lib/some-library.jar new file mode 100644 index 0000000000000000000000000000000000000000..4cfdef710e5a5201736a2484d7e1cf42e21d046b GIT binary patch literal 8715 zcmai)1yCJJ*RD721j0r)PH=aEySux)ySoMt&c@w6xH|-QCwOp6&>*?Vck263&bjs9 zyJn_prmFj$>RB`0^Ss@PGEmTn002Ay&{Tyf0r(@30nh*!2Rk!IBNH1V3p2*oF#tgE zS7{&s9v&W0^{>*vUp4;gzZO{ zbeb?Tri6$rqM)A=*B?iWN|v_aq`*J09-qaql+mdXhEE2xN$!UVQlV-8C%g@AO5nN} z*T5~6O>rq_$**1=PhTcF!47ep4hEjzdy@cI(J+v#N!M~~=IpLuyd`cQ?<_P(HP9k+ z6KlnAe|9B@?SgPSM)CXPzB~*wNR%B>UVaYynHKkr6YHe9mOkOBsi}^#fPjm12J=B^Md*Gjw$P*yCf;zK{fci^#T? zkbWv{z@YukrG`L6FvGlIvbj)`U<;>Z&^&kq>D}E*zcG|I>06}rBU3sw7dM9HYDm_p z4}+vXSc2x7@7M_&4Vyuz6GpprCHG~smc#`%n~|Z?Q^(de1{Rkwv+0DZMQ-6A_@!>L zt%i#UCkA{ur5$4e)5P$`?i79$*H?E1TJTy9)lYQHgwUv_&Fkn;htWf4*g??}sQ3r% z#Y@Xk#$h{NHTIU+IW|3& z%-T?!Hz!lblaC#`MW+|4FC!0M{FqweQSX5K(5Y2rwJkqnbv7~&gM|%6iY6_}aXLQY z7E9e8u`tQK=MgSQ9w8Q<_RLWRyjy4KoQ!34N`)g-ZP-dhYLw%Q&gRnTO=_MggRp2m zz+L5kY1r;-0jaqK2pQCqI=YqQykE$(2y<`<3itQ8>=Fy##O{9|5;y6O>_zoa?$F=NFezrU`jGFhYg zCa;*aDEiJ^yjl|zsV+nv5qY&tS-8AhdaZMWy<(8q-RuCnS#QQK zBbHscpmN#d2Gs9o^L@aPlXhr%##CPJ;*k${peXTlhj%$M?~SH7EwUZ}DI#PE$oVRz zL2YetMEwz)55)Y!Zme0EPYcpF4c-fD^tsL67B&MXmZ~&3vT5omr>z)7g;0!d=NaSd zJ~&XLz3(FQh4g5>cJgho%pRLfX>$FpxYJ)fyox5t>CSsjB3c48SJL>#G#}!<9S-T8W9ZzG#EZxc=2Y-Ige0$(_$GxniTU(mD%hcu*F7I ziOEKf%9wO4UZrmN=0R&=`06FR`R)5dCy3xd_)d)S60t96Hwco^L)d_3=FviNDKC|} zhqTTxN+(pvz+xsq&d`6BCrn5$9=7CFT)z|8DvP5VYiV5LASXf@oNf)k{AqPb{2pt~ zYxM$;H7vo(=uybpBcJAii#mF}_e+6(k}3WNToe}-ouG?!9chKH2uUsnOy^lkPUC50 z)_OK}9?rYiD(;~YpTKanI~te|2`+9C+C z8Cz8yH`~S+hs&#r?CnV)vyrfX_A9(|OT#WRUP-&wl8&nqq_hslB&0X3b<1HQs<~%( zXqt2C+li`2gmjOlHq0X-J$pnzgW!yqnnLVd;068`&a8t?0~~$-9u{W7Tu9HZgQ_KT zcFLrfqg#}91+y+V6kBFP7@eI^iNd_D-|ZP>LOac_h*5#3NXLCbgk2!TmX;(>uL|M) zAvU05Fw#CY<3ky!K>H&cck~k}v)#c_35s@qmR08{T02Ez%#5f<48wIpQhvoY>YxM$ z2@OaIvnj@*kqd734;Bg>_ov~)AM{tt)#E(C?x^%MxA3{+Lr3r0Vk$K zfk&a%w+>v9jLX37pYL5;vP29v8!>p?gB%3Dmel1~0KlJFVP?%6$6=Jv%n zq8VD#`zFkt_C)k{rx!o#L(;xOT2lQWa9PZNd?UDls$S(R*`tl^P18JVd^+Wp7Giv< z<_R6s<9ND&k4QTt&V(B3D}*UamgN3~BmQxhD)lOC8e`Z+cE{}eVF2MLPmZuJLEU^u z*OwwhrvrHRCgjIMkf~C2<(2saPdv$h_4Ta&Ug$47qm6Cy_9`}O6AqW}9>UV6U+|=K z#ZD_lTG6n{>l5)>Wvt*thG<6KuT=B);dTbY=ik&M96O1XQDQM;Pj~Z3w_L}X_ zmF=P7LlsvE8A4``JK{t(tu!(?vu;J+GmNOuFEKQvlw0HI z^*F<EEeYwg(-DiRcBgWy5v?TmhvzZBxwt2n^A+<|p^NMxaa-1y(PcyM z!4e!D)K{>5HS|CK81R`|(&Gq_*qp z;|?dHyG)kUjG-+X;7?%Tc1!JZl$sW1MGOiI%};+w)8Ii+U<^1V;K202U?U&@W6DoM z24V%A;>}#GJF|1|ewru$^^7eCt0e{Y9-*aY5zo2quLA69lMXb1jiejD6>cf#Kp*e5 z-bE~cJuSrjdw$I*z9WOme;)*?MOVkSJvQnW&es)t)N%6Xfb9?a6O1IGhdF?pe1fpHlY@X z@hHci;w;vkfu$AaKxSOi0=7$EUq0LlNqc!z)_aIM;~2lz^PNsTU4+z?Q+~PJgQHlM z8YBy-c#LiSo)Ra^KcHeiu411!LyYoD;%_R=wVJHB>T8Z9<5^EWj_Xd^sXQ1@AL5eY zX(dfgrAuYXScf+YBRW8_l!Uzo7uQ?wQtc4vZFN%UC2lN>EYPPwPlS_wikzEk=?*@v z-Ld%UT?jT#Sr~ZTIJ`{nb-we8D_QaTTE)eS-2_pI6tzWq5Y{6_hRI zK3G)_=NqN)sL@*rolF&5@y!7*BKhZxXP8DHp$0AIjAyoPt3JcVE@m)c3$4ezXQ^(h z48umHZQ(WldzYT9)eB7W8&65E(BX)Ke$=+B^oEFGJ!kWlEUyh(>Ei_DoV@EmT`nr@ zoNtJ5d^zelh1a-kS9J909M{FujmJ1F*>)A*5f4d@Xnm=b{1sJ^6)`s$%`e!P(Kk z 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 b|Camf6IGOff&G0`xL@1puk<4l|GxS^Y;Mr+ literal 0 HcmV?d00001