You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If a private identifier is within a part file, any reference to that identifier will be a local x symbol, even if its defined within a separate file. For example:
// main.dartpart'part_file.dart';
voidmain() =>_test();
// ^^^^^ reference local 0
// part_file.dartpart of'main.dart';
void_test() {}
// ^^^^^ definition local 0
scip requires that any symbol in a different file cannot be local, this edge case must be handled
The text was updated successfully, but these errors were encountered:
This is somewhat more difficult than the other fixes
We need to generate the symbol from both sides: the definition and the reference. This would technically be possible in the current system from the reference: check the targetElement, if that element is in a different file, then the symbol is not local. But from the definition side, we dont exactly know if there are any references from within part files
While not ideal, the most practical solution to this problem is to generate all fields, methods, and other things that can be referenced within part files as regular symbols, regardless of their part status. This means that local references will be specific to parameters, and a few other unique edge cases. I'm not sure if there is a large con to this, other than potential performance differences on the post analysis side of things, but from the scip generation side, things are made much easier
If a private identifier is within a part file, any reference to that identifier will be a
local x
symbol, even if its defined within a separate file. For example:scip requires that any symbol in a different file cannot be local, this edge case must be handled
The text was updated successfully, but these errors were encountered: