 One thing I've never particularly understood is IdaCore's approach to cross-references with their tooling. And as a result of their decisions, there's a large amount of tooling that just simply is restricted in what it can do. I think that's probably the nicest way to put it. So what do I mean by this? Well, let's highlight this. And you see, it can't actually get the reference for it. In fact, where it's declared just simply doesn't make any sense. It's declared at the zeroth character of nothing. Okay, I suppose for a default you could just say the cross-reference info not up to date. This is a guess and nothing. But what? It's... I clicked on the wrong one. That's smart. But it's right here. It's right here. There's not a whole lot going on here. But you can't find it? Oh, now it's just not showing anything. That's lovely. Come on. I know you know how to do this. Yeah, it can't find anything. Oh, now you work, because GPS apparently doesn't trouble figuring out what the pointer's over and what to do about it. Okay, that's lovely. So how are they doing cross-references then? Let's build this. Oh yeah, this whole problem. In the last video, I published some issues to the GitHub repo. They do fully recognize that this is actually an issue and are going to actually fix that one. They've sort of denied a few of the others were even issues despite you know, proof. There's reasons. They do recognize this one's an issue and are going to fix it. So let's get this fixed real quick so that I can build it. I don't know why you did that, because I told you the file name was just this. Okay. Now we can close that, reload this, because that's the thing you need to do. Let's build this again. Okay. When we get the right cursor back, that would be... I did this last time and there we go. There is the stuff we wanted. It has the fully qualified name, what it is and where it's located, its signature, and the doc comment it found for it. Okay. There is the stuff we want. So is having compiled sources actually required for this kind of thing? Because I had a core employees claim it is. They claim that one of my issues with GPS can't work because you need to generate cross reference information and just do you really need to be able to build it for cross reference information? Let me pull up another example. So just to show off I'm not doing any trickery. I have a just empty templated.net console project that I've created and haven't done anything with. I can show off that I haven't built this at all because in the output directory there's just nothing and this is in fact the only output directory. So let's get what is essentially, oh no, not in that folder though. Let's get what is essentially the equivalent thing in place we'll have a demo class. What's your namespace? demo2. Oh yeah, because I don't have I can't really do the fancy expression that I was doing but I can do this at least. No, that's fine. We don't need a property for this. I'm just showing this off. That's going to bother me so let me just get that right. And what we want to do is just number what did I call it? Just number? Yeah, okay. Cannot declare instance member in a static class. That is correct. Also I'm an idiot because I was just doing some out of stuff I have completely forgotten about C-sharpworks. Just, you know, smart. So this has to be prefixed with demo class because it was looking for a number in the current within this class program. And of course there isn't one declared. So because I got all sorts of stupid let's clean that out. Actually, I don't think it would have built anything but let me just make sure because I want to be very clear that there is nothing built at all. Yeah, there's no object there. Let's do that. Restore which I'll just pull in the dependencies that it needs and of course that's done. So yeah, that's all fine. So you can see there it already gets the signature. I haven't put any .comment there but it clearly confined where this is and what the signature is. So let's add in as well. Oh yep, it's also on this end computing that there is a reference for it that it found and of course that checked out. And let's add in the .comment. So you can see it on this end and if we go over here you can see it on that end and I haven't actually built anything. Or I did try to earlier but as you can see it clearly didn't build properly and I removed everything. I mean there wasn't even objects to remove but I just sort of removed everything just to make very clear that nothing has been built. So now at this point I should actually be able to build this anyways. Nope, there's another type of namespace float cannot be found because I'm using the capital letter but I don't know it should be able to find that right now. .NET restore probably didn't actually restore something that it was supposed to. So yeah, I mean this demonstrates conveniently demonstrates another one of the problems that I've been saying about how I had of course tooling into GPS work. Here you're clearly seeing cross-reference stuff being calculated even though the sources have not been built and more importantly that threw away rather bizarre little thing I don't have a dependency that I really should have and it's still able to do these things. It's still able to load these sources I'll even load this up in Visual Studio just to make it obvious that it can still do this. So let me just remove that and let's just remove all of this so it has no dependencies at all or rather it doesn't have the dependencies it's supposed to have. Yeah, we'll just remove this too because why not? This kind of thing that I'm doing would basically break GPS. Would you look at that? Loads up I can view my sources. In this instance it rightfully complains or will I'll issue a build Okay, it's severely confused. Clearly it doesn't know what the hell it's doing right now because of the missing dependencies and other issues. Still able to compute that cross reference though. You know it's like it's still able to present the bare minimum possible. It is rightfully complaining that dependencies it needs are not there and if we go into this so that is definitely highly appropriate if we do forget what this is. Oh, no, that's right there. No, that's new get core. That's not what we want. I don't remember what it's called right now but my point has definitely been shown clearly one you don't need cross you don't need cross reference stuff for some of the stuff at a core is claiming that you need it for. You don't need dependencies for some of the stuff at a core is claiming you need it for and most importantly the way at a core is computing cross references is just it could be improved.