title: Found a dependency cycle in dagger 2
body: <p>I try to provide fragment with <code>DatePickerDialog</code> , but when i use the <code>BasicInfoFragment</code> as argument it cause the error : <code>Found a dependency cycle</code> 
  why that happen ?!</p>
  
  <pre><code>@Module
  class ActivityModule(val activity: AppCompatActivity) {
  
      @Provides
      fun provideActivity() = activity
  
      @Provides
      @ActivityContext
      fun provideContext(): Context = activity
  
      // [...]
      @Provides
      fun provideDatePickerDialog(basicInfoFragment: BasicInfoFragment): 
      DatePickerDialog {
          return DatePickerDialog(activity, basicInfoFragment, 1999, 9, 9)
      }
  }
  </code></pre>
  
  <p>Fragment code :</p>
  
  <pre><code>class BasicInfoFragment @Inject constructor()
      : BaseFragment(), BasicInfoMvpView , 
        LabelledSpinner.OnItemChosenListener, 
        DatePickerDialog.OnDateSetListener {
  
      @Inject
      lateinit var datePickerDialog: DatePickerDialog
  
      @Inject
      lateinit var mPresenter: BasicInfoMvpPresenter&lt;BasicInfoMvpView&gt;
  
      // user info
      private lateinit var gender: DataManager.UserGender
      private var birthOfDate: Long = 0L
  
  
      override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,
                                savedInstanceState: Bundle?): View? {
          // Inflate the layout for this fragment
          val view = inflater.inflate(R.layout.base_user_info_layout, container, false)
  
          activityComponent?.let {
              it.inject(this)
              mPresenter.onAttach(this)
          }
  
          return view
      }
  
      override fun onDateSet(dataPicker: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
          birthOfDate = GregorianCalendar(year, month, dayOfMonth).timeInMillis
      }
  }
  </code></pre>