com php-langspec: Restrict LHS of assignments to variable: spec/10-expressions.md spec/19-grammar.md
[email protected] (Nikita Popov) Tue, 15 Nov 2016 21:29:10 +0000
| Newsgroups | php.standards.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: 9c1e9d1aa1de4f1f82498ab210095d3a76e2521d=0AAuthor: Nikita Pop= ov <[email protected]> Tue, 15 Nov 2016 22:29:10 +0100=0AParents: 4bc= 7c825be72d52b3b4ecace46828d16c69ce7b1=0ABranches: master=0A=0ALink: = http://git.php.net/?p=3Dphp-langspec.git;a=3Dcommitdiff;h=3D9c1e9d1aa1de4f1= f82498ab210095d3a76e2521d=0A=0ALog:=0ARestrict LHS of assignments to variab= le=0A=0AChanged paths:=0A M spec/10-expressions.md=0A M spec/19-grammar= .md=0A=0A=0ADiff:=0Adiff --git a/spec/10-expressions.md b/spec/10-expressio= ns.md=0Aindex bd022a4..55891de 100644=0A--- a/spec/10-expressions.md=0A+++ = b/spec/10-expressions.md=0A@@ -2882,12 +2882,14 @@ These operators associat= e right-to-left.=0A =0A <pre>=0A <i>simple-assignment-expression:</i>=0A-= <i>unary-expression</i> =3D <i>assignment-expression</i>=0A+ <i>va= riable</i> =3D <i>assignment-expression</i>=0A+ <i>list-intrinsic</i> = =3D <i>assignment-expression</i>=0A </pre>=0A =0A **Defined elsewhere**= =0A =0A-* [*unary-expression*](#general-4)=0A+* [*variable*](#variables)=0A= +* [*list-intrinsic*](#list)=0A * [*assignment-expression*](#general-5)=0A = =0A **Constraints**=0A@@ -2950,18 +2952,16 @@ $a =3D new C; // make $a poin= t to the allocated object=0A =0A <pre>=0A <i>byref-assignment-expression:= </i>=0A- <i>unary-expression</i> =3D & <i>assignment-expression</i>= =0A+ <i>variable</i> =3D & <i>assignment-expression</i>=0A </pre>=0A = =0A **Defined elsewhere**=0A =0A-* [*unary-expression*](#general-4)=0A+* [*= variable*](#variables)=0A * [*assignment-expression*](#general-5)=0A =0A **= Constraints**=0A =0A-*unary-expression* must designate a variable.=0A-=0A *= assignment-expression* must be an lvalue or a call to a function that=0A re= turns a value byRef.=0A =0A@@ -2994,7 +2994,7 @@ $b =3D& g2(); // make = $b an alias to "xxx"=0A =0A <pre>=0A <i>compound-assignment-expression:</= i>=0A- <i>unary-expression compound-assignment-operator assignment-e= xpression</i>=0A+ <i>variable compound-assignment-operator assignmen= t-expression</i>=0A =0A <i>compound-assignment-operator: one of</i>=0A = **=3D *=3D /=3D %=3D +=3D -=3D .=3D <<=3D >>=3D &=3D ^=3D |=3D= =0A@@ -3002,7 +3002,7 @@ $b =3D& g2(); // make $b an alias to "xxx"=0A = =0A **Defined elsewhere**=0A =0A-* [*unary-expression*](#general-4)=0A+* [*= variable*](#variables)=0A * [*assignment-expression*](#general-5)=0A =0A **= Constraints**=0Adiff --git a/spec/19-grammar.md b/spec/19-grammar.md=0Ainde= x 493f364..beb6cf5 100644=0A--- a/spec/19-grammar.md=0A+++ b/spec/19-gramma= r.md=0A@@ -673,13 +673,14 @@ The grammar notation is described in [Grammars= section](09-lexical-structure.md#=0A <i>compound-assignment-expression= </i>=0A =0A <i>simple-assignment-expression:</i>=0A- <i>unary-expressi= on</i> =3D <i>assignment-expression</i>=0A+ <i>variable</i> =3D <i>a= ssignment-expression</i>=0A+ <i>list-intrinsic</i> =3D <i>assignment-e= xpression</i>=0A =0A <i>byref-assignment-expression:</i>=0A- <i>unary-= expression</i> =3D & <i>assignment-expression</i>=0A+ <i>variable</i>= =3D & <i>assignment-expression</i>=0A =0A <i>compound-assignment-expr= ession:</i>=0A- <i>unary-expression compound-assignment-operator ass= ignment-expression</i>=0A+ <i>variable compound-assignment-operator = assignment-expression</i>=0A =0A <i>compound-assignment-operator: one of<= /i>=0A **=3D *=3D /=3D %=3D +=3D -=3D .=3D <<=3D >>=3D &=3D ^= =3D |=3D=0A