Some time ago, I wrote:
Gale Paeper wrote:
Imports in an interface module are not visible in the corresponding implementation module. But they are visible in the implementation when using a "simple" module like this:
module sysutils; export sysutils = all; import GPC; System;
end;
var a: TString;
end.
At least that's GPC's current behaviour. Perhaps the EP experts can confirm whether this is correct?
Unless I'm missing something, I think paragraph 6.2.2.12, "Each defining-point that has as a region a module-heading shall also have as a region the module-block that is associated with that module-heading.", requires imports into a "separated" module-heading to be treated just the same as your "simple" module case.
If, as indicated, GPC doesn't make heading imports "visible" in the corresponding implementation block, then GPC isn't in full conformance with ISO 10206 requirements.
I'll fix it in the next release (chief47*.pas).
While trying to do so, I found the following program in the test suite. That's wrong then, i.e., the second `import' has to be removed, right?
module nick1m2 interface; export nick1m2 = all; import nick1m1;
[...]
end.
module nick1m2 implementation; import nick1m1;
[...]
end.
Frank