groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Shil Sinha <shil.si...@gmail.com>
Subject Re: infer return type of script
Date Mon, 21 Sep 2015 22:55:41 GMT
Actually, the second option can be made safe by initializing ReturnAdder
with a listener, which will allow you to 'visit' all implicit returns
without actually adding return statements.

On Mon, Sep 21, 2015 at 5:30 PM, Shil Sinha <shil.sinha@gmail.com> wrote:

> You could call 'getInferredReturnType' on the 'run' method node of your
> script class, but inferred return types only appear to be stored for
> closures and certain binary expressions (based on the usages of the
> INFERRED_RETURN_TYPE marker and the storeInferredReturnType method).
>
> You could also add all implicit return statements to the 'run' method via
> ReturnAdder, and then infer a return type by visiting all of the return
> statements, but I'm not sure if that kind of AST modification in a type
> checking extension is safe.
>
> Shil
>
> On Mon, Sep 21, 2015 at 4:34 PM, Jamie Echlin <jamie.echlin@gmail.com>
> wrote:
>
>> Hi...
>>
>> Is it possible to infer the return type, or types of a script during
>> static compilation? Presumably there is always a finite list of branches
>> where the script could end.
>>
>> I'm looking
>> at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor#getInferredReturnType,
>> but I'm not really sure how to call it from a type checking script, nor
>> what adds the inferred return type to the metadata which is used in that
>> method.
>>
>> cheers, jamie
>>
>
>

Mime
View raw message