private static ITypeConstraint[] createConstraintsForAccessToField(IVariableBinding fieldBinding, Expression qualifier, Expression accessExpression){
private ITypeConstraint[] createConstraintsForAccessToField(IVariableBinding fieldBinding, Expression qualifier, Expression accessExpression){
  private static ITypeConstraint[] createConstraintsForAccessToField(IVariableBinding fieldBinding, Expression qualifier, Expression accessExpression){	  Assert.isTrue(fieldBinding.isField());	  ITypeConstraint defines= SimpleTypeConstraint.createDefinesConstraint(new ExpressionVariable(accessExpression), new RawBindingVariable(fieldBinding.getType()));	  if (qualifier == null)		  return new ITypeConstraint[]{defines};	  ConstraintVariable declaringTypeVar= new DeclaringTypeVariable(fieldBinding);	  ITypeConstraint subType= SimpleTypeConstraint.createSubtypeConstraint(new ExpressionVariable(qualifier), declaringTypeVar);	  return new ITypeConstraint[]{defines, subType};		  }