-
Notifications
You must be signed in to change notification settings - Fork 82
[dwds] Late variables show up obfuscated on object drill down #1179
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Yes, those look like the synthesized variable names that come from the CFE late lowering. We probably want to hide the @annagrin I thought there was already an issue filed collecting the kinds of names that we need to cleanup from the scope but I couldn't find it. Do you have one we can add these to? |
Action Items: grouma@ - Filter out Long term we'll want to leverage the DDC metadata files and gather property names directly from there instead of Chrome. |
I'm now on the version below. I'm not seeing the
FWIW, if I break before a late field is initialized on mobile, I see |
Here is the source code where the names are constructed by the CFE. As short term fix, we can reverse engineer the names to extract the name of the actual field/variable that would appear in the original dart source file. For a more robust solution I had a conversation with the CFE team and we agree that there should be some way for backends to identify when synthetic nodes are created from a CFE lowering and a way to map them back to the actual name. DDC could use these features to help output more metadata information. I opened a tracking issue dart-lang/sdk#44262. |
How is the VM mapping back from the CFE synthetic names to the original for debugging? Is it using heuristics? @bkonyi - do you know? |
I'm not sure myself, so I'd have to do some digging. Maybe @rmacnak-google would know more? |
Update: The CFE now tags the synthetic fields as such so we can identify them and handle them differently than a field that actually appears in the dart source. There is also an API that can be used to find the original name of the late field from the synthetic versions dart-lang/sdk#44262. We should be unblocked to create a straightforward solution to rename/hide the fields we want via information DDC can emit in the metadata file. |
This is debugging a Flutter Web app running with null safety at version:
In the following (vscode watch):
the variables
p0
,p1
, andpot
are markedlate
and appear somewhat obfuscated. I think theisSet
is from lowering in the CFE / DDC. The variablesdeck
andplayerType
are not late and show as expected.I assume this is going through the
getObject
path. Are we doing field/variable renaming here?@grouma @annagrin @nshahan
The text was updated successfully, but these errors were encountered: