Commit Graph

43996 Commits

Author SHA1 Message Date
Steve Klabnik 08f9b98e57 Rollup merge of #26692 - steveklabnik:gh26620, r=alexcrichton
Fixes #26620
2015-06-30 15:37:45 -04:00
Steve Klabnik 8b81f76593 Make note of Ord's derive ordering
Fixes #26620
2015-06-30 19:37:34 -04:00
bors fdf219dd42 Auto merge of #26663 - Eljay:fix-repr-attribute, r=sanxiyn
Fixes #26646.

Loops over all `#[repr(..)]` attributes instead of stopping at the first one to make sure they are all marked as used. Previously it stopped after the first `#[repr(C)]` was found causing all other attributes to be skipped by the linter.
2015-06-30 20:07:18 +00:00
Steve Klabnik 26ff4714dd Rollup merge of #26678 - bluss:doc-fmt, r=steveklabnik
fmt: Update docs and mention :#? pretty-printing

Expose `:#?` well in the docs for fmt and Debug itself. Also update some out of date information and fix formatting in `std::fmt` docs.
2015-06-30 15:37:45 -04:00
Steve Klabnik 65b5c15384 Rollup merge of #26651 - GuillaumeGomez:patch-2, r=Manishearth
Part of #24407.
cc @michaelsproul
r? @Manishearth
2015-06-30 15:37:45 -04:00
Steve Klabnik 825e48fadf Rollup merge of #26627 - tshepang:stdin-example, r=steveklabnik 2015-06-30 15:37:45 -04:00
Steve Klabnik cf1c5b22d8 Rollup merge of #26622 - tshepang:indents, r=sanxiyn 2015-06-30 15:37:44 -04:00
Steve Klabnik bac361558e Rollup merge of #26580 - adamheins:master, r=steveklabnik
I found a sentence that felt a bit awkward to read in its current form, so I added a comma to break it up.
2015-06-30 15:37:44 -04:00
Steve Klabnik 96dd82ff9c Rollup merge of #26506 - tshepang:doc-fix, r=steveklabnik 2015-06-30 15:37:44 -04:00
Steve Klabnik 9d641316f1 Rollup merge of #26373 - tshepang:patch-2, r=steveklabnik 2015-06-30 15:37:44 -04:00
bors 7fc0675f35 Auto merge of #26327 - bluss:two-way, r=aturon
Update substring search to use the Two Way algorithm

To improve our substring search performance, revive the two way searcher
and adapt it to the Pattern API.

Fixes #25483, a performance bug: that particular case now completes faster
in optimized rust than in ruby (but they share the same order of magnitude).

Many thanks to @gereeter who helped me understand the reverse case
better and wrote the comment explaining `next_back` in the code.

I had quickcheck to fuzz test forward and reverse searching thoroughly.

The two way searcher implements both forward and reverse search,
but not double ended search. The forward and reverse parts of the two
way searcher are completely independent.

The two way searcher algorithm has very small, constant space overhead,
requiring no dynamic allocation. Our implementation is relatively fast,
especially due to the `byteset` addition to the algorithm, which speeds
up many no-match cases.

A bad case for the two way algorithm is:

```
let haystack = (0..10_000).map(|_| "dac").collect::<String>();
let needle = (0..100).map(|_| "bac").collect::<String>());
```

For this particular case, two way is not much faster than the naive
implementation it replaces.
2015-06-30 18:09:51 +00:00
Tshepang Lekhonkhobe bc1b43cd0b doc: add example for Stdin::read_line 2015-06-30 19:53:05 +02:00
Guillaume Gomez be38926b69 Add E0119 error explanation
Add more explanations
2015-06-30 19:21:45 +02:00
Guillaume Gomez 2881e83c96 Add E0207 error explanation 2015-06-30 19:21:45 +02:00
Guillaume Gomez a481c4ecdc Add E0117 error explanation 2015-06-30 19:21:39 +02:00
Guillaume Gomez edf6132be8 Add E0101 error explanation 2015-06-30 19:21:23 +02:00
Guillaume Gomez 758ea34146 Add E0092 error explanation 2015-06-30 19:21:23 +02:00
Guillaume Gomez 0ba2db5fde Add E0211 error explanation 2015-06-30 19:21:23 +02:00
Guillaume Gomez ed6940fd38 Add E0094 error explanation 2015-06-30 19:21:22 +02:00
Guillaume Gomez 20f22b7f0e Add E0093 error explanation 2015-06-30 19:21:22 +02:00
Guillaume Gomez c158be082f Add E0195 error explanation 2015-06-30 19:21:17 +02:00
bors 85361528bc Auto merge of #26669 - frewsxcv:diagnostics-https, r=huonw
None
2015-06-30 15:13:05 +00:00
bors 0b703787ab Auto merge of #26664 - steveklabnik:gh26571, r=alexcrichton
This was pretty misleading, so let's improve.

Fixes #26571
2015-06-30 12:54:16 +00:00
Ulrik Sverdrup 516941b74f fmt: Update docs and mention :#? pretty-printing 2015-06-30 14:37:06 +02:00
bors f39df49bcd Auto merge of #26662 - steveklabnik:gh26661, r=alexcrichton
This is his own mirror, so it shouldn't go down, unlike the previous one.

Fixes #26661
2015-06-30 10:26:09 +00:00
bors 080d5b74dd Auto merge of #26670 - frewsxcv:regression-test-13902, r=alexcrichton
Closes #13902
2015-06-30 08:04:11 +00:00
bors e6596d0052 Auto merge of #26668 - frewsxcv:regression-test-17756, r=alexcrichton
Closes #17756
2015-06-30 03:18:45 +00:00
bors 27975c49a6 Auto merge of #26667 - arielb1:audit-walk, r=eddyb
This was originally motivated by checking for HRTB hygiene, but I found several other bugs on the way.

This does not fix the biggest user of ty_walk, which is dtorck - I would prefer to coordinate that with @pnkfelix.

r? @eddyb
2015-06-30 01:45:46 +00:00
Corey Farwell 6419acee34 Add regression test for #13902
Closes #13902
2015-06-29 17:28:21 -07:00
Corey Farwell e834c0348f Link to docs from error explanations via HTTPS 2015-06-29 17:23:02 -07:00
bors faa04a8b9c Auto merge of #26666 - huonw:unc-rec, r=alexcrichton
This fixes two false positives for the unconditional recursion lint, when functions use themselves (or almost-themselves) internally, without actually being recursive.

````rust
fn main() { let _ = main; }
```
```rust
trait Bar {
    fn method<T: Bar>(&self, x: &T) {
        x.method(x)
    }
}
```
2015-06-30 00:14:32 +00:00
Corey Farwell d8680f6534 Add regression test for #17756
Closes #17756
2015-06-29 17:10:53 -07:00
Ariel Ben-Yehuda fb5dd398f6 Remove now-useless code 2015-06-30 02:31:07 +03:00
Ariel Ben-Yehuda a5e21daa19 Kill count_late_bound_regions
No, it didn't show up in my profiler. It still needs to die.
2015-06-30 02:24:46 +03:00
Huon Wilson 900af2c6d9 lint: default methods must be called on Self to unconditionally recur.
This catches the case when a trait defines a default method that calls
itself, but on a type that isn't necessarily `Self`, e.g. there's no
reason that `T = Self` in the following, so the call isn't necessarily
recursive (`T` may override the call).

    trait Bar {
        fn method<T: Bar>(&self, x: &T) {
            x.method(x)
        }
    }

Fixes #26333.
2015-06-29 16:00:54 -07:00
Huon Wilson b1931e48a0 lint: only consider actual calls as unconditional recursion.
Specifically, just mentioning the function name as a value is fine, as
long as it isn't called, e.g. `fn main() { let _ = main; }`.

Closes #21705.
2015-06-29 15:59:37 -07:00
Ariel Ben-Yehuda 336f81215e Remove type_needs_unwind_cleanup
After the last @dinosaur went extinct, the check became redundant with
type_needs_drop, except for its bugginess.

Fixes #26655.
2015-06-30 01:34:17 +03:00
Ariel Ben-Yehuda bf164bc6e3 Fix lifetime elision region accounting
This merges accumulate_regions_in_type with ty_fold::collect_regions.
Fixes #26638
2015-06-30 01:33:16 +03:00
bors 9a26e49459 Auto merge of #26660 - steveklabnik:fix_up_pointers, r=alexcrichton
This is a bit outdated.
2015-06-29 22:22:54 +00:00
Steve Klabnik b1907a04e4 Update link to Ousterhout
This is his own mirror, so it shouldn't go down, unlike the previous one.

Fixes #26661
2015-06-29 17:06:23 -04:00
Steve Klabnik f758baa524 Improve doc for std::mem::drop
This was pretty misleading, so let's improve.

Fixes #26571
2015-06-29 17:03:14 -04:00
bors fe283b4067 Auto merge of #26659 - nagisa:cas-docs, r=alexcrichton
Namely:

* Change parameter `old` to read `current` so it is clearer what the argument refers to (originally
   suggested `expected`, but shot down by Steve);
* Add some formatting and fix some mistakes like referring to the method as `swap` rather than
  `compare_and_swap`.
2015-06-29 20:50:41 +00:00
Eljay e8fe55f453 Add missing trailing newline. 2015-06-29 21:49:15 +01:00
Eljay 58ff6cc668 Add test for #26646. 2015-06-29 21:27:10 +01:00
Simonas Kazlauskas 08b21661c3 Refine Atomic*::compare_and_swap documentation
Namely:

* Change parameter `old` to read `current` so it is clearer what the argument refers to (originally
    suggested `expected`, but shot down by Steve);
* Add some formatting and fix some mistakes like referring to the method as `swap` rather than
  `compare_and_swap`.
2015-06-29 23:18:08 +03:00
Lee Jeffery b676e99b60 Fix incorrect warning about unused repr attributes. 2015-06-29 20:40:18 +01:00
bors f9b6929f46 Auto merge of #26623 - Saser:master, r=steveklabnik
In Chapter 5.9 (References and Borrowing), there is an example [at the very end](https://doc.rust-lang.org/stable/book/references-and-borrowing.html#use-after-free) which shows that declaring a reference before declaring the variable that it points to results in a compilation error. The book does not really mention why this happens though -- in the sections before, it has described how different scopes affects the lifetime of resources, but there is no mention of how resources within the same scope work.

This confused me a little, so I asked on #rust and got the answer that the resources are destroyed in the reverse order that they are declared, but the book makes no mention of it (as far as I can find) -- except in Chapter 5.21 (Drop), where it says:

> When `x` goes out of scope at the end of `main()`, the code for `Drop` will run. `Drop` has one method, which is also called `drop()`. It takes a mutable reference to `self`.
> 
> That’s it! The mechanics of `Drop` are very simple, but there are some subtleties. For example, values are dropped in the opposite order they are declared. [...]

---

I feel like Chapter 5.9 (References and Borrowing) is probably the best place to put this information (as I have done in my additions), since it deals with other types of referencing and borrowing. However, since English is not my native language, the wording of my additions perhaps are a little "off" -- any feedback on them is appreciated.
2015-06-29 19:19:31 +00:00
Steve Klabnik 8d6b5689fb Change removal notice for pointer guide.
This is a bit outdated.
2015-06-29 15:18:00 -04:00
Ariel Ben-Yehuda a1110bc3a3 Fix off-by-one error in default-type-parameter checking
Fixes #18183
2015-06-29 21:27:33 +03:00
bors 34f35a535a Auto merge of #26530 - steveklabnik:gh26471, r=alexcrichton
Fixes #26471

r? @alexcrichton
2015-06-29 17:44:56 +00:00