~vcs-imports/felix/trunk

« back to all changes in this revision

Viewing changes to lpsrc/flx_lookup.ipk

  • Committer: skaller
  • Date: 2007-05-06 16:41:27 UTC
  • Revision ID: vcs-imports@canonical.com-20070506164127-o7uk1kxu8enfoa9y
Fix parameters to not acquire parent type variables.

Show diffs side-by-side

added added

removed removed

Lines of Context:
2183
2183
 let vs,_ = find_vs syms index in
2184
2184
 assert (length vs = length ts);
2185
2185
 *)
2186
 
 if (length ts != length vs + length pvs) then
 
2186
 if (length ts != length vs + length pvs) then begin
 
2187
   print_endline ("#pvs=" ^ si (length pvs) ^ 
 
2188
     ", #vs="^si (length vs) ^", #ts="^ 
 
2189
     si (length ts)
 
2190
   );
2187
2191
   print_endline ("#ts != #vs + #pvs")
 
2192
 end
2188
2193
 ;
2189
2194
 assert (length ts = length vs + length pvs);
2190
2195
 let varmap = make_varmap syms sr index ts in
4553
4558
      let index = sye index in 
4554
4559
      let ts = adjust_ts syms sr index ts in
4555
4560
      *)
 
4561
      (*
 
4562
      print_endline ("NAME lookup finds index " ^ si index);
 
4563
      print_endline ("spec_vs=" ^ catmap "," (fun (s,j)->s^"<"^si j^">") spec_vs);
 
4564
      print_endline ("spec_ts=" ^ catmap "," (sbt syms.dfns) sub_ts);
 
4565
      print_endline ("input_ts=" ^ catmap "," (sbt syms.dfns) ts);
 
4566
      begin match Hashtbl.find syms.dfns index with
 
4567
        | {id=id;vs=vs;symdef=`SYMDEF_typevar _} -> 
 
4568
          print_endline (id ^ " is a typevariable, vs=" ^
 
4569
            catmap "," (fun (s,j,_)->s^"<"^si j^">") (fst vs)
 
4570
          )
 
4571
        | {id=id} -> print_endline (id ^ " is not a type variable")
 
4572
      end;
 
4573
      *)
 
4574
      (* should be a client error not an assertion *)
4556
4575
      assert (length spec_vs = length ts);
4557
4576
      let ts = map (tsubst spec_vs ts) sub_ts in
4558
 
      `BEXPR_name (index,ts),
 
4577
      let ts = adjust_ts syms sr index ts in
4559
4578
      let t = ti sr index ts in
4560
 
      t
 
4579
      `BEXPR_name (index,ts), t
4561
4580
 
4562
4581
    | `FunctionEntry fs ->
4563
4582
      assert (length fs > 0);