Closed CryptoPascal31 closed 1 year ago
I mean: redact unused interfaces, and reorder them following the target type specification.
I actually disagree and it doesn't make sense to redact unused interfaces for that reason. If we treat the list of interfaces as a set rather than a list, your entire some of the bug goes away.
In short: this is an implementation bug, I'll look into to address it going forward.
edit Actually, I had only read half the issue when I responded, so now I see the other half of the problem.
To recap:
Set
, that's a straightforward fix.Despite the {genius}
and {girl}
type refinements, module references are actually dynamic pointers to a module. In the case of the last set of tests, they both point to emily
, so it's not surpising that they're type-equal.
It's hard to say it makes sense for the last set of tests to fail. Under static typing, they should, but if we talk about run-time values, they both definitely point to the same module.
On another note, I'm going to go ahead and close this issue. Please re-file it without the references to Emily, this is not appropriate.
I do not want a precedent for this in pact. Emily is a great coworker and very smart, but I'm sure you can express your semantic issue without the genius
, girl
and emily
. I'm not closing discourse, we can still talk about this, but refrain from these sort of things in the future when filing issues.
Definitively, I'm so sorry if I offended somebody.
As Emily is already present in many places in the code. I wanted to do a little humor.
And I thought that associating emily girl and genius would be seen as kind. Didn't want to offend or insult, just wanted to have more relaxed atmosphere.
I'm going to refill and change the examples.
Issue description
When storing a modref into a typed variable or a table, the interfaces (refSpec) list should be "sanitized".
I mean: redact unused interfaces, and reorder them following the target type specification.
As always, the better is to provide an example:
Steps to reproduce