From 8f2ae95b8eb32cc3160de47457b61e76de4bdce3 Mon Sep 17 00:00:00 2001 From: Sergey Penkovsky Date: Fri, 30 Apr 2021 16:42:39 +0300 Subject: [PATCH] fixed initialization error for singeltone provider --- lib/binding.dart | 11 +++++++---- lib/scope.dart | 4 +--- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/binding.dart b/lib/binding.dart index 927ed01..9302c0b 100644 --- a/lib/binding.dart +++ b/lib/binding.dart @@ -96,9 +96,6 @@ class Binding { /// /// return [Binding] Binding singeltone() { - if (_mode == Mode.PROVIDER_INSTANCE) { - _instance = _provider?.call(); - } _isSingeltone = true; return this; } @@ -113,5 +110,11 @@ class Binding { /// ENG: Resolve instance. /// /// return [T] - T? get provider => _provider?.call(); + T? get provider { + if (_isSingeltone) { + _instance ??= _provider?.call(); + return _instance; + } + return _provider?.call(); + } } diff --git a/lib/scope.dart b/lib/scope.dart index 44c11c3..6179d4b 100644 --- a/lib/scope.dart +++ b/lib/scope.dart @@ -112,9 +112,7 @@ class Scope { case Mode.INSTANCE: return binding.instance; case Mode.PROVIDER_INSTANCE: - return binding.isSingeltone - ? binding.instance - : binding.provider; + return binding.provider; default: return null; }