- if (rt.index_of(l) > -1) {
- continue;
- }
- //print("ADD " + string.joinv(", ", ret) + "\n");
- ret += l;
- rt.add(l);
- }
-
-
- }
- print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
- //console.log("DROP LIST:");
- //console.dump(ret);
- return ret;
+ // should be a bit more than this..
+ // -> it should look for all elements that inherit
+ string[] ret = {};
+ var rt = new Gee.ArrayList<string>();
+ for (var i = 0; i < this.map.size; i++) {
+ var m = this.map.get(i);
+
+ if (m.right.index_of(rval) < 0) {
+ continue;
+ }
+ //print("found RIGHT, adding left\n");
+
+ for(var ii =0; ii < m.left.size; ii++) {
+ var l = m.left.get(ii);
+
+ if (rt.index_of(l) > -1) {
+ continue;
+ }
+ //print("ADD " + string.joinv(", ", ret) + "\n");
+ ret += l;
+ rt.add(l);
+ }
+
+
+ }
+ print ("drop list for %s is:\n%s\n", rval, string.joinv("\n", ret));
+ //console.log("DROP LIST:");
+ //console.dump(ret);
+ return ret;