public static void requeueIfPossible(InferenceCapable element) {
   final Boolean userData =
       ObjectUtils.notNull(
           element.getContainingFile().getUserData(PsiFileEx.BATCH_REFERENCE_PROCESSING), false);
   if (!userData && !PsiTreeUtil.hasErrorElements(element)) {
     final Project project = element.getProject();
     if (project != null) LuaPsiManager.getInstance(project).queueInferences(element);
   }
 }
  public static void inferAssignment(LuaAssignmentStatement statement) {
    boolean canAssign = false;

    for (LuaAssignment a : statement.getAssignments()) {
      final LuaExpression value = a.getValue();

      if (value instanceof InferenceCapable) ((InferenceCapable) value).inferTypes();
    }
  }