1. 10 12月, 2017 1 次提交
  2. 09 12月, 2017 7 次提交
  3. 08 12月, 2017 26 次提交
  4. 07 12月, 2017 6 次提交
    • B
      Auto merge of #46509 - nikomatsakis:nll-master-to-rust-master-3, r=arielb1 · a8437a0a
      bors 提交于
      closure handling for NLL
      
      This branch overhauls how we handle closures and universally quantified regions in the NLL code. The goal is to lay the groundwork for "region erasure" by the HIR-based type checker, as well as to avoid "crazy hacks" when it comes to closures. This means that when we type-check a closure, we cannot make use of *any* of the precise values of free regions in its signature, since those are inferred by the HIR type-checker. Therefore, the new code handles closures by:
      
      - Creating fresh regions for every free region that appears in the closure's type, which now includes both its signature and the types of all upvars.
          - This means that the closure is type-checked without knowing about the connections.
      - When we encounter some region relationship that we can't locally verify, we propagate it to the closure's creator.
      - During MIR typeck, the closure creators then validates those relationships.
      
      For a good example and explanation, see e.g. the test `src/test/nll/closure-requirements/propagate-despite-same-free-region.rs`.
      
      Upcoming changes in the next NLL PR (not included in this PR in order to keep it manageable):
      
      - Improvements to the MIR type checker so that it handles a lot of stuff presently overlooked
      - Refactor how we store region values to make it more efficient, better encapsulated
      - Propagate "type-outlives" relationships like `T: 'a` in a similar fashion to the one covered in this PR (still in the works, but close)
      - Improvements to error reporting (still in the works)
      
      r? @arielb1 or @pnkfelix
      a8437a0a
    • A
      rustc: Further tweak linkage in ThinLTO · 17fb43bd
      Alex Crichton 提交于
      In #46382 the logic around linkage preservation with ThinLTO ws tweaked but the
      loop that registered all otherwise exported GUID values as "don't internalize
      me please" was erroneously too conservative and only asking "external" linkage
      items to not be internalized. Instead we actually want the inversion of that
      condition, everything *without* "local" linkage to be internalized.
      
      This commit updates the condition there, adds a test, and...
      
      Closes #46543
      17fb43bd
    • B
      Auto merge of #46523 - CrockAgile:update-fingerprint-tests-macros, r=michaelwoerister · ee25791d
      bors 提交于
      Update fingerprint tests macros
      
      Part of #44924
      
      r? @michaelwoerister
      ee25791d
    • N
      rename `Binder::new_not_binding` to `Binder::dummy` · 1db58d7f
      Niko Matsakis 提交于
      per pnkfelix's suggestion
      1db58d7f
    • N
      add test comparing free region to bound region · 47037705
      Niko Matsakis 提交于
      suggested by arielb1
      47037705
    • N
      use `-Znll -Zborrowck=mir -Zverbose` consistently · 86e7b5c1
      Niko Matsakis 提交于
      86e7b5c1