Error "Outer Function Context is Needed" when class declared in unittest

Jim Balter Jim at Balter.name
Sun Jan 21 09:52:11 UTC 2024


On Thursday, 5 January 2023 at 13:47:24 UTC, Adam D Ruppe wrote:
> On Thursday, 5 January 2023 at 13:27:23 UTC, Vijay Nayar wrote:
>> Why is this error only found when declaring a class in the 
>> unittest?
>
> A unittest is just a special function, it can run code and have 
> local variables.
>
> classes and structs declared inside it have access to those 
> local contexts, which it calls the outer function context.
>
> Make the outer class `static` too to lift it out of this and 
> your error should go away.

Why doesn't the compiler just create the instance with the 
correct context pointer? And if it won't, how does one provide 
it? I have a template function which creates new instances of a 
type that is an argument to the template, and it fails miserably 
when the type is a nested class. How do I create such instances?

Dlang is supposed to be "turtles all the way down", but I keep 
finding that to be far from reality.


More information about the Digitalmars-d-learn mailing list