Thread overview
array of elements of various subclasses
Nov 07, 2010
spir
Nov 07, 2010
Jesse Phillips
Nov 07, 2010
Don
November 07, 2010
Hello,


Say I have some subclasses of Pattern. When I try to write
	Pattern[] patterns = [x,y,z];
I get an error because, apparently, D types the array according to the class of z (Choice is here the type of z):

DeeMatch.d(473): Error: cannot implicitly convert expression (x) of type DeeMatch.Pattern to DeeMatch.Choice
DeeMatch.d(473): Error: cannot implicitly convert expression (y) of type DeeMatch.Pattern to DeeMatch.Choice
DeeMatch.d(473): Error: cannot implicitly convert expression ([(__error),(__error),z]) of type Choice[] to Pattern[]

Is this interpretation correct? And what can I do?

Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com

November 07, 2010
spir Wrote:

> Hello,
> 
> 
> Say I have some subclasses of Pattern. When I try to write
> 	Pattern[] patterns = [x,y,z];
> I get an error because, apparently, D types the array according to the class of z (Choice is here the type of z):
> 
> DeeMatch.d(473): Error: cannot implicitly convert expression (x) of type DeeMatch.Pattern to DeeMatch.Choice
> DeeMatch.d(473): Error: cannot implicitly convert expression (y) of type DeeMatch.Pattern to DeeMatch.Choice
> DeeMatch.d(473): Error: cannot implicitly convert expression ([(__error),(__error),z]) of type Choice[] to Pattern[]
> 
> Is this interpretation correct? And what can I do?
> 
> Denis
> -- -- -- -- -- -- --
> vit esse estrany ☣
> 
> spir.wikidot.com
> 


Pattern[] patterns = [x,y,cast(Pattern)z];
November 07, 2010
spir wrote:
> Hello,
> 
> 
> Say I have some subclasses of Pattern. When I try to write
> 	Pattern[] patterns = [x,y,z];
> I get an error because, apparently, D types the array according to the class of z (Choice is here the type of z):
> 
> DeeMatch.d(473): Error: cannot implicitly convert expression (x) of type DeeMatch.Pattern to DeeMatch.Choice
> DeeMatch.d(473): Error: cannot implicitly convert expression (y) of type DeeMatch.Pattern to DeeMatch.Choice
> DeeMatch.d(473): Error: cannot implicitly convert expression ([(__error),(__error),z]) of type Choice[] to Pattern[]
> 
> Is this interpretation correct? And what can I do?
> 
> Denis
> -- -- -- -- -- -- --
> vit esse estrany ☣
> 
> spir.wikidot.com

Yes, that's a known bug. It's on the to-do list.