#### §9.2.2.(a) Substitutions for type anchors

Only two substitutions are considered for determining anchor identity:

1. If a method signature uses `this` as the anchor of any of its types, type checking an application of this method performs the following substitutions:
   A simple `this` expression is substituted by the actual call target of the method application.
   A qualified `Outer.this` expression is substituted by the corresponding enclosing instance of the call target.
2. Assignments from a `final` identifier to another `final` identifier are transitively followed, i.e., if `t1, t2` are final, after an assignment `t1=t2` the types `C<@t1>` and `C<@t2>` are considered identical. Otherwise `C<@t1>` and `C<@t2>` are incommensurable.
   Attaching an actual parameter to a formal parameter in a method call is also considered as an assignment with respect to this rule.