Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 491513

Summary: [eslint] no-undef-expression message should include the name of the object it looked in
Product: [ECD] Orion Reporter: Michael Rennie <Michael_Rennie>
Component: JS ToolsAssignee: Curtis Windatt <curtis.windatt.public>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: curtis.windatt.public
Version: 12.0   
Target Milestone: 12.0   
Hardware: PC   
OS: Mac OS X   
Whiteboard:
Bug Depends on:    
Bug Blocks: 491544    

Description Michael Rennie CLA 2016-04-12 11:21:02 EDT
consider the following out-of-context snippet:

if(lib.type === "Literal" && lib.value.charAt(0) !== '.') {
 <snip>
}

The rule tags charAt as being undefined (OK), but the weird part is that if I hover over 'value' I get this: "A short hand for configuring services if the $get method is a constant.", which is not at all what 'value' is (it is in fact actually a string).

If we could add the object info to the linting message it would help clear up strangeness (and help us figure out what Tern did).

So for example we would go from:

'charAt is undefined.'

to

'charAt is undefined in foo.Strange.Object.'

If we could find a way to tag the annotation with additional type infos (we could just use the data passthrough on the annotation) we could then provide some way to correct Tern (maybe, longshot).
Comment 1 Curtis Windatt CLA 2016-04-12 14:08:11 EDT
http://git.eclipse.org/c/orion/org.eclipse.orion.client.git/commit/?id=a33650ebc41772106e01b2f64262a1331a46d898
Updates the text to include the name and origin.

If there are multiple types or the type doesn't have a name and origin we continue to use the old message.