X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDX%2FUtils.pm;h=0cb207ddddaf8a515b73706969a20505948f2bb0;hb=7248abc94d2e5d6e484c65a4ac8d97d1b28f45cc;hp=a3384bf0b6a43377d06935c0a517d1020a433ad9;hpb=bcee3a691353e457e0b72580656c2448960bb1d7;p=scpubgit%2FDX.git diff --git a/lib/DX/Utils.pm b/lib/DX/Utils.pm index a3384bf..0cb207d 100644 --- a/lib/DX/Utils.pm +++ b/lib/DX/Utils.pm @@ -44,9 +44,25 @@ our @VALUE_SET = (TYPE_OF(), INDICES_OF(), CONTENTS_OF()); sub trace { } +sub _expand_dep { + my ($type, @path) = @{$_[0]}; + my @expanded = map { + ref() ? @{$_->value_path or return ()} : $_ + } @path; + return [ $type, @expanded ]; +} + +sub _expand_deps { + [ map _expand_dep($_), @{$_[0]} ] +} + sub step { - require DX::Step::Normal; - DX::Step::Normal->new(@_); + require DX::Step::ResolveProposition; + my %args = @_; + DX::Step::ResolveProposition->new( + %args, + depends_on => _expand_deps($args{depends_on}), + ); } sub string {