[Issue 104] Forward reference error occurs when the -g switch is invoked
Bradley Smith
user at domain.invalid
Mon Oct 2 18:31:24 PDT 2006
clayasaurus wrote:
> Walter Bright wrote:
>> d-bugmail at puremagic.com wrote:
>>> http://d.puremagic.com/issues/show_bug.cgi?id=104
>>> ------- Comment #4 from clayasaurus at gmail.com 2006-09-28 09:17 -------
>>> This issue prevents being able to produce debug info if you use
>>> DerelictFreeType library, which is a pretty big issue for a number of
>>> D game
>>> developers. Who knows how many times I've explained this bug. I'd
>>> suggest this
>>> as a 1.0 blocker.
>>
>> Why is it a blocker when it is illegal code anyway? (Foo is undefined.)
>
> Here is another example, I'm not sure if it is much better.
>
>
> struct FT_Var_Named_Style{
> T1_Decoder_Callback f;
> }
>
> alias int function( T1_DecoderRec decoder ) T1_Decoder_Callback;
What I don't understand is why the code above does not give an
"T1_DecoderRec undefined" error. Doesn't the compiler require the types
of arguments in function statements to be defined?
This incorrectly compiles without errors. It should give a Foo undefined
error. With -g, compiling gives a Foo forward reference error.
Foofunc f;
alias int function(Foo) Foofunc;
This correctly doesn't compile. It gives a Foo undefined error.
alias int function(Foo) Foofunc;
Foofunc f;
This correctly compiles, but with -g, gives a Foo forward reference error.
Foofunc f;
alias int function(Foo) Foofunc;
alias int Foo;
There appear to be two bugs: the forward reference error, and the
mishandling of the argument types in function aliases.
More information about the Digitalmars-d-bugs
mailing list