system/src/sc/lang/java/IdentifierExpression.java
static private void checkForBindableField(Expression expr, String propertyName, IdentifierType[] idTypes, Object[] boundTypes,
                                             List<Expression> arguments, BindingDirection bindingDirection, int ix, Object rootType, Object inferredType) {

      if (bindingDirection != null) {
         Object referenceType;
         if (ix == 0)
            referenceType = expr.findMemberOwner(propertyName, MemberType.PropertyGetSet);
         else
            referenceType = getTypeForIdentifier(idTypes, boundTypes, arguments, ix-1, expr.getJavaModel(), rootType, inferredType, expr.getEnclosingType());

         if (expr.getJavaModel() == null) {
            // Happens for partial expression parsing and completion constructs in the editor
            return;
         }
         // Any binding requires dynamic access to the member but if it's a forward binding, its a real binding, not referenceOnly=true
         makeBindable(expr, propertyName, idTypes[ix], boundTypes[ix], getTypeForIdentifier(idTypes, boundTypes, arguments, ix, expr.getJavaModel(), null, inferredType, expr.getEnclosingType()),
                      referenceType, !bindingDirection.doForward(), true);
      }
   }
/**
    * This method looks for fields or get/set properties which need to be made bindable for this expression
    * to succeed.  We'll inject bindability by first finding the parent type of this expression, then walk from
    * that type to where the field/get-set are defined and add the proper get set as needed.
    */
This method looks for fields or get/set properties which need to be made bindable for this expression
to succeed.  We'll inject bindability by first finding the parent type of this expression, then walk from
that type to where the field/get-set are defined and add the proper get set as needed.
This method looks for fields or get / set properties which need to be made bindable for this expression to succeed . We ' ll inject bindability by first finding the parent type of this expression then walk from that type to where the field / get - set are defined and add the proper get set as needed .
static private void checkForBindableField(Expression expr, String propertyName, IdentifierType[] idTypes, Object[] boundTypes,
                                             List<Expression> arguments, BindingDirection bindingDirection, int ix, Object rootType, Object inferredType) {
      if (bindingDirection != null) {
         Object referenceType;
         if (ix == 0)
            referenceType = expr.findMemberOwner(propertyName, MemberType.PropertyGetSet);
         else
            referenceType = getTypeForIdentifier(idTypes, boundTypes, arguments, ix-1, expr.getJavaModel(), rootType, inferredType, expr.getEnclosingType());
         if (expr.getJavaModel() == null) {
            return;
         }
         makeBindable(expr, propertyName, idTypes[ix], boundTypes[ix], getTypeForIdentifier(idTypes, boundTypes, arguments, ix, expr.getJavaModel(), null, inferredType, expr.getEnclosingType()),
                      referenceType, !bindingDirection.doForward(), true);
      }
   }
static private void checkForBindableField ( Expression expr , String propertyName , IdentifierType [ ] idTypes , Object [ ] boundTypes , List < Expression > arguments , BindingDirection bindingDirection , int ix , Object rootType , Object inferredType ) { if ( bindingDirection != null ) { Object referenceType ; if ( ix == 0 ) referenceType = expr . findMemberOwner ( propertyName , MemberType . PropertyGetSet ) ; else referenceType = getTypeForIdentifier ( idTypes , boundTypes , arguments , ix - 1 , expr . getJavaModel ( ) , rootType , inferredType , expr . getEnclosingType ( ) ) ; if ( expr . getJavaModel ( ) == null ) { return ; } makeBindable ( expr , propertyName , idTypes [ ix ] , boundTypes [ ix ] , getTypeForIdentifier ( idTypes , boundTypes , arguments , ix , expr . getJavaModel ( ) , null , inferredType , expr . getEnclosingType ( ) ) , referenceType , ! bindingDirection . doForward ( ) , true ) ; } }
This method looks for fields or get/set properties which need to be made bindable for this expression
 to succeed.
This method looks for fields or get / set properties which need to be made bindable for this expression to succeed .
// Happens for partial expression parsing and completion constructs in the editor // Any binding requires dynamic access to the member but if it's a forward binding, its a real binding, not referenceOnly=true