About array initializer of Java style for Groovy 3

classic Classic list List threaded Threaded
12 messages Options
12
Reply | Threaded
Open this post in threaded view
|

About array initializer of Java style for Groovy 3

Daniel Sun
Hi all,

       Java supports specifing initial values while creating arrays, e.g. `new int[] {1, 2, 3}`, `new String[] { hello(), world() }`, etc. I plan to add this syntax for Groovy 3 to improve the compatibility between Groovy and Java.

       Any thoughts?

Cheers,
Daniel.Sun
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Andres Almiray
Can this feature be added without the parser getting confused with {1, 2, 3}, thinking it's a closure instead of an initializer?
AFAIK this is the same reason why instance initializers are not supported by Groovy.

If it can be done then great! This would remove one gotcha when migratation Java code to Groovy :-)

Cheers,
Andres

-------------------------------------------
Java Champion; Groovy Enthusiast
http://jroller.com/aalmiray
http://www.linkedin.com/in/aalmiray
--
What goes up, must come down. Ask any system administrator.
There are 10 types of people in the world: Those who understand binary, and those who don't.
To understand recursion, we must first understand recursion.

On Tue, Jan 24, 2017 at 8:14 AM, Daniel Sun <[hidden email]> wrote:
Hi all,

       Java supports specifing initial values while creating arrays, e.g.
`new int[] {1, 2, 3}`, `new String[] { hello(), world() }`, etc. I plan to
add this syntax for Groovy 3 to improve the compatibility between Groovy and
Java.

       Any thoughts?

Cheers,
Daniel.Sun



--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941.html
Sent from the Groovy Dev mailing list archive at Nabble.com.

Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Daniel Sun
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse `{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Guillaume Laforge
Administrator
What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform

Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Daniel Sun
closure



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Daniel Sun
In reply to this post by Guillaume Laforge
or we just support new int[] {1,2,3}  ?



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Andres Almiray
I think we should support only explicit array initilization with array type, that is "new int[] { 2 }" for compatibility's sake. 

Sent from my iPhone

On 24 Jan 2017, at 09:59, Daniel Sun <[hidden email]> wrote:

or we just support new int[] {1,2,3}  ?



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML


View this message in context: Re: About array initializer of Java style for Groovy 3
Sent from the Groovy Dev mailing list archive at Nabble.com.
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Guillaume Laforge
Administrator
Good point.
We should definitely avoid confusion as much as possible, and avoid introducing ambiguities.

On Tue, Jan 24, 2017 at 10:12 AM, Andres Almiray <[hidden email]> wrote:
I think we should support only explicit array initilization with array type, that is "new int[] { 2 }" for compatibility's sake. 

Sent from my iPhone

On 24 Jan 2017, at 09:59, Daniel Sun <[hidden email]> wrote:

or we just support new int[] {1,2,3}  ?



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML


View this message in context: Re: About array initializer of Java style for Groovy 3
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform

Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Daniel Sun
+1



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 下午5:19写道:

Good point.
We should definitely avoid confusion as much as possible, and avoid introducing ambiguities.

On Tue, Jan 24, 2017 at 10:12 AM, Andres Almiray <[hidden email]> wrote:
I think we should support only explicit array initilization with array type, that is "new int[] { 2 }" for compatibility's sake. 

Sent from my iPhone

On 24 Jan 2017, at 09:59, Daniel Sun <[hidden email]> wrote:

or we just support new int[] {1,2,3}  ?



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML


View this message in context: Re: About array initializer of Java style for Groovy 3
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737949.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML
Reply | Threaded
Open this post in threaded view
|

Re: About array initializer of Java style for Groovy 3

Remi Forax
Also note that in Java
  Integer[] o =  { 3 }; and int[] o =  { 3 };
both work but
  Object o =  { 3 };
does not compile because the syntax '{' '}' with no explicit array type do inference (and here Object is not an array so the inference fails).

Supporting only explicit array initialization seems to be the right choice !

Rémi


De: "Daniel Sun" <[hidden email]>
À: [hidden email]
Envoyé: Mardi 24 Janvier 2017 10:42:03
Objet: Re: About array initializer of Java style for Groovy 3
+1



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 下午5:19写道:

Good point.
We should definitely avoid confusion as much as possible, and avoid introducing ambiguities.

On Tue, Jan 24, 2017 at 10:12 AM, Andres Almiray <[hidden email]> wrote:
I think we should support only explicit array initilization with array type, that is "new int[] { 2 }" for compatibility's sake. 

Sent from my iPhone

On 24 Jan 2017, at 09:59, Daniel Sun <[hidden email]> wrote:

or we just support new int[] {1,2,3}  ?



在 "Guillaume Laforge [via Groovy]" <ml-node+[hidden email]>,2017年1月24日 16:54写道:

What happens for def a = { 2 }, is it parsed as a closure or an array initializer?

On Tue, Jan 24, 2017 at 9:52 AM, Daniel Sun <[hidden email]> wrote:
Hi Andres,

       Parrot can parse ` def a = {1, 2, 3}` properly, but it can not parse
`{1, 2, 3}`, which is not supported by Java too.

       This is the initial implementation :)
https://github.com/danielsun1106/groovy-parser/commit/96e6c923a4d09d48448f8731a314c918ee6c0e7c


Cheers,
Daniel.Sun




--
View this message in context: http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737944.html
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737945.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML


View this message in context: Re: About array initializer of Java style for Groovy 3
Sent from the Groovy Dev mailing list archive at Nabble.com.



--
Guillaume Laforge
Apache Groovy committer & PMC Vice-President
Developer Advocate @ Google Cloud Platform




If you reply to this email, your message will be added to the discussion below:
http://groovy.329449.n5.nabble.com/About-array-initializer-of-Java-style-for-Groovy-3-tp5737941p5737949.html
To unsubscribe from About array initializer of Java style for Groovy 3, click here.
NAML


View this message in context: Re: About array initializer of Java style for Groovy 3
Sent from the Groovy Dev mailing list archive at Nabble.com.
12