1. 01 2月, 2013 3 次提交
    • D
      move smallintmap to oldsmallintmap · 70855f5a
      Daniel Micay 提交于
      70855f5a
    • N
      aee79294
    • N
      Finalize moves-based-on-type implementation. · 0682ad0e
      Niko Matsakis 提交于
      Changes:
      
      - Refactor move mode computation
      - Removes move mode arguments, unary move, capture clauses
        (though they still parse for backwards compatibility)
      - Simplify how moves are handled in trans
      - Fix a number of illegal copies that cropped up
      - Workaround for bug involving def-ids in params
        (see details below)
      
      Future work (I'll open bugs for these...):
      
      - Improve error messages for moves that are due
        to bindings
      - Add support for moving owned content like a.b.c
        to borrow check, test in trans (but I think it'll
        "just work")
      - Proper fix for def-ids in params
      
      Def ids in params:
      
      Move captures into a map instead of recomputing.
      
      This is a workaround for a larger bug having to do with the def-ids associated
      with ty_params, which are not always properly preserved when inlining.  I am
      not sure of my preferred fix for the larger bug yet.  This current fix removes
      the only code in trans that I know of which relies on ty_param def-ids, but
      feels fragile.
      0682ad0e
  2. 31 1月, 2013 4 次提交
  3. 30 1月, 2013 3 次提交
    • T
      Handle supertrait calls in default methods · a30ea013
      Tim Chevalier 提交于
      Add a new method_super origin for supertrait methods. Also make
      coherence create a table that maps pairs of trait IDs and self types
      to impl IDs, so that it's possible to check a supertrait method
      knowing only its index in its trait's methods (without knowing all
      supertraits for a given trait).
      
      r=nmatsakis and graydon -- with hope, we'll revamp all of this code as
      per #4678, but for now this fixes the bug.
      
      Closes #3979
      a30ea013
    • P
    • P
      libstd: Remove "dual impls" from the language and enforce coherence rules. r=brson · eb4d39e1
      Patrick Walton 提交于
      "Dual impls" are impls that are both type implementations and trait
      implementations. They can lead to ambiguity and so this patch removes them
      from the language.
      
      This also enforces coherence rules. Without this patch, records can implement
      traits not defined in the current crate. This patch fixes this, and updates
      all of rustc to adhere to the new enforcement. Most of this patch is fixing
      rustc to obey the coherence rules, which involves converting a bunch of records
      to structs.
      eb4d39e1
  4. 29 1月, 2013 4 次提交
  5. 24 1月, 2013 2 次提交
  6. 21 1月, 2013 1 次提交
  7. 18 1月, 2013 1 次提交
  8. 15 1月, 2013 4 次提交
  9. 11 1月, 2013 3 次提交
  10. 10 1月, 2013 2 次提交
    • N
      A collection of refactorings that I found it hard/tiresome to divide: · 2b92962a
      Niko Matsakis 提交于
      - Make `extern fn()` assignable to any closure type, rather than
        a subtype.
      - Remove unused int_ty_set and float_ty_set
      - Refactor variable unification and make it more DRY
      - Do fn sub/lub/glb on the level of fn_sig
      - Rename infer::to_str::ToStr to infer::to_str::InferStr
      - Capitalize names of various types
      - Correct hashing of FnMeta
      - Convert various records-of-fns into structs-of-fns.  This is both
        eliminating use of deprecated features and more forwards compatible
        with fn reform.
      
      r=pcwalton
      2b92962a
    • E
      syntax: convert ast::spanned into a struct · 93c2ebf9
      Erick Tryzelaar 提交于
      93c2ebf9
  11. 09 1月, 2013 5 次提交
  12. 08 1月, 2013 1 次提交
  13. 06 1月, 2013 2 次提交
  14. 28 12月, 2012 1 次提交
  15. 23 12月, 2012 1 次提交
  16. 18 12月, 2012 1 次提交
  17. 14 12月, 2012 2 次提交