@Override public Boolean visit( final ProviderInstanceBinding<?> binding ) { final javax.inject.Provider<?> provider = binding.getProviderInstance(); if ( provider instanceof DeferredProvider<?> ) { try { final Class<?> clazz = ( (DeferredProvider<?>) provider ).getImplementationClass().load(); analyzeImplementation( TypeLiteral.get( clazz ), false ); } catch ( final TypeNotPresentException e ) // NOPMD { // deferred provider, so we also defer any errors until someone actually tries to use it } return Boolean.TRUE; } return Boolean.valueOf( analyzeDependencies( binding.getDependencies() ) ); }