/** * Returns a scoped binding for {@code binding}. */ static <T> Binding<T> scope(final Binding<T> binding) { if (!binding.isSingleton()) { return binding; } if (binding instanceof SingletonBinding) throw new AssertionError(); return new SingletonBinding<T>(binding); }
/** * Returns a scoped binding for {@code binding}. */ static <T> Binding<T> scope(final Binding<T> binding) { if (!binding.isSingleton() || binding instanceof SingletonBinding) { return binding; // Default scoped binding or already a scoped binding. } return new SingletonBinding<T>(binding); }