On Sat, Jun 22, 2013 at 4:15 PM, Timon Gehr <timon.g...@gmx.ch> wrote:
> On 06/23/2013 12:55 AM, H. S. Teoh wrote: > >> On Sat, Jun 22, 2013 at 10:57:53PM +0200, Jacob Carlborg wrote: >> >>> On 2013-06-22 18:40, H. S. Teoh wrote: >>> >>> Yeah that one made my eyes glaze over. I still have trouble wrapping my >>>> brain around the strange syntax of is(), and why its diverse uses have >>>> been shoehorned into deceptively similar syntax. >>>> >>> >>> Isn't quite a lot of the is-expression features undocumented? >>> >> [...] >> >> >> Really? Well, even if so, the cases that *are* currently documented >> share a lot of syntax, but aren't necessarily related in a way that the >> syntax might imply. This is very confusing. One example that comes to >> mind is using is(T _ == U) instead of is(T == U). I'm guessing most >> people don't even know what the difference is, or why a dummy identifier >> _ has to be added. >> >> >> T >> >> > It's not a dummy identifier. It introduces _ as an alias to T if used > inside a static if condition. Otherwise there is no difference. > > > void main(){ > static if(is(int _ == int)){ > _ x; > } > static assert(is(typeof(x)==int)); > } > > I don't know what the point of this feature is. > > There used to be the issue that some forms of is were only available when > the alias identifier was used. This has been fixed. > if that the case can we add it to http://dlang.org/deprecate.html (as 'future' deprecation)?