Mercurial > hg > Gears > Gears
changeset 818:bbbf8b18ab4d
...
author | anatofuz <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 17 Jan 2021 22:34:44 +0900 |
parents | 720c6e5927ca |
children | 27ea7f1f5452 |
files | src/parallel_execution/generate_context.pl |
diffstat | 1 files changed, 19 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/src/parallel_execution/generate_context.pl Sun Jan 17 22:22:11 2021 +0900 +++ b/src/parallel_execution/generate_context.pl Sun Jan 17 22:34:44 2021 +0900 @@ -350,12 +350,22 @@ } sub find_generics_each_item { - my ($interface, $entry, $generics, $typed_variables) = @_; + my ($name, $entry, $generics, $typed_variables, $interface_name) = @_; if (defined $entry->{generics}) { - push(@$generics, { name => $interface, generics => $entry->{generics}}); + my $entry = { name => $name, generics => $entry->{generics}}; + if ($interface_name) { + $entry->{interface} = $interface_name; + } + + push(@$generics, $entry); } if (defined $entry->{typed_variable}) { - push(@$typed_variables, { name => $interface, typed_variable => $entry->{typed_variable}}); + my $entry = { name => $name, typed_variable => $entry->{typed_variable}}; + if ($interface_name) { + $entry->{interface} = $interface_name; + } + + push(@$typed_variables, $entry); } } @@ -368,21 +378,23 @@ for my $interface (keys %$tree) { my $entry = $tree->{$interface}; my $interface_entry = $entry->{elem}; - find_generics_each_item($interface, $interface_entry, \@generics, \@typed_variables); + find_generics_each_item($interface, $interface_entry, \@generics, \@typed_variables, undef); for my $impl (keys %{$entry->{impl}}) { my $impl_entry = $entry->{impl}->{$impl}; - find_generics_each_item($impl, $impl_entry, \@generics, \@typed_variables); + find_generics_each_item($impl, $impl_entry, \@generics, \@typed_variables, $interface); } } - #p @generics; - #p @typed_variables; + #p $tree; # my %generics_info = (); for my $item (@generics) { my $caller = $item->{name}; + if (defined $item->{interface}) { + print STDERR "interface at $item->{interface}!!!!\n"; + } for my $gene (@{$item->{generics}}) { my $field = $gene->{vname}; my $generics = $gene->{type};