StepSignature

File StepSignature.str
Author unknown
Since unknown

15.12.2 Compile-Time Step 2: Determine Method Signature

Locate methods that are accessible and applicableDescriptor: signature plus return type




Statistics


General
Lines of code 375
Stratego
Module number 1 (100% documented)
Constructor number 0
Overlay number 0
Strategy number 18 (72% documented)
Rule number 0
DynamicRule number 0



Strategy summary


determine-actual-formal-parameter-types(ATerm type, ATerm invocation) Determines S1 StepSignature.str
determine-actual-type-arguments(ATerm type, ATerm invocation) Determines U1 StepSignature.str
determine-ASU(ATerm type, ATerm invocation) n/a StepSignature.str
determine-method-signature(ATerm type, ATerm class, ATerm fromclass) n/a StepSignature.str
determine-result-type(ATerm invtype, ATerm attrs) n/a StepSignature.str
get-arguments-of-invocation Returns the list of arguments of a method invocation StepSignature.str
identify-potentially-applicable-methods(ATerm class, ATerm fromclass) n/a StepSignature.str
is-applicable-method-by-method-invocation-conversion(ATerm type, ATerm invocation) n/a StepSignature.str
is-applicable-method-by-method-invocation-conversion(ATerm A, ATerm S, ATerm U) n/a StepSignature.str
is-applicable-method-by-subtyping(ATerm type, ATerm invocation) Succeeds if this method is applicable by subtyping StepSignature.str
is-applicable-method-by-subtyping(ATerm A, ATerm S, ATerm U) n/a StepSignature.str
is-applicable-variable-arity-method n/a StepSignature.str
is-more-specific(ATerm m2) Succeeds if m1 is more specific than m2 StepSignature.str
is-strictly-more-specific(ATerm m2) Succeeds if m1 is strictly more specific than m2 StepSignature.str
opt-attr-U(Strategy cont) Adds an attribute ActualTypeArgs if there are any StepSignature.str
select-applicable-methods(ATerm type, ATerm invocation) Might return an empty list StepSignature.str
select-maximally-specific-methods n/a StepSignature.str
was-unchecked-conversion-necessary n/a StepSignature.str



Strategy details


ATerm determine-actual-formal-parameter-types(ATerm type, ATerm invocation)
File StepSignature.str
Author unknown
Since unknown
 
Parameters
ATerm type Actual method invocation.

Determines S1 ... Sn and U1 ... Up as specified in 15.12.2.2


returns Tuple (S, U)
type Method Object -> (List(Type), List(Type))

 
ATerm determine-actual-type-arguments(ATerm type, ATerm invocation)
File StepSignature.str
Author unknown
Since unknown
 
Parameters
ATerm type Actual method invocation.
ATerm invocation Invoke inference of type arguments.

Determines U1 ... Up as specified in 15.12.2.2


type Method Object -> List(Type)

 
ATerm determine-ASU(ATerm type, ATerm invocation)
File StepSignature.str
Author unknown
Since unknown
 
Parameters
ATerm type Type: the type on which the invocation occurs.
ATerm invocation Expr: the method invocation

No information available.



 
ATerm determine-method-signature(ATerm type, ATerm class, ATerm fromclass)
File StepSignature.str
Author unknown
Since unknown
 

No information available.


type Expr -> (Method Object, List(Attribute))

 
ATerm get-arguments-of-invocation
File StepSignature.str
Author unknown
Since unknown
 

Returns the list of arguments of a method invocation.


type Expr -> List(Expr)

 
ATerm is-applicable-method-by-subtyping(ATerm type, ATerm invocation)
File StepSignature.str
Author unknown
Since unknown
 
Parameters
ATerm type Type: the type on which the invocation occurs.
ATerm invocation Expr: the method invocation

Succeeds if this method is applicable by subtyping.


type Method Object -> (Method Object, List(Attribute))

 
ATerm is-applicable-variable-arity-method
File StepSignature.str
Author unknown
Since unknown
 

No information available.


todo Who cares.

 
ATerm is-more-specific(ATerm m2)
File StepSignature.str
Author unknown
Since unknown
 
Parameters
ATerm m2 Method Object

Succeeds if m1 is more specific than m2


todo Parameterized types
todo Variable arity methods
type Method Object -> Method Object

 
ATerm is-strictly-more-specific(ATerm m2)
File StepSignature.str
Author unknown
Since unknown
 

Succeeds if m1 is strictly more specific than m2



 
ATerm opt-attr-U(Strategy cont)
File StepSignature.str
Author unknown
Since unknown
 

Adds an attribute ActualTypeArgs if there are any.



 
ATerm select-applicable-methods(ATerm type, ATerm invocation)
File StepSignature.str
Author unknown
Since unknown
 

Might return an empty list



 
ATerm select-maximally-specific-methods
File StepSignature.str
Author unknown
Since unknown
 

No information available.


todo DRY-71
type List((Method Object, List(Attribute))) -> List((Method Object, List(Attribute)))

 
ATerm was-unchecked-conversion-necessary
File StepSignature.str
Author unknown
Since unknown
 

No information available.


type List(Attribute) -> List(Attribute)