On Saturday, 3 August 2013 at 10:31:47 UTC, Peter Alexander wrote:
On Saturday, 3 August 2013 at 10:26:53 UTC, Andre Artus wrote:
What would be the correct forum to discuss a possible
correction to the D Language specification?
Do you want to discuss it, or just report it?
If it looks like an error, then just report the issue to the D
bug database:
http://d.puremagic.com/issues/enter_bug.cgi?product=D (select
the "websites" component)
If you're not sure if it's an error, then you could discuss it
in this forum, although it might be better just to report the
bug anyway. If it's not an error then someone will just close
it, hopefully explaining why it's not an error :-)
It looks like a error to me, which may not be saying a whole lot.
The "static import ImportList ;" production given in
'ImportDeclaration'[http://dlang.org/module.html#ImportDeclaration]
seems redundant because it is already covered by
'AttributeSpecifier'[http://dlang.org/attribute.html#AttributeSpecifier].
I don't know whether this is:
- an artefact of a previous incarnation of the language spec,
- a conscious decision to redundantly document the attribute
specifiers on 'import',
- or that being awake for more than 24 hours is not a good time
to be reading language specs.
ImportDeclaration:
import ImportList ;
static import ImportList ; //** seems redundant
Already specified in
AttributeSpecifier:
Attribute :
Attribute DeclarationBlock
Attribute:
// ...
ProtectionAttribute
**static**
// ...
I'm not sure that I am explaining this properly as it seems that
at least 2 different people were under the impression I was
making a point quite different from the one I was trying to make.
But, if you follow the grammar as it's currently written then the
following should be valid D (assuming the parser correctly deals
with the conflicting 'static' terminals):
static { // 'static' from AttributeSpecifier
static import teleport; // 'static' from ImportDeclaration
}
--AND--
static: // 'static' from AttributeSpecifier
static import teleport; // 'static' from ImportDeclaration
You could still parse the above after removing the 'static import
ImportList ;' production from ImportDeclaration: it would just
unambiguously go through AttributeSpecifier.