On Fri, Jun 8, 2018 at 6:46 AM, Emilian Bold <[email protected]>
wrote:

> I wonder why all those lines with variable2State.put are not needed
> anymore.
>
> The old code called super.visitMethod which I guess would recurse and
> visit everything and call variable2State.put eventually.
>
> So, why were they put in there to begin with? For lambdas?
>

To be honest, I don't recall (even after looking at the logs). Currently,
it feels unnecessary - the default values will be looked up automatically
in visitIdentifier and visitMemberSelect if there is no value for the given
variable in the variable2State map.

Jan


>
> As usual, it's a pleasure to see unit test.
>
> --emi
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
>
> On 8 June 2018 7:08 AM, Jan Lahoda <[email protected]> wrote:
>
> > Hi,
> >
> > I'd like to ask for a review of a possible fix for NETBEANS-889
> >
> > https://issues.apache.org/jira/browse/NETBEANS-889.
> >
> > The testcase there is:
> >
> >
> > --------------------------
> >
> >     String value = "";
> >     void nullDereference(){
> >         Runnable run = ()->{
> >
> >             value = null;
> >         };
> >         run.run();//false positive
> >     }
> >
> >
> > The reason is that the lambda (method) is not handled as a full method,
> so
> >
> > the changes from inside the lambda affect the outer context. The proposed
> >
> > patch handles lambdas as methods.
> >
> > Originally, visitMethod was filling variable2State with default values
> for
> >
> > parameters and fields. It would be possible to extend that for lambdas,
> but
> >
> > that seems unnecessary, as if a variable is not in the variable2State map
> >
> > when used, the default is picked up automatically. See
> >
> > NPECheck.VisitorImpl.visitIdent.
> >
> > Proposed patch:
> >
> > https://issues.apache.org/jira/secure/attachment/
> 12927013/NETBEANS-889-2.diff
> >
> > Feedback is welcome!
> >
> > Thanks,
> >
> > Jan
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>

Reply via email to