X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FDX%2FResolutionSpace.pm;h=a3e82b548ce72f0340bee57e79dcc64fd22d8e7b;hb=3cc9323ecb560e91954fc7d3f721f7c498c616cf;hp=51b849061bb88f17c67e0ab271804cb66b619701;hpb=db4a49defb311531d69383e7475364da0699aa89;p=scpubgit%2FDX.git diff --git a/lib/DX/ResolutionSpace.pm b/lib/DX/ResolutionSpace.pm index 51b8490..a3e82b5 100644 --- a/lib/DX/ResolutionSpace.pm +++ b/lib/DX/ResolutionSpace.pm @@ -2,7 +2,7 @@ package DX::ResolutionSpace; use DX::Step::Backtrack; use DX::Step::ResolveProposition; -use DX::Utils qw(expand_deps); +use DX::Utils qw(compact_deps); use DX::Class; has proposition => (is => 'ro', isa => Proposition); @@ -25,7 +25,7 @@ sub for_deparse { map [ statement => [ [ symbol => (split '::', ${$_->[0]})[-1] ], [ value_path => [ @{$_}[1..$#$_] ] ], - ] ], @{expand_deps($self->geometry_depends_on)} + ] ], @{$self->geometry_depends_on} ] ] ], (@{$self->aperture} ? [ aperture => [ block => [ @@ -58,4 +58,10 @@ sub next_step { return "DX::Step::${step_type}"->new(resolution_space => $self); } +sub with_geometry_dependencies { + my ($self, $deps) = @_; + my $new_deps = compact_deps([ @{$self->geometry_depends_on}, @$deps ]); + return $self->but(geometry_depends_on => $new_deps); +} + 1;