1. 04 12月, 2015 15 次提交
    • B
      Auto merge of #30192 - jwworth:pull-request-1449185301, r=alexcrichton · ac0e8452
      bors 提交于
      This fixes a double word typo, 'of'.
      ac0e8452
    • B
      Auto merge of #29850 - Kimundi:attributes_that_make_a_statement, r=pnkfelix · 77ed39cf
      bors 提交于
      See https://github.com/rust-lang/rfcs/pull/16 and https://github.com/rust-lang/rust/issues/15701
      
      - Added syntax support for attributes on expressions and all syntax nodes in statement position.
      - Extended `#[cfg]` folder to allow removal of statements, and
      of expressions in optional positions like expression lists and trailing
      block expressions.
      - Extended lint checker to recognize lint levels on expressions and
      locals.
      - As per RFC, attributes are not yet accepted on `if` expressions.
      
      Examples:
        ```rust
      let x = y;
      {
              ...
      }
      assert_eq!((1, #[cfg(unset)] 2, 3), (1, 3));
      
      let FOO = 0;
      ```
      
      Implementation wise, there are a few rough corners and open questions:
      - The parser work ended up a bit ugly.
      - The pretty printer change was based mostly on guessing.
      - Similar to the `if` case, there are some places in the grammar where a new `Expr` node starts,
        but where it seemed weird to accept attributes and hence the parser doesn't. This includes:
        - const expressions in patterns
        - in the middle of an postfix operator chain (that is, after `.`, before indexing, before calls)
        - on range expressions, since `#[attr] x .. y` parses as  `(#[attr] x) .. y`, which is inconsistent with
          `#[attr] .. y` which would parse as `#[attr] (.. y)`
      - Attributes are added as additional `Option<Box<Vec<Attribute>>>` fields in expressions and locals.
      - Memory impact has not been measured yet.
      - A cfg-away trailing expression in a block does not currently promote the previous `StmtExpr` in a block to a new trailing expr. That is to say, this won't work:
      ```rust
      let x = {
          #[cfg(foo)]
          Foo { data: x }
          #[cfg(not(foo))]
          Foo { data: y }
      };
      ```
      - One-element tuples can have their inner expression removed to become Unit, but just Parenthesis can't. Eg, `(#[cfg(unset)] x,) == ()` but `(#[cfg(unset)] x) == error`. This seemed reasonable to me since tuples and unit are type constructors, but could probably be argued either way.
      - Attributes on macro nodes are currently unconditionally dropped during macro expansion, which seemed fine since macro disappear at that point?
      - Attributes on `ast::ExprParens` will be prepend-ed to the inner expression in the hir folder.
      - The work on pretty printer tests for this did trigger, but not fix errors regarding macros:
        - expression `foo![]` prints as `foo!()`
        - expression `foo!{}` prints as `foo!()`
        - statement `foo![];` prints as `foo!();`
        - statement `foo!{};` prints as `foo!();`
        - statement `foo!{}` triggers a `None` unwrap ICE.
      77ed39cf
    • B
      Auto merge of #30189 - crumblingstatue:patch-1, r=alexcrichton · 5673a7b3
      bors 提交于
      Replace the old link pointing to an out-of-date gist with a
      link to the lazy_static crate on crates.io.
      
      We also don't need to state the author, as the crates.io page
      shows the authors and owners.
      5673a7b3
    • B
      4cedff7b
    • M
      Ignore rpass-fulldeps test in cross compile tests · d06f4805
      Marvin Löbel 提交于
      d06f4805
    • B
      Auto merge of #30183 - retep998:min-align, r=alexcrichton · 5854fed4
      bors 提交于
      This fixes it so the Rust allocator on Windows 32-bit doesn't think the system allocator is aligned to 16 when it is really only aligned to 8.
      5854fed4
    • J
      Fix typo · 4632101f
      Jake Worth 提交于
      4632101f
    • B
      Auto merge of #30149 - mitaa:fqn, r=alexcrichton · c7d58321
      bors 提交于
      Fixes #30109
      c7d58321
    • M
      Use the extern item-path for documentation links · af1ad419
      mitaa 提交于
      The local item-path includes the local crates path to the extern crate
      declaration which breaks cross-crate rustdoc links if the extern crate
      is not linked into the crate root or renamed via `extern foo as bar`.
      af1ad419
    • T
      doc: add example for std::fs::DirBuilder · 44630701
      Tshepang Lekhonkhobe 提交于
      44630701
    • M
      Add a `build-aux-docs` directive to compiletest · 14f504c5
      mitaa 提交于
      This flag causes the documentation for all `aux-build` files to
      be built, which happens prior to running/building the parent test.
      14f504c5
    • B
      Auto merge of #29999 - SingingTree:libterm_unwrapping, r=alexcrichton · 372e82c9
      bors 提交于
      This removes a number of instances of unwrap and replaces them with
      pattern matching.
      
      This is in response to rust issue #29992.
      372e82c9
    • M
      Link to lazy_static crate in Design FAQ · 87b865c8
      Mika Attila 提交于
      Replace the old link pointing to an out-of-date gist with a
      link to the lazy_static crate on crates.io.
      
      We also don't need to state the author, as the crates.io page
      shows the authors and owners.
      87b865c8
    • B
      Auto merge of #30167 - GuillaumeGomez:patch-3, r=Manishearth · 7540dcd8
      bors 提交于
      r? @Manishearth
      7540dcd8
    • G
      Add E0400 error explanation · e10fe2ed
      Guillaume Gomez 提交于
      e10fe2ed
  2. 03 12月, 2015 14 次提交
  3. 02 12月, 2015 11 次提交