Open
Description
With @import
, it's possible for a file to refer to a mixin or function that gets redefined later on. Right now References
will just override the previous definition and treat it as though it always referred to whatever the last value was, but the more correct behavior would be to throw an error, since changing the definition isn't supported in the module system.
For example:
<==> input/entrypoint.scss
@import "definition1";
@import "upstream";
@import "midstream";
<==> input/definition1.scss
@function fn() {@return 1}
<==> input/definition2.scss
@function fn() {@return 2}
<==> input/midstream.scss
@import "definition2";
@import "upstream";
<==> input/upstream.scss
a {b: fn()}
I don't think this is worth fixing before we launch, though.
Activity
Throw an error when generating different results for the same file
nex3 commentedon Apr 11, 2023
Given that we're getting ready to start properly deprecating
@import
and this doesn't seem to be causing much user pain, I'm going to close it out as not planned.nex3 commentedon Apr 11, 2023
Oops, thought this was an issue on the implementation. For the migrator, we probably should handle this.