<https://github.com/InsertKoinIO/koin/commit/45c3b...
# koin
m
https://github.com/InsertKoinIO/koin/commit/45c3b1229bd1c35d2b1af9e735db41a6b10f2403 Hi! That fixes broke my project 🙂 Still don't understand how it used to work but it did. As I understand logic of this commit, params passing have to be exactly in the same order in which we want to get them back. Why do u think it's good solution? Why not to wrap it in a loop and compare with every param in holder?
p
what if you have 2 strings as parameters ?
m
Then you have to take care about order. First found param gets and removed.
It's not obvious. When you want to handle it by yourself, you can write { (param1: String, param2: String) -> }. But when you use get() or dsl you don't expect that params could be in wrong order.
Ofc, when your params have the same type, and we can not add qualifiers to them, you need to handle it by your own. In another cases we can rely on library, there is no problems, because types are different.
If you think that it's correct logic, then we can not use get() for retrieving params, because if you change your constructor's properties order, it will make sense and it won't work as expected.
a
here the intent is to pass a chain of parameters you want to consume in order, as you can pass it around to let sub injection use those parameters
e
It breaks my build also. I’m injecting parameters not only directly into the object being injected, but also to its dependencies. In this case it’s impossible to control the order of injections. Now I think maybe I’m misusing the parameters, but it used to work fine, so this build breaks a lot of my code now.
Is there any migration path for that case?
a
ok, sorry that you have breakings. I'm interested in knowing more the cause of the breaks
m
So, why we can not check all params and get first appropriate one?
a
the thing would be: it depends (if you are looking for chained or indexed one)
but I imagine to use one solution and fallback to the other
look at current index, or look at type