User Deprecation Warning thrown even if user does not override `validation_epoch_end`
🐛 Bug

From #3789 additional context. If the user does not override validation_epoch_end a warning is still thrown reading:  UserWarning: The validation_epoch_end should not return anything as of 9.1.to log, use self.log(...) or self.write(...) directly in the LightningModule
I tracked this down to this snippet:

  
    
      pytorch-lightning/pytorch_lightning/trainer/evaluation_loop.py
    
    
        Lines 197 to 222
      in
      0c12065
    
  
  
    

        
          
           eval_results = outputs 
        

        
          
           if num_dataloaders == 1: 
        

        
          
               eval_results = outputs[0] 
        

        
          
            
        

        
          
           user_reduced = False 
        

        
          
            
        

        
          
           if self.testing: 
        

        
          
               if is_overridden('test_epoch_end', model=model): 
        

        
          
                   model._current_fx_name = 'test_epoch_end' 
        

        
          
                   if using_eval_result: 
        

        
          
                       eval_results = self.__gather_epoch_end_eval_results(outputs) 
        

        
          
            
        

        
          
                   eval_results = model.test_epoch_end(eval_results) 
        

        
          
                   user_reduced = True 
        

        
          
            
        

        
          
           else: 
        

        
          
               if is_overridden('validation_epoch_end', model=model): 
        

        
          
                   model._current_fx_name = 'validation_epoch_end' 
        

        
          
                   if using_eval_result: 
        

        
          
                       eval_results = self.__gather_epoch_end_eval_results(outputs) 
        

        
          
            
        

        
          
                   eval_results = model.validation_epoch_end(eval_results) 
        

        
          
                   user_reduced = True 
        

        
          
            
        

        
          
           # depre warning 
        

        
          
           if eval_results is not None: 
        
    
  


The problem is that eval_results contains the outputs if validation_epoch_end is not overriden by the user. I believe the test in line 222 should be updated to
if eval_results is not None and user_reduced is True:
To Reproduce
Run a model without overriding validation_epoch_end and have a single eval data loader.

Expected behavior
No user warning should be thrown if the user hasn't overriden  validation_epoch_end

Environment
CUDA:

GPU:
Quadro P4000
available: True
version: 10.2
Packages:
numpy: 1.19.1
pyTorch_debug: False
pyTorch_version: 1.6.0
pytorch-lightning: 0.9.1rc4
tqdm: 4.48.2
System:
OS: Linux
architecture:
64bit
ELF
processor: x86_64
python: 3.8.5
version: #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020

Additional context

Could have issued a PR if this seems okay but got the message there is a freeze on PRs.