Instead of passing only part of the output to the scoped results we're passing whole output and path as a scope, this was result can replace scoped value without any assumptions on the initial and replacement types.
Performance for the common case (steps execution only on the outer schema) is not affected, running benchmarks/params_valid_vs_invalid.rb (10 times each because of the noise)
Before:
Extract from #353. Fixes #350
Instead of passing only part of the output to the scoped results we're passing whole output and path as a scope, this was result can replace scoped value without any assumptions on the initial and replacement types.
Performance for the common case (steps execution only on the outer schema) is not affected, running
benchmarks/params_valid_vs_invalid.rb
(10 times each because of the noise) Before:After:
dry-v specs are passing, didn't measured performance of the nested steps.