17438, "dlongnecke-cray", "Support param folding of use and import statements", "2021-03-19T19:41:24Z"
As a Chapel user, I want support for param folding of use and import
statements so that I can write code that is sensitive to the
movement/renaming of modules like the following:
proc test1() {
use Version;
if chplVerison >= createVersion(2, 0) {
use SomeTwoPointOhModule;
} else {
// Import any arbitrary, existing module.
use List;
}
}
test1();
Today, trying to compile this code yields:
Test.chpl:6: In function 'test1':
Test.chpl:10: error: Cannot find module or enum 'SomeTwoPointOhModule'
I ran into this problem recently while trying to adjust Arkouda to
silence deprecation warnings in Memory
that were introduced
for 1.24
.
proc getMemUsed() {
use Version;
if chplVersion >= createVersion(1, 24) {
use Memory.Diagnostics;
return memoryUsed();
} else {
use Memory.
return memoryUsed();
}
}
However this didn't work as expected.