From de469ea0a134e4c5ea39c361007579a10ec6b4ed Mon Sep 17 00:00:00 2001 From: dsavvinov Date: Wed, 20 Jul 2016 17:31:59 +0300 Subject: [PATCH] Protobuf: fixed a bug in deserialization of messages with size 0. Corresponding test cross-branch-access.proto added --- .../google/protobuf/compiler/kotlin/Makefile | 1 + .../google/protobuf/compiler/kotlin/protoc | Bin 105224 -> 105224 bytes .../kotlin/src/kotlin_class_generator.cc | 20 ++++++++++----- .../kotlin/src/kotlin_field_generator.cc | 11 +++++++- .../compiler/kotlin/test/Direction.proto | 21 +++++++++++++++ .../compiler/kotlin/test/connect.proto | 17 +++++++++++++ .../kotlin/test/cross-branch-access.proto | 24 ++++++++++++++++++ .../compiler/kotlin/test/direction.proto | 21 +++++++++++++++ .../protobuf/compiler/kotlin/test/error.proto | 10 ++++++++ .../compiler/kotlin/test/location.proto | 18 +++++++++++++ .../protobuf/compiler/kotlin/test/route.proto | 19 ++++++++++++++ .../compiler/kotlin/test/routeDone.proto | 10 ++++++++ .../compiler/kotlin/test/route_done.proto | 10 ++++++++ 13 files changed, 174 insertions(+), 8 deletions(-) create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/Direction.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/connect.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/cross-branch-access.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/direction.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/error.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/location.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/routeDone.proto create mode 100644 proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route_done.proto diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/Makefile b/proto/compiler/google/src/google/protobuf/compiler/kotlin/Makefile index 1909dc79bfb..5aeef5deb81 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/Makefile +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/Makefile @@ -34,6 +34,7 @@ generate: ./protoc --kotlin_out=$$HOME/Downloads/carkot/proto/compiler/protoc-artifacts ./test/nested-msg.proto ./protoc --kotlin_out=$$HOME/Downloads/carkot/proto/compiler/protoc-artifacts ./test/routeDone.proto ./protoc --kotlin_out=$$HOME/Downloads/carkot/proto/compiler/protoc-artifacts ./test/route.proto + ./protoc --kotlin_out=$$HOME/Downloads/carkot/proto/compiler/protoc-artifacts ./test/cross-branch-access.proto debug: gdb --args ./protoc --kotlin_out=$$HOME/Downloads/carkot/proto/compiler/src ./test/addressbook.proto diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/protoc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/protoc index 33cf56944ca0f06c144f808875230c201a013532..50d8df117435b3dba9f30606fbbd13f3030b3929 100755 GIT binary patch delta 16278 zcmaKT34DxK_y2PznIs~T3E7cMWRTbryO1y;Vum1yt+uFrkBXu~f*{io!o_1PN^7Yq zq7tDIuYDVnFpOR4?1NR zxz=dT1p3uzzWjQD=bP$E?M?L<8T*FsWH-FN$z403q>9I+nytN-PJNVDd~M;lnmKDU zd$sav{2!6%rD0QsiV$Fg~TNU3)TDy1i0+H4*{Mxl?%^4fIT zxrFB#VpsxyWw_!r_mChIe8R8P4QD0Xv0esi!7cUrvd6r*-guVEyVf7b%zRt@IJSb9 z)t}GGb0&v=#x$XCa@-rtWsNfbHVT7|k8a`-lp*(qlt2NYOH-b|qcoG}HH6ZfR}H-x z%gWI;KFiove!a;=Hj{S=pTgGj-0&-G5nmFqiS^=*ns#BOJf&$nQ1><^s=nD_P;WLn z!8Yb>X}*D>(!S*;R?cs?>{M+t6q+pe&6X3AK8`nORhK34#8#`>=e(>{Pj;5KYrTx+ z@$;<%oN^swgn}KstaStg)M`@?-%f4JnqW`9w9VJfBu8@V#5+dTgM@LBWi{7qCl_ZJ zHlu&0tRseO!2BW-ay(~B+pf&%I+cIOIohr|t9gEc!mLL?5VH<2{~j^i$axsmg*lZ` z`F>7h`(Orl59;9W1B9FLer8mCvJx;!VQQ#^C}hsv)xkA1*wd~WAv z_D&q^9LCspyd=)cNwxY_+#Xh0MTFG44bL^1D_dfein+VFYh_dd8E1aSxFo4rYktHW zkY<#7TrLIvOg%1_e0~DVN--qoYqc@(MY-fi6d4n&V*Vf=P#ORhJcRXBnRCU?=3*l! zmP_YVw&N9)Y*pDll~Q`8roE9}j7TI|TOLpD>fgJGs&j(cWJHCq&MKvsO0j@aVa?6U zsMzhjgbEonM&`)5(RBf1gZZ%dMl303N&GnGG#a7`hUdKQ9>9FYpd4?xFBKQrYy_`f zf}}aTVb6`K=l`UEjF5br@~b`VF(BiN((#-I33Zv%rx209Jg0B3-W37)b?-V1leVaj zSIwFAm9TuG#&8M6@Mf}LRgSGsPgb)BR~Qo1xHVGT3JAY~=Q-p0A|^I--fy8gz>gJc zPV;*G?PD&ZjM5Z7w|`gFW*L~2(suvof#!p?Y0ZQ2}i(o+q! zgy~);YpTIT5o1D}NPZy6xPsZde4vl3UC6Q%eE6Umyv_%~EH5YagZ>QZZ^NJ_%!QvH z7$vsEggF+qc z3_fo3J1vu?MgjakqvJi5%mua#Lproe7kSVaA0=cp)xCK9m^yK9P17?haA|q!&{bIc zL;!lMj2>)oDQHf9Kp6dbkOD&O)mVODOkH&U`j~c33Do`0yyn>2EIKE0>_F!90bzRa zHREct?{f~0YrsO^D$ORP)xIUA@S@4O(oo_c2r+s12!{r7mkCi$E+*?>IJoPC5T`LD zX&9e2p;OhjBF6G#6TCd_F?Mu6rnof)4em_{tmODMj$Ah}G;IZ?n6E_$H3buteJTmsX3PQZ~h`|K@cs!G}iOAlWI8~C1365hbP79-wJ!7 z@|RW?a+n8Crm4Snax|vm)ycJe?9SZ$jiR&7UP{ByTkl2-BM~j;uwwH( z8-8hNekh>V=^jh;Z*_a4XwI6;8>jSXSws#yCl5GgEC^ED-1mCmhWtZumkBDxUAhB* zG}u4jp7d~s9BCnHq^W_HGMDd7uFpNDH`9KMfV|J+rZ>>Sz*xq!zx9rABm=E7MXDzY z@W`M%MNaXQY5hzv&KQ%2if|}`=T8q!b1AT|DSOd`!p~)=eJ${PcO3U>Fufmu`Yu|| zDVJq5a!N(uJ^?q0J46(FG>58=-bP3eZ}x>!bx%+%g`-lM^!R-RV@dBcv?z@Q?d=eF zEOWs~sKbz|!|<1u|AT~)b%3XS9O7RoUlvh#I$)BUEvHJq<#`{61u0ZHcuR-6yjgk+VZ-*B8XER&M=8mE8(uK28xP3~nI?*_5@? zP(;vj+!T2=MJt7D2PXw7aa^OQS#T;eKJqV+TtG5e4;X^w^aRl~hEnq!#bY()Q97<< z#p5&LYOVcJQL|ZAgIPo{@-zgceaQ>Qd-Jw4JF^g;KGR=Qne0g*cmO*JcA3DoWOAn-+tmQr+VoVE;>r9cw5Uk~&%?j1r+{Vw$ zGO&aE(X4IEldt&1QuXRqI>V&HUV-appJdzlz1ej%zkkkMQ-fG1-XJxY1@rh+y|H97 z2F{vja4}n37$^`f0b#OS8#E+laLkaHp~n?VBDWCsq{-UO9Qh9vzm)6cQZV108pl56 z&r-*;AU<@?a8{ca&RG>$e-llcc&nqqWQ{ktq>P_A*JL>tZ}~Ica$0ib)8;PF+}p%o z%r)S&QakMytIl7i)x}OTIDMw(w+(!KdNYk}BfpfsSaWJUAOEUmJ-I7L|3*cBz((@P zY`r=1Z&>3-HQ4UR*Usz6w(y(t)@WX=;~&rO9vvo=u$yo&kujD|I+NuAEg{+KZML#K zF&+mU4Vj&EW!sJ>;J_(005;xIUUpr2f)Xz>ggMLj$Lm(q9oTBb2GRpzosri_T4zYR zPSVb~S~}?u?JT59_n3E%w}b z+&jZurM+A$mRj*K8TI@;P%~Sj4CVzVbi`eqT9>|D%fHB&ra7^O2P{lrAMyzc$Az6) zLl(?I#9`M6sd-d~PfDOzdW{Ow6oOvb%>P~(L|$JM4u5xFG(vM>HQ&Ez5sT%Ki))1~ zUQJ?B4au|)kkge2ju36O&ek}+3A2Efm_sZ0+{JaBU0sk_9bEXX#qHTjUb=V=^WkGM z^_p*2@xkr~?;2@2pZ}A|<65jQLg3NO~meNiihQ1%XleXA3XM{E&_3oh&`@ zU13Sm>{>~U>twH_#ubdm(~lV(B%?fsFRea@|9CB|I^x) zMe&#=b8*BhTvC%UeshU`_wCC`)?hah|hJtE<>cT>|&zTMS7Wp$#iElt<_wv?}58ssy78L=wK z$yc>FU)>(L?Z~gciK9PCxaVu-~8DLTR znqdOxM|%XtV&6LwZXq&DrB~)3& zuda-)GFl}WdF@rv=**y1fo<#@H!?{Yu1deF~9;UmFd4oK@pv;8~ zys(P*7P}}ZZtfyVanBZ$kbg^Y0~e7g|C-_oc=(zTbsrGJg5wZ8N-#&>N@*NV>B!nn znhFEsEw&h3a*gJ>Yc{)|l&4{o0Y^MHq`gsVzo=GSMj?8UqMW$zx*wY~$Am$Ogq2|^ zMPluVHTcC_lU{ga(P@AL>p%d5y(Z)|>2nNFx5Mk(@SYKQJ{+l$fJW^1?^#&oy5 zF)t{0kv7VFr|V}|^+jEgQ;q93G;sShTXqtBdM%sBZD{Vc6$qG5!?cDk-0)+S z&e(fWEt)57?5nw-&T}{RU?O+=%%J}$o%}T0&$Q5n2{cl!wWErgoV)w*uAhal4t(-w zwWEGWBfaJEStAWP$pFrRzSSs<%B5UTOxDgWriNH*j=gX&;k1*egj#+IcnXsF>Cg0W zclQxnltEcYwpVVn;5d^TMqZn-zhHzawzHy8x&Z|8*hqm??8>w<1sKpn$IU} zn(NiPJGnW^K=T0`4%*3J_1F{`^ut_5ttl%J1p7{E0%0M6^R}B`d9Rs6eY+#Ck2u$y z#+FX<;^r;UERHYU(n<4UYR-i%Ravv2x{;Faj5e@GlE)6rCgI;D0by$QogM(lO+X$U zfMJ(T&gNCN_F>6<$ktfR>reRBt*;t-bR`*c(iH(uXOVz8o8PuB2IgoRYOUpGw)JJ- z@W3x(SzA8hi~sU9U)JQ)zO1YHeI{S`WqY=b|MKO4W)o(Rh}jX!7!FZt>WKD~Yx0O{ zrH-h?TmF*9^AX#Fef?w-G-q|*Y+6t#`)q@x;p?~eV_)$~2P#*e_i-(9Op&Q$Er&PmYt$L>_8jTG~or+nRB zb8d>9w=aA>k+v**^xnTsAuXw-r6O;K^T~Vs8+#{%B4_W<us`Kf-6ezc<$l1$g z^WfdyeB?J>(a&$bY3cRi6Ig|TECHYNdNNgx^Qn8h94<&pxyN3=I@5tGJD)u|JEnh3 zznG)Hz(QsH`meHnIl6Q6-sYOB?tJdvK-tb?lZ3+}wGM{lhe_6L_tCBly+* z1~!ks*L-2XNF zHdB8V2PksFJRIgo=2}3CLO(ikOB2S@)`;!n55ElvSq%+}v2+0*b2OD+ps?dgplwnJ zdBKl|9UQLtV>DlKaB<+c(Te0*IN6cpEWir)M)9V(UXH$y$b)YC1V+P(icM3pyquRy zCQvEm8u^^u2)2pu$u$HTpoVb2q5;7Gz>3^Fi9gBp(p>w9JLOG6_@w0Z$M=H#H5{UH z>Y+aP79DEp>`Ug>aOW=ht2O_OpbeFK7)3co-g6Wptr0(#zmj#~{SG%qm}eZGPHft+d-CeCy7rwG7j%dSC7ncZ7*ASUwS@_fAHNYY=?sjrm!P? zd4YH0pTnR9*?^p8T5u9sk2cgLDwcMW_S1`2I;Udk454J}JQYJ5ZhJ1-HjKvD5mG+o zHI8<3ruit94&kGYu5hB=9CmPjAMHeY^1_9I2L~&IvQ!PBO@I`ebS(Q|2n}}F<{^rO z@7nSyVQ~nM2fGJ(uOqK}tQ&LVQ;#h~xBoh(k32c(-}*KMD&?@DGej~vm`8yVQ_u`T z@&}Qmo;=|{37VT9@X!B~k=E}6)k1Jm*lZ<7VOF}(*o1*-wkr2Q71PNP3dp4-+YFZ~ zXOt$gF=~oU%HM&YlG@6gc!Z)9n3a1Hv=0uJLRvL zKfpdA#}1%VpSi~XYEvwI3|)#Ex*;CG#7gF{padvT>4Pxh41M@!%O!C@pQ!$Jt@P{rDH>4eEO+zjWSA$Hogd5hw7q7wUVZ_9Dqjh$((J*NcDsqhH!y znNZmYMXKO~r22_kF%uiK-2tpHt_4->#?>bdyCd7UD#m?87NgmCnTT^XB0S#mSbB9G z*)MCGVXrF?>eDly{(T>IfS>(-E^En67Y#LvdMY;WrAG4INgz+V=-uveIzDa$;dhW8P9*rjKKc-h5~mV!uavvo?SITE+J56m8MKjRU`Bg0)r&(PB%7i&^d;wyEd zq9dB>CV6JUv4xmf(hV@$vyZZ1gqdlpkp>rem=QDB__-9U!3fj7^*eAA^aiD%NJZ`d zvfzbUSx*&xRfT;iRZMDS9#zuSN(xm*BZH8%F{ltc3TU#{Fj+gfn0S?+&7S8dE5K46 zJQiaq#HHAXpX)d&kEPuDb8RN^oj*s=^~%p9Ss?Fl)n{U{mV7fqPg`^;AWreZIUs3a zctAwe3nWuI1P1E;6S#r`gRW$>T@)NK5Ka%=Q<=}fzIEwpZK0PQCGuleYdC#MX>c~b zezi92cyYCR4QsS)a$S`o#= z`0Z={j$d?EHalrn6ihS{#E=eS^Q}-TtyIkFYK_uMXOPL{v^PcGjycH4<1(_UN5%&V z(qv6BxEw;qgnatQJjHa>wkrG!>_S{C37Ol+g+xONPIJFBOpBC_!SY%$#}}hd1sh=z z&HhhNAy^%36&#}oX}5hZf`B;ok|4kx)ZE2QLAFzyb3*P^W!6)X1%NRXLOoHV$IE2& zCBNbk%A6Ia!;z6rT||&xAEEwjP?l_Z1D(PrU$0da5u&_xUg^l!UH>5M81|ZG>kv$; zVw|ZlsjkYCYKe@Vj!AW2>f2EXr27Vi9YOWk#Jr>^PO>Ty`zrn7?6pg4!_sEi7 ztXN(}b|8=5V9$bQX2RydUTF)k z3j1F~&y?xiEq|E9&Y9=E!hR*qW7(tE5Iye|sZRBZwG_ekmS0}mxYMn=K9y`pk}|d` zHf-QAw|u-CqPe}9o7&8mPrMaWxlw{-P#gWqx7-R%nEUtJUXDjO9%tSTrmT3{A1Md& zd`0Escnda7((%tp<;l`GnRmA#6IPa;qjxeYl_qfi+qE<^jC5S6_qn`26ic7VeYW3{ zD~VWM4Cp2%nkV0GuBl?g?#7$v-)@OJ@h7(%YVLI4wTtUiX?zprVFVX)Q*r%zfs=djb<{`BfF* zSyZWMi?@Q;qL&p-YQ4obyqu&SDdI$KN6&7K4EX>6b{7EpIVs zFC*{iz1tD)ojX4b|LV7pp&y~q(KD1j3Z;+0B-O@8*{DC0<+Q^eF`DG(xSY1MUjC+v zP9)Lv(z*fYw>MKV%0ehuvX3|V-Ru*AD=qcW(v;Ojm%kk<3$}6V?`@rSQ*j4B|9jwv zm)lUAlk%lx{#*~>1$=M~X0kXMq`R1lCgnoCt-Si6D;3YBnJ_eeb3>z0kR<=zWx2En z2B=3N(zt=taNg~1V8=d{)iA=RS5hK2*sc7ly8%vzsF=gg zqqvod8+qB?0ONitevOaG;w)W%MFReTOG`*6IUg3w-YkaOW&=sy#4ORvHsLLacfM!z zIrE;oib&`szW!cYr^{6Qf#0|n_~G$ZmE1Lf@Gi1m#a%zWtZ-KYc}=M7u9>ahch|=- zppv^TkhnrV=zd_wPXAvuec!6th1~w0yN;5We179})H*FGKMe6(94e4+5NCQSmu%h@y>(uX(oz z0g5yMk{|dh8mmL{gFU!nYgg8;_QxH_OR}y`~$3j-0kA9{P zIMtw%Y|9J#oxE16#y3Cn*8J6g=RWJ~D<{uEVQ*z+(QS2CUgP;BXX=Y|HIy%YK7h^P zCC{^2Ek5B|#V9(^=p+p3(5cZ&2_H)^lva+%wpi8koP*eU&Zhjex z>z0pRS~bN6ZhP68o#CBdg|HKR+^aC(0Fv|e&ogAH^ye8nU(uguJbV=!7*$6xGbIFh zuN)u9m-?%W%Xp91dc9Lez0lW`)wl^@AG768v*oAwu)C%O4_!>h{&v7gckwhH&EutB%+pbAo9f(nyWn61J*Rq(34XLc05}ow3g9-9SKVg23FuhEW^;2C z1TVl7fX{twwkX2;+H6Z4gfyWA3I-4iet6~t%mADSL$(3706YK~Plf?5A-q2X0X_$O z2pAiH4&V+Y5wH>9NWfUY6u`lN+iId6;Pcux+X28tyr(`SJf`1DXN=?lOuY-vARte? z0X%_pvjKlzw=LXedk&Zw2?Jcw1ME<@0j@NG4{+pI7*6f*fD;e+9I%B848rrz2EgZ& zP)GZWDd-S+Fd6Lty`}>1hW3CX(@=2y2o?b*PJ?TzLBR}I2AGi!JYdQK2&4uX=n;nC z0N@6|jDcGDQ9s&Fva3o+x7UTnNTV=Dg zyn;gPYA||YtVOsGFm|2ImI0Wu5n~9rZ3ir_4h09`NMNuu~2cA4{OZ|#eF_3-2VyMz+n}?c$6C9 zfa@Z@^kF^O4$yaFGQq^Pko_wEQMKx06`$Ni3ramG1w1k zbz%$wqd44;wbop#A+Gad^_UL%q=bN^QMRZUIGlk@-WkAIKQqieDp?MuMyp zoBFeGSDiP!3r&s-#PR+t(6tTXxgXWHiYxqC6W1ifX&lurisw*=yI%UU`mVxe5@Y$$#e!0NgtAb=+kqPuuK0D|(wDmB>{ zwppB7lZjNT#m2bl!E_70bezyIM%2|}LE`#atg+h;#P%-4qT^{o*97_*p#_BaestZ@ z&`9O(RvYNC&26@6h;YXtgeLB-gwBq(+0F(5ec6tF4YdDEjm=h%yc6rL8{+OFM4^}h z6X5ee)`2C6^8%S~)v@4mAUC)-5w`}i#u$qq0$FRAI5-^G8I;=m-7Pr)4t*frV zNk<+jL%8@`9oCYK75zh4kn7A;3>fvKwb(I))pM0l4M9`K{Ok;XGQrw>mSA4LxHmfE!F|Y=1 zd6_m_V%TdD4Mq61VaE}{n@3s-v zMLcAveA7ak9x2>t@i|qlwW7+p*4md*!p+v&&)W+nZLrQQih{3lZ#HI29Qyy{Ev#kQ zTi*D~(_a`W2esNSe1zN1T9g;MXm@)Fr(G{E+++&^CCJlQm4v%BQkiL%*Fp9xl(8#zzk@+9BX%ECU zgRb#nuP)$96890;Uh!QnFJxy8{uAzA@eau5^fd~3vnpgh<{**vYZd%*n&0dIjoeF0WA~Ult?2TwPvl&?S zj+wFSC5gY7Sx|LKqVyYp#l1Q#5EhEAU0EEK!(Ls{zoG|5nf#~x6@*>jAhr^5UROvi z68CjwGyL^e6fT;o^lOTRnz$0gm~L!_M*l|4?*^GkB8!IsGsRi)Y&+}-?hZS$#mMe3 zu1K8M9d3Oh-l5tPF{}q$_CNo{IVV66f-we3;txG!?MR4S{L?oZWv!Ip=r;rlZXIaP z7KitQo&>Q<0+^qOkqPo3uT20FTYz3@Dl9b0O(?I^Z)AvK_-1iSFZf&c$|$3!s$^YV zMZf(>(_W?uLT})yzv*Jr-cW^&MQ`*hS)4_+ba7{IbSX)E3ZT(th;93@IDcJ+BHE;i zXcMN0P8ZkqfsYbI&qTHiMsG=!eRL?14f8k7Rod)QqeE=0s7(@^_GL57?_2wExI&KD zr8J|&O}`(3Cokryv&K(B3oa3g-(YE9woIeDBhK%~hGJ2_(+`GYGBxPWn)ny~YLxlE zQ+-msrJ}_sPVG+W7&+Nh9Qs^o2U za_;Z}tV?_Lp}2E3_Br-E;P^)Tbv0|{X`lc4H_(XRFJhR;!mCvLPkM2<$XZvir-3u# S7OGi{)KfOkxB1ffg57XTCUk0}JL&W4f?IJUu2J)V(o8)wTQv)L&Yj zfbhmvYZ)5t-rB&9@au1Ntd|CZM#~+O<%Cqxi8pT(%5=PUo0aSXUe%^MTg~I!E@d9&3j)9sUl;xW9cZ8Q`F#D?M7G1jDc+=DN@<~Z{;iR`yn8O-+UsiY|zCQEM9j7qskPyV|4p_8>7(Ok$m(Ybd?4mhI8NxlVy|4Er+4FKKtHNqETFRw^8SX)2XGc z6Z<+(TT6*4=A26C~dt#6_a92}GZB!~bXL`fAH0g00e%R!f zDg0%?SXE1bKU0sZCGY&AlyHD>jBhe3Tkw#tdJSZ}mP^epa0I}3LV8f}aDvj8Qelhu%>QApL8Ck;tt9!_pK zI~^6CGNL8$r9<_Ox2SU$w7h8O9p=P8OAE*IR9c9uQe|X=$$BULD(wLXcZWrWmO>!u z$bYEYC^!O^k|JexgV*GiTuOuG#ADxk1pcVuM#pM0a9hh~4u7I~sO1w!^l@=F=Izr{ zZWNW+@t;Ptz|dGn^sYT-(UO@D8)+L_HT9nQ@uHEoLLlQ(rM28+lr1UL(N5-LN4+6A zS-R)TkBu^WD3uFrIr=PEmzMCL(cVhRYR)y_=FyEizjm!czygxTB^PYq|fJM$E1-ZcKmX;71q_zG`eE#tZk4 zjbah6wWl&@ulF?>MHG#>%k>p@f{=6&58;qMcN&-A;BL$vgaD_E3vmc1O+kF>xQ=yS ztBBx7$9a0#a_q=gnBuwV5cq9eV6DKvu;cFIBQkr!{UUcLFE#`kgqRZPJaz@N`lP}l zjjsVv%_6y{IWk5Xbc9@7s~0HQ=3jNonc*x5=GKTNe`c2G9%e!DGxE`4s@60{U|eY$3>Vecg=D4jc%R)Yn*>>+7IT)`~1rI zd5N#P*A9KAfGUPY~*bVX2BlCX6#-n!`yjNj+#=`(a^)K)b+3)3a+ z7IGnrcbnWubJu}Sn0#L4L*>fR?$NksAoti+E6DkFO5_u2BbV_Xr}}j&b<6RFLR0QgWpt}By5}*vZu8@iJ*LQO zrn!Gwt=7y;AG{z6S#FDeLsdz(NaV{^yqfYdd9(ChWAZ70AIk}V8B9HT`@r9NbPg&h z4;O(-c}QF}c^K{%lm!Fmo05(9w#nHTqGqF-jOlZDe!Fn)Hm#+0I+FG|?>sFk1)Xpv zZ~xJWoKsL}%9S~#Fj=8n&VJy?`HM2GuMr(EBprmjaL9)jO^e8U9nHxaC2&qVYDJTZ z4CV2Y?X{6A=k?l1Nk#quWaXL%6ph-669KaH1<~e!RugOgOt+;S5OX!)8SV&nWh4*? z72p41h_6y9<+Lt?*V3PL&`C>aWi@~NVPud(mD9F@sNcxcla+n`P&B+fJ;YE;LkaQB zR5es7JaS>E%y}UTD2;}4W0%r6%-2m1NFKaZtzO35!}?2CV8R|j4OqnLtA*s`(8YKMyG(m zDpQ)uG`WVU;}&ih>&5TR=)~^u=$XEn|9s9X-tpnXXNI~j`5e(5jo2OOj1^GY!&lAJ z2MhpGuG3_+gj~!%?rw}Lhr#yz(#!~r_vc*mk)A!|;U8^g@9;ApS+pLTt=4>=HtQs8 zgk?0==r{3{j3AcH-_HnU!}#J1ok6z|W0u=n?_|ntt*4H<0b#UU8aOyxgFRI9x!i}CiYXle_q$b zu`&re2sEw_7SSSa0?O?r5d@tPMXNA*)8== z)>y5%o!l)Qbrjg+h@;VR(j0dO-j{(yp?tynJm```KOt}eqQ}zjW z;;v89m2qqM?VPC^`_+8F{8aWC-#LG5q|<8hU^Y?^J4I-Hv5K^oOFC$f;z7i&9Qi9% z@Wcf{I2R6H&;q;pyamHGE+T)tU;)eFGZzL#maZf<8T!eT(iC(hr6-G4Yp2}KI+_-= ztQ_jeix-AEo^nL>JnqQvE^Nmx@W@58*}Ht}BAw=cEBK&zA5Hv9o*(ZM8m#J+H?W4H z(-4xHK_RUNsdOn|klKC5b(Z&76wkJF!}FXaO>=iS2{$fV{stqH^RQg1TtVGCUUf>c z@`)dZvwXht;{-btaz5mOFMsgy`)o7spF2kr`U$_B8=TLit@BITsZ+bm9D8GP>IIqc6*^88s656JWFdS@A_8l;aXzK;G- zq*o9I@IFE86tYN#pb{^Aq7chKEPkvahpQ6b@OgQY^t2Qw=NfcaeADie@?=`Bl`>Rh zi?r90j?}XyS(=cg{OXb*?_*1eRpBzmqfnzWuKC=3sZXP)GRdshnV?D@x@eS*q7$eo z#YcFjrM=h)zItgEyUG3X8#N7Gq9`IBQse_gXJuT5KBA^Sj!qc7D|~o z5C-Zwv8!jva!F6JKpw7*bW@RAYa?Ig@tA`R*hu~&eoJ}+2YtJ9X_G;ng!mdmg2V)WkIZWl5mkdLmfLs*mgB=t5~p7z1r(VxWu zT;#c$D;7TfYagDld_3#Tw=ehawaP*|GxTZ3ykw-mtSb3q;Ba`0E-FB0>0H}0SDr~y z3MesGt8}B>f|9Y-)gvrKJ`W|u@u(!!_>MPRkys~8C1vr!D-zL}PgexS+Bp2dF5iw+ zOC?Vg#oI_jgevoD5&4v^H_$AJmd5i(E4qeUe-r5@&xCU6Ir)znaZ9Ra;loz;*L<>w zXGF!ZMSOo$Gae!ib@#(Ow45|%S2>Y)E-U#bVi%>n6)&Lj)`}GWYk6C}fc*H^^7a>> zv}$;0)Iu<1ABWT_2$$B4iZrTgCJlg$};#3g8U^z)5pBh?e zl?jISE6l36lNs&1B4#f}<(qO_nBYuT%O9rfYA5NMJm;!m>O4R7>8!ea(N^?y<*93< zTpFW|AR%#mmhlB^Te;lKx03r*p)c{1YtPl0KbOK(EzRZy>-uQI=kn+4y0MGA^LoAR zt1ODsEFa^1D`wATxfM?h7rAb8{_*+{7S4CCZ)+@vWynBD}^~hPm=+=4BFOI%;A4+3k;ME z5urB-n0s*-LEAY;(QuxBRPfU4(rhwyLtY!P;VU&^RC;sE#zeM&mu~E+sXx2W<+Hl1 z+SCiT%j-5JYvO0|o10!X z2}&Uyv$GThF&~kF*#)nqgMc{_OVXXV)8~CyH6QYMGW&>c`uu-X{du#J@4~w9pSQoI8%AvZ5Pp@e2#0*go9u`R9*le#f$d9Z1kEHI z6So0k&6xx?%v7nAf4E}+wgzW+_+pz-wWBLL!Q*x=)FgbskL_$6JL3bgaaf;4(pV;F zuc4nxI4l`dD^rU`!h#e{R#Cc8PBU)+`XSdD^ZSY#G12t4W=HYW^5_ zy)OdlJeh*M*(nJYTYiz@FrRXM7T@V&YGCH)V%;@SdRV53yVj*YZiE8M6>&&lp)|n@{_S zeN~33U?9f2P^ZqPJJJwYs-|H7G>Z@0<;6GeNkKoW_q^p9O9_sF)Ims!CuYlW{^f2@ zyED>{y!&3C#$QiF*H7n<%1`Q>^ls9Tqwr8!y#A*wUia#8%idO+C-r#o-avMcU)wty z8^D2IE(-J=Pg`!c9E*c;P}~Se8x$Y1caO8LJT;{gXiKHP4^G@GdI|@BAoWMC;90Zh zd5K2x(|WwuS3@-^@lyqZ&B;9V^xQ7H$f-cjq)9Z>Tm*x|FG0>9M3=RrG=%$ z_xX)|ZEUI0= zjlBDH@4(qOyVdNNqUE)`T3Q4umE0`;?SW`k&L14m2fDxv;To&70T8UI&0p~7gPt0n zsl4;S2}qxP2m9jba)_QI6L3>q?8;e$I+Kr&yl53V;OcZ-_CRn zlfAqnwNB$}zWokc;bFy-*dP3Cu~+XlDAiOAC}_s)lPG(%nbxUT+Dh6^E?UW1#nSmf zsn#!sD$=ysw$+kbLuridq2(0sb>tmKnvYWC5dQg*PaJ3~hwWQpNk`g`m&^}*Hb@zi zC29(70Hli%I+Cp!OoJU+F<7zjrZ1-mivxf>*llRAqxi_9?=Um}^5}eYyX`SuoEFOe z*|$Bw%4tLAhso&RK}wvYVm~M;>PVW}^890|nt*})*JC-ED+j0^f|Jr_69tNHTWM^@ zf@sQp7k4>x3^mg!Sv5<#O$e!SKAAX>oKZ_`TG1FJmGqI!iH}ZHV$-Bt$~ufiK1CBd z;sQWEG2THFGmzgup5VEuKW-Hy+=wW93EINs^TZPmkweW-cE@whNy?{lC(R-9wL@e- z=)(dJl{93evV@?#8Tf@Kednt=*3UK}xAmhFpJ|CKQ!ed?Eyav-eXyl(jjmb);g*BE zw@UpXR5=81^yO9I|Bzq&F3R1Xv|;wD9W--~(qML%w<>LdZ@WWFeQ^?+S!!T~yr{Gt zi|4d zN&Do`6>UR|X_U6SOTL#&>-mNsy4PPuJEvUzF=L*~NvIKu)_ig*jczVZE!DX6;*U=? z));$H=Cydxi$<5O3e4CkQeX+A7xuM!65p8WnfpUj6cp>_=NRmIPG!t`FXVIekH3nrxPB0C+(8s|n6ht0Vc zs@PXxC$Swe5l3t!xY_bRdU*wfF>kYeuQL$pmuCL;e|oW}yv~nv*fhTAM|}hLRK@4L zBqU#(4BOaxA0C=8?*ql?D5($1*^tk!Y%%l*&cwx0g|6DO5ema{8B=Y09S$#})8L zRE#JPso<0*c2)X7VpQ&;k#!|mxODL>Io9zUO<8`f zpC-mkgV(nq%>JV{9n|?4MJkoKEL*}{P9uwPrPIEv`ax2)!3W(%L@b3jQHka%AFKpio;dzU6Whq zpXpXUr-6*73+-wt$EZ|9tGZ9|BAOZ|d14~4B{UNLCM8@nJj!}8)h@OCqXKAf3|hV4z9*5WT0wpzD}UT@)NK5KaeNjEu7* zUs8ci$!)EZn)TuAQUiw%s0t3}ewP}dM8;l<(eO^(|Ke~qhyQfRJFcx@yYPIUs28HBvW2zcbpFCd_@$={afnFT4iyjuba!!4Kv1f2B_xT%}O!G zmSPb)Ull6fD$xZu?PT;F`Q0l6GH+nVY04dpxmAvnHRjeud2a2J(bK?rNBSIJV318Y ztAL}d+AY)iV1qHc=3^0Jfld2B>WjJtbj_Qn?lR_gBrNStYyt6cQ38^ioT)_QI9O_8 z=S>ae_afy|9TG;&HrD2N3Xf`(eXlBOuLiO$aXQiI17fGZS)=${YS-a* z^QRqXpX=iw7x5hZD#USwv6XVHb(>$w$Nm!H`uqhX6A{rYx4fG#xM5kN%w_1m*@9b% zWL!IkY{n9eZ%_xohl_hTkEQiwPOdGqwn^1V*qz+|1N)hpUx+Ex0yr+61yvCXhgjtd z;>+)9d2EV2Wt#gEdm4NeyY>oJ=Ds91GU|9HTgosrmLGWQYvJCtyh)SNH!0pM=2NbD zd-+4!Cgq|EIr6pFf@%w;N}j6FIezw9MCy<~Uw1eK?`B-zv^VCNX$z&C*^3mD56l+q ztE9ru$mGe&Fqv1)zEkvdlk%{#6E|HC&}=nOq{Gh9B7uP_lDllXL|2NnykO8}%>-U> zy_F`;fE^G%Ze4$i-RHXUCK?X|?^@otPNQEG6<_li<>5`PjmIF=U$cm(!GP^xmZ}WJyCS8-Pan0}^>8*`fW~`23$_4GKw0 ztkIl!rWU^JHD1e|ZX_uev+WY;Vzy9r?BBjS`I6MXU(C+o&M{o=X3tz*O}~7{=v<-=)Pc}4%c~`bj#Zi+V9BQ{!a0Pd*fQL zCBJ$zWJm`H9a%-Sr9}D+Oj1`ol)Ze2tS277Yc$GV>u#cLw%k-z_a@bJg?L70v)z2j zs6&K;CpY+@TPAP8BT2A*ZO`lCUNjvhi_`fxx88Qhpw}7v)vdty?BYn~qJOYh4o6ztV}Mm-48qJky{p;#yXps`xo4+qrK5?LHiW`^@w zw*xz5$JR1)mdvE$feSg=%*fYf?qVgWoP|Q5lyp+_9;q3~uio}^u+VEZe}&hn^g4n2 z|K?|yN3XN-Fj^d?D=$gGUkIr?b&Y}#kL75VBWye22t^Y;N|k*om%iuIelvKl`dhdP zNa+TC`nR_oHqq-wUiVJmdr#Wb>PI}`FV*VDe}AtD*8q9Js2#3tZT}vwEpVV#xYm-o ze4cwJu*1~F?ew~p*OmMn*NcfJ zogW7K*Yy4+zgqb^S@8NTVfS9v^0fUVjHIIEjltT}~aV>M>K?tsxwACRjokvzDv3Y!4^*mJ+Dgt|KH=dS&F!Y#$jWi{u!|4?OM1zTocv%f}gT#bDFxhva44y9;e7pzfPPh>{}7*cqN=p&KUmPK zepBlAbG@yS-^UvfxI(y&X4TJC7pkhN%7CuK{y;7HC-}_YBiK&<+3&d;w@}{VWhY!! zPkR}HBmL@^kquKwPtC745@fCAQfq$sWe0p933!zpIKHvs=H?L8y&%P`v`}Tl&%Iyi zbZt85gg(Z+W(PRa}~qtF`uT+!q`!|h|wd{dyV~QWJIJcF;O>i#^jO1(?^aV zOr&m>?!6C24jZSN?JOLKa$%X814muiBu(bZTLxKQ#cc%&zbUXp#oJ)k|Isc`?wu1tkCeUsI8sthv) z!KUD$s>s$Z`#;+2RYyuxSfN6pQgKkHLW2s^RG6j00u`1JOcn&erm#XK2zOOQDm17t zO@)h8gIQ{OoA{_cYnYkiY_)pgfOest)f%7`1bbJjwRc@XXbrdva0K89z;t))^YHW5 z&48O5fFJM{&RiEfzz_Lbfa3w}>w`}E0Dl2&-N0&fv4_imCjj*gt=0s>11`1`GKCR% z(Sy+22cJLz_W_QFBNqT$1Kt8OlViRRAUxm+K)s*UdJixi(9=N>asZnGE(c5o+zdDf zkp2h3VnBVM)w&NbM+Z5=W8N)y#7N%4#5>~%0t&<*fKO33*5dbe7g|`YPXTk{;D9rF zfUW6fz!OIB0rnmP$HAXG7IeT{fUTX-Gkh9a3wUb++K^A5gbqGo(tfJ8zQ$55d`dw zA8ecfT#g@b*t>&&F(LwZ0dNFhdLHxxE?;4_zI6dFtyhB410fO-LcrE*tkxXB5$iC9 zfXlbR!?a8@BEd9#MTGmtOvwdN1Ms~6JoZ?ZVW zn+34~aT&N+KXJP^Ys(&rH@sO3U!9xPih$Mpneo;Xhul~(vLWlvE{QV%Tu5^TWte?b zk{I2Pd5M(`p<}NY>;t>2D9>s%2m;ydjr`0Pd-%YvL7YNhvbfBLwbeLzil=;77>gDk z`LJ-`exB%mEm=>zw}z!uF~%3FjUZ!uYyO(zZ3M^$ahNY_;cW0icwx!Dm$=541v-yG zLcdGxsp2tT*4#NC3EP?4>&2I7vj{QLkA*uw9A>p{fF}E6;s8I^u5K*y)D@k!FN+d4 z`LSko-2<%Fb%b~jC0_Moq0U*2tkwyHXe2uOL(w)d&Yz8D`Qk=@CQ>Vajdn=|(=`Os zKE6qkXb50I;^_d^%;gf2dk2!yUL>?X&>@Y0jz*4ug|6E_wQr|w;eY2)2 zH*Q6nxs>1twloOnO*V9sK-SE6o5pGlqv#~Nx({}B5)$y5PU9&~31sbAmiT2LYgl&` zxa=ql*P4mvA%@^%K-xNgKLYC?nC%0^4nY_bNgN9_D-kyaVbFz&^>gl zg^MuCYE2}+JJ`^}bkHSX3f`m6r;9IjELc3QW6hkiKCoJElHvalvYTJTzqmUB^YY;| z@x5TyjtSz%U^uW!yc~?=lf=lz0I}lC#;h;;a<(yRTXzvoIr3ONX)ZPhVQ(RyO(87E zc}xa|jQZjreh|XKoG+mrME*1sKMP@PoDX8=%JeDXub{V%zzn`m{PSAiyR55wwx)}# zL9@--)ji48sY_j*|x}PZAP?W(BuKfH|%D0 zvoQIaP_?<;NB>aP)PYRf5`@p%VwWy#iN#uXCLW#Y}fC$m#~^??|TWwc9$6%`?cDy zy@l(JTD;G9(jN8{N}UgB(5P_LuJRW0-Bu9SHV^GHPvKjS1iW9YuYK$#9B823;U%o{ zB&J86TH(OM75nk>G_<%u$_!GF!2EZzXwWLTw;3sfcZFcpbhq2iaJu+ZN^6h^{ltue^$WvCYP zXEVA?Ofs^eF%K&YGTP?TM9dEo`#aty_PvOYSS`>aW@25~8PQ~7(-G98CMz7^*c zE}F0O7lS36xZK60ci41I#VfJs9q81F%nS!m$;@mk{0Qy}KT^fGu5bHvZtQ`0SNv{}(Nk2id#GaHcCu+FQw56#=GSBD>14sYwnx>t3l@fR*gyhw-hT_Yx~lK z*r1T*m13mGTGXle|MlW9k+rR3D+8;@PG+`0a6@F_ GcK;8e^S>Ve diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_class_generator.cc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_class_generator.cc index 302b1b6499c..e413007bf7b 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_class_generator.cc +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_class_generator.cc @@ -328,17 +328,23 @@ void ClassGenerator::generateParseMethods(io::Printer *printer) const { printer->Print(vars, "fun parseFromWithSize(input: CodedInputStream, expectedSize: Int): $builderName$ {\n"); printer->Indent(); - printer->Print("while(parseFieldFrom(input)) {\n"); + + // read while we won't exceed expected amount of bytes + printer->Print("while(getSize() < expectedSize) {\n"); printer->Indent(); - printer->Print("if (getSize() == expectedSize) { break }\n"); - vars["dollar"] = "$"; - printer->Print(vars, - "if (getSize() > expectedSize) { " - "throw InvalidProtocolBufferException(\"Error: expected size of message $dollar$expectedSize, but have read at least $dollar${getSize()}\") " - "}\n"); + + printer->Print("parseFieldFrom(input)\n"); + printer->Outdent(); // while-loop; printer->Print("}\n"); + // check if we read more than expected + vars["dollar"] = "$"; + printer->Print(vars, + "if (getSize() > expectedSize) { " + "throw InvalidProtocolBufferException(\"Error: expected size of message $dollar$expectedSize, but have read at least $dollar${getSize()}\") " + "}\n"); + printer->Print("return this\n"); printer->Outdent(); // function body diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc index a1094b6681b..ba059ba5acb 100644 --- a/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/src/kotlin_field_generator.cc @@ -194,8 +194,15 @@ void FieldGenerator::generateSerializationCode(io::Printer *printer, bool isRead vars["fieldNumber"] = std::to_string(getFieldNumber()); vars["dollar"] = "$"; + // We will create some temporary variables + // So we place following code into separate block for the sake of hygiene + printer->Print("run {\n"); + printer->Indent(); + // read tag - printer->Print(vars, "input.readTag($fieldNumber$, WireType.LENGTH_DELIMITED)\n"); + if (!noTag) { + printer->Print(vars, "input.readTag($fieldNumber$, WireType.LENGTH_DELIMITED)\n"); + } // read expected size printer->Print(vars, "val expectedSize = input.readInt32NoTag()\n"); @@ -209,6 +216,8 @@ void FieldGenerator::generateSerializationCode(io::Printer *printer, bool isRead "throw InvalidProtocolBufferException (" "\"Expected size $dollar${expectedSize} got $dollar${$fieldName$.getSize()}" "\") }\n"); + printer->Outdent(); + printer->Print("}\n"); } else { vars["fieldNumber"] = std::to_string(getFieldNumber()); diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/Direction.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/Direction.proto new file mode 100644 index 00000000000..ca614a16ea6 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/Direction.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "Direction"; + +message DirectionRequest { + enum Command { + stop = 0; + forward = 1; + backward = 2; + left = 3; + right = 4; + } + Command command = 1; +} + +message DirectionResponse { + int32 code = 1; + string errorMsg = 2; +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/connect.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/connect.proto new file mode 100644 index 00000000000..49df5b9aaa9 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/connect.proto @@ -0,0 +1,17 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "Connect"; + +message ConnectionRequest { + string ip = 1; + int32 port = 2; +} + +message ConnectionResponse { + int32 uid = 1; + int32 code = 2; + string errorMsg = 3; + +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/cross-branch-access.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/cross-branch-access.proto new file mode 100644 index 00000000000..6afa75ac85d --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/cross-branch-access.proto @@ -0,0 +1,24 @@ +syntax = "proto3"; + +message Grandfather { + message FatherLeft { + message SonLeftLeft { + FatherLeft father = 1; + Grandfather.FatherRight.SonRightLeft brother = 2; + } + + message SonLeftRight { + string foo = 3; + } + } + + message FatherRight { + message SonRightLeft { + string bar = 4; + } + + message SonRightRight { + Grandfather.FatherLeft.SonLeftRight brother = 5; + } + } +} \ No newline at end of file diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/direction.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/direction.proto new file mode 100644 index 00000000000..ca614a16ea6 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/direction.proto @@ -0,0 +1,21 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "Direction"; + +message DirectionRequest { + enum Command { + stop = 0; + forward = 1; + backward = 2; + left = 3; + right = 4; + } + Command command = 1; +} + +message DirectionResponse { + int32 code = 1; + string errorMsg = 2; +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/error.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/error.proto new file mode 100644 index 00000000000..6e4e1a4f6f4 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/error.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "ErrorP"; + +message Error { + string errorMessage = 1; + int32 errorCode = 2; +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/location.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/location.proto new file mode 100644 index 00000000000..0d477c8217e --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/location.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "Location"; + +message LocationResponse { + + LocationData locationResponseData = 1; + int32 code = 2; + string errorMsg = 3; + + message LocationData { + double x = 1; + double y = 2; + double angle = 3; + } +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route.proto new file mode 100644 index 00000000000..864845be2f0 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route.proto @@ -0,0 +1,19 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "Route"; + +message RouteRequest { + repeated WayPoint way_points = 1; + + message WayPoint { + double distance = 2; + double angle_delta = 3; + } +} + +message RouteResponse { + int32 code = 1; + string errorMsg = 2; +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/routeDone.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/routeDone.proto new file mode 100644 index 00000000000..5fe75d274f2 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/routeDone.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "RouteDone"; + +message RouteDoneResponse { + int32 code = 1; + string errorMsg = 2; +} diff --git a/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route_done.proto b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route_done.proto new file mode 100644 index 00000000000..5fe75d274f2 --- /dev/null +++ b/proto/compiler/google/src/google/protobuf/compiler/kotlin/test/route_done.proto @@ -0,0 +1,10 @@ +syntax = "proto3"; +package carkot; + +option java_package = "proto.car"; +option java_outer_classname = "RouteDone"; + +message RouteDoneResponse { + int32 code = 1; + string errorMsg = 2; +}