Thread overview
Implicit cast rules of dynamic array
Sep 03, 2011
Erik Baklund
Sep 04, 2011
Daniel Murphy
Sep 04, 2011
Erik Baklund
Sep 04, 2011
Daniel Murphy
September 03, 2011
Hi,

Do anybody know if the implicit casting rules of float[] in the example below, works as intended?

E.

--

// dmd v2.054
module main;

struct MyStruct
{
	void funOpAssign(float[1u] data) { }
	void opOpAssign(string op)(float[1u] data) if(op=="<<") { }
}

int main(string[] argv)
{
	MyStruct s;
	float[1u] a = [1.0f]; // Compiles
	s.funOpAssign([1.0f]); // Compiles
	s <<= [1.0f]; // Issue: Does not compile
	s <<= cast(float[1u])[1.0f]; // Compiles

	return 0;
}
September 04, 2011
No, this is http://d.puremagic.com/issues/show_bug.cgi?id=4953

"Erik Baklund" <ebaklund@hotmail.com> wrote in message news:j3u33n$1f87$1@digitalmars.com...
> Hi,
>
> Do anybody know if the implicit casting rules of float[] in the example
> below,
> works as intended?
>
> E.
>
> --
>
> // dmd v2.054
> module main;
>
> struct MyStruct
> {
> void funOpAssign(float[1u] data) { }
> void opOpAssign(string op)(float[1u] data) if(op=="<<") { }
> }
>
> int main(string[] argv)
> {
> MyStruct s;
> float[1u] a = [1.0f]; // Compiles
> s.funOpAssign([1.0f]); // Compiles
> s <<= [1.0f]; // Issue: Does not compile
> s <<= cast(float[1u])[1.0f]; // Compiles
>
> return 0;
> }


September 04, 2011
Thanks!
Ouch, the regression is still not fixed after almost one year.
I have put a vote on it.
E.
September 04, 2011
The good news is there are two possible patches that should fix it.

"Erik Baklund" <ebaklund@hotmail.com> wrote in message news:j3v9dk$ero$1@digitalmars.com...
> Thanks!
> Ouch, the regression is still not fixed after almost one year.
> I have put a vote on it.
> E.