https://issues.dlang.org/show_bug.cgi?id=14035
--- Comment #14 from Kenji Hara <[email protected]> --- (In reply to yebblies from comment #12) > This is sort of the whole point of VRP I think it's a problem in the current implemented semantics of VRP. Applying VRP beyond the "type categories" will introduce human unfriendly behavior. > The implicit conversion from int (etc) to char is useful and intentional. It's useful only when it does not break user intentional. Otherwise it would be harmful. > Even if you wanted to make 'explicitly' typed > declarations differently, these would have to be treated the same: > > enum c = 'a' + 1; // no explicit type, but will be inferred as int > enum int d = 'a' + 1; // explicitly typed as int > enum x = "xxx" ~ c ~ d; I think above code should be error. If user want to make a character by the expression 'a' + 1, c and d should be declared with char type. And it will be consistent with runtime code behavior. auto c = 'a' + 1; int d = 'a' + 1; auto x = "xxx" ~ c ~ d; // Error: incompatible types: 'string' and 'int' --
