Warn when certain constructor is used

Pietro Paolini Pietro.Paolini at alfasystems.com
Thu May 31 12:19:49 UTC 2018


Hi Maurizio,

Thanks a lot. I would have an additional, and hopefully last, question.

I am getting the NewClassTree which seems to provide me access to the - forgive me the coarse wording of it -  the "token", namely the textual representation
of it, while I am mainly interested in the type.

I am getting around it by comparing strings but I wonder if there is any way to get to the type of the expression :

:= new identifier ( arguments )

What I have in my mind is to detect all instances in which the identifier has *type* A and the argument's  list is composed by a single *type* , let say B. That allows me to 
print something:

"Hey, constructor new A(B) has been detected"

Thanks a lot for your help so far, really.

Thanks,
P.





> -----Original Message-----
> From: Maurizio Cimadamore [mailto:maurizio.cimadamore at oracle.com]
> Sent: 31 May 2018 12:45
> To: Pietro Paolini
> Cc: compiler-dev at openjdk.java.net
> Subject: Re: Warn when certain constructor is used
> 
> 
> 
> On 31/05/18 12:21, Pietro Paolini wrote:
> > JCTree tree = (JCTree) trees.getTree(element);
> > tree.accept(new LocalDateUtilDate());
> There re two visitor methods in JCTree, one internal (used by javac),
> one external (used by the API). I don't think you need to cast down to
> JCTree (yet, at least). Just keep it as a com.sun.source.tree.Tree, and
> you will see that the only 'accept' method there takes two arguments: a
> visitor (which you have) and a visitor parameter; since you don't seem
> to need a visitor parameter, you can just pass 'null' as second parameter.
> 
> Maurizio


More information about the compiler-dev mailing list