Description
The situation so far was that we have a menagerie of Y flags that enabled non-standard feature and and associated menagerie of meandering test scripts that enabled these flags for specific tests.
Language imports promised to change all that. Instead of having a test in some magic location or with some magic invocation, we specify the assumptions of the test in the test sourcecode itself. This works great, and would be an ideal mechanism to try out future language features in tests.
Unfortunately we shot ourselves in the foot with #11852. Now, experimental imports are disabled for normal tests. What you have to do is
- add the language import
- put the test in some special directory where all experimental features are enabled
- adapt the test script to special treat this directory. If we decide we need an experimental import for a new class of tests, we need to create the directory, put the new test in it, and change the test runner script to recognize that directory.
I find that bureaucracy unbearable. It will lead to everyone reverting to special flags for experimental features which conveniently avoid the language import overhead. And that in turn will lead to experimental features that are completely unchecked, since only language imports are checked but not flags.
So, in summary #11852 achieves exactly the opposite of what it was supposed to achieve: It makes dealing with experimental features so burdensome,that everybody will take evasive action.
I think we need to solve this before we go into RC2.