Cannot check function address

frame frame86 at live.com
Wed May 25 02:06:54 UTC 2022


On Wednesday, 25 May 2022 at 01:23:56 UTC, Steven Schveighoffer 
wrote:

> "of course" I have no idea what your real code looks like, 
> unless you post the real code.
>
> While I get the point of trying to slim down the example to 
> something postable, a very common problem with this kind of 
> self-trimming is that you end up trimming out the problematic 
> code. Why? Because if you noticed the problematic code, you 
> wouldn't be posting here, you would just fix it. This, in fact, 
> happens to me frequently.
>
> Now, it's also possible that there is an actual compiler bug 
> here, it certainly seems like it could be, but a full 
> (non-)working example would be useful.
>
> I still highly recommend trying code like:
>
> ```d
> import std.traits;
> pragma(msg, fullyQualifiedName!fun);
> ```
>
> inside the place where your assert is failing. To me, if it's 
> using the expected symbol for `fun` (or whatever it's called), 
> then it should print the definition you expect from the module 
> you expect. If not, maybe there is a name conflict, and it's 
> picking the wrong one? These problems can be tricky to find.
>
> -Steve

Sorry, this was not affront, it was meant as my POV that you may 
have problems to get my problem because I have (as usually) 
forgot to make this more visible that some code was truncated.

I tried your suggestion, as replied to Adam - the symbol is 
unique and it shows that correct location. It's not different 
from the error message.

However, this error has nothing to do with `assert()`. In fact 
the compiler allows nothing than invocation or this error will be 
triggered. Even that fails:

```d
// same error:
auto test = cast(void*)fun;
```



More information about the Digitalmars-d-learn mailing list