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.




Reply via email to