Thanks so far. I have another one, though. Not trying to tease people, I really don't know ;-).

This compiles and runs:

immutable int a = (int val) {
        if(1 == 1) {
                return val;
        } else {
                return 456;
        }
}(123); 
        
writeln(a);

Whereas this does not compile:

immutable int b = (int) {
        if(1 == 1) {
                return 123;
        } else {
                return 456;
        }
}(); // line x  

However, this does compile and displays correctly 123:

immutable int b = (int) {
        if(1 == 1) {
                return 123;
        } else {
                return 456;
        }
}(1); // line y 
                
writeln(b);

Note it says () in line x and (1) in line y. The (1) in line y is redundant, but the stuff then compiles.

Reply via email to