spec: What is the definition of a symbol?
Paul Backus
snarwin at gmail.com
Sat Nov 21 00:34:46 UTC 2020
On Saturday, 21 November 2020 at 00:02:15 UTC, Basile B. wrote:
> On Friday, 20 November 2020 at 21:23:24 UTC, Paul Backus wrote:
>>
>> A symbol is not a declaration. `int x;` is a declaration, but
>> `x` by itself is not.
>
> `int x;` is a variable declaration. Variable declarations are
> all symbols (DSymbol in the compiler). `x` in this case
> represents the symbol name, `int` its type.
You're confusing the map for the territory. The fact that
`Declaration` is a subclass of `Dsymbol` in the DMD frontend does
not necessarily mean that a declaration *is* a symbol from the
perspective of the language spec.
For example, `StaticAssert` is also a subclass of `Dsymbol`, but
I don't think anyone would seriously argue that `static assert(x
== y)` is a symbol.
More information about the Digitalmars-d
mailing list