PTAL. I tried to be thorough with thinking through the testing for this. LMK if you see any gaps. We'll be hotfixing this into stable.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
[analyzer] Dot shorthands: Remove error when a constructor conflicts with a non-static member.
Users are getting an extra error when a constructor and an instance method/getter have the same name.
In the implementation, we produce an error once we see that the retrieved dot shorthand element isn't static. Instead, we should be falling through to check for constructor elements of that name.
This CL makes the necessary changes.
Testing:
`element != null && element is InternalExecutableElement && element.isStatic` is tested by existing tests.
`element != null && element is InternalExecutableElement && !element.isStatic` is tested in the `test_conflict_instance_*` unit tests. This is the behavior with the bug.
`element != null && element is! InternalExecutableElement` should not
exist since the `_resolveElement only returns `ExecutableElement`s or
`null`. (There's definitely something we can refactor here, but I'll leave it for a future CL.)
If we can't find a static method/field of that name, we should be
checking if it's the name of a constructor for both of the above cases.
`element == null` occurs when we can't find any method/getter of a given
name. If there's a setter of the given name, this will be `true` as well. This is well tested by prior unit tests.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |