On Wednesday, 18 September 2013 at 13:42:37 UTC, bearophile wrote:
Namespace:

Code:
----
const { /// [1]
        int a = 3;
}

void main()
{
        const { /// [2]
                int b = 4;
        }
}
----

Why is [1] allowed, but not [2]?

Think about what this does:

void main() {
    {
        int b = 4;
    }
}


It creates a new scope inside the function. How do you tell apart the syntax to create a new scope from having a "group tagging" as in the global case?

Bye,
bearophile

If a type modifier is in front of '{' it's a group tagging, otherwise a scope.

Reply via email to