about summary refs log tree commit diff
path: root/src/libcore/ops.rs
AgeCommit message (Collapse)AuthorLines
2017-06-07Move ops.rs to folder.Clar Charr-3021/+0
2017-05-31Give the `try_trait` feature its own tracking issueScott McMurray-6/+6
2017-05-25Lower `?` to `Try` instead of `Carrier`Scott McMurray-17/+48
The easy parts of RFC 1859. (Just the trait and the lowering, none of the error message improvements nor the insta-stable impl for Option.)
2017-05-24Rollup merge of #42159 - Havvy:doc-drop, r=steveklabnikMark Simulacrum-0/+44
Document drop more. Adds two examples to Drop and describes the recursive drop on types that contain fields.
2017-05-22Suggested changes by birkenfeldHavvy-6/+4
2017-05-22Fix trailing whitespace.Havvy-2/+2
2017-05-22Add description of how values are dropped to Drop trait.Havvy-1/+7
2017-05-22Add example of variable declaration drop order to Drop trait.Havvy-0/+12
2017-05-22Add example of recursive drop to Drop trait.Havvy-0/+28
2017-05-21Make RangeInclusive just a two-field structScott McMurray-32/+8
Not being an enum improves ergonomics, especially since NonEmpty could be Empty. It can still be iterable without an extra "done" bit by making the range have !(start <= end), which is even possible without changing the Step trait. Implements RFC 1980
2017-05-16Auto merge of #41907 - est31:macro_unused, r=jseyfriedbors-0/+1
Add lint for unused macros Addresses parts of #34938, to add a lint for unused macros. We now output warnings by default when we encounter a macro that we didn't use for expansion. Issues to be resolved before this PR is ready for merge: - [x] fix the NodeId issue described above - [x] remove all unused macros from rustc and the libraries or set `#[allow(unused_macros)]` next to them if they should be kept for some reason. This is needed for successful boostrap and bors to accept the PR. -> #41934 - [x] ~~implement the full extent of #34938, that means the macro match arm checking as well.~~ *let's not do this for now*
2017-05-13Rollup merge of #41612 - mandeep:add-ops-generics, r=GuillaumeGomez,frewsxcvMark Simulacrum-0/+36
Added generic example of std::ops::Add in doc comments We discussed on IRC how the std::ops examples were potentially missing examples using generics. This PR adds an example to std::ops::Add that shows the use of a generic type T. I'm not sure this is ready for merge as I think the two examples now make the documentation a bit verbose, but I think it's a good starting point. I'd love to hear others thoughts on this. This is in relation to the last item in issue #29365.
2017-05-13libcore: #[allow] some unused macrosest31-0/+1
2017-05-11Added generic example of std::ops::Add in doc commentsmandeep-0/+36
Added blank lines around example Added comment to Add example referencing the Output type Removed whitespace from lines 272 and 273 Removed Debug derivation from Add examples Added Debug derivation
2017-05-02Removal pass for anonymous parametersest31-2/+2
Removes occurences of anonymous parameters from the rustc codebase, as they are to be deprecated. See issue #41686 and RFC 1685.
2017-04-10Explicit help message for binop type missmatchEsteban Küber-0/+20
When trying to do a binary operation with missing implementation, for example `1 + Some(2)`, provide an explicit help message: ``` note: no implementation for `{integer} + std::option::Option<{integer}>` ``` Use `rustc_on_unimplemented` for the suggestions. Move cfail test to ui.
2017-03-25Don't stutter in operator descriptions #29365Phil Ellison-22/+22
2017-03-13Remove function invokation parens from documentation links.Corey Farwell-7/+7
This was never established as a convention we should follow in the 'More API Documentation Conventions' RFC: https://github.com/rust-lang/rfcs/blob/master/text/1574-more-api-documentation-conventions.md
2017-02-09name anonymous fn parameters in libcore traitsTrevor Spiteri-10/+10
2017-02-03Bump version, upgrade bootstrapAlex Crichton-74/+22
This commit updates the version number to 1.17.0 as we're not on that version of the nightly compiler, and at the same time this updates src/stage0.txt to bootstrap from freshly minted beta compiler and beta Cargo.
2017-01-25Rollup merge of #38930 - insaneinside:place-left-arrow-syntax-docs, r=brsonGuillaume Gomez-8/+8
Updates to src/libcore/ops.rs docs for RFC#1228 (Placement Left Arrow) Also fixed a minor typo in docs for `core::ops::Place`.
2017-01-10Rollup merge of #38816 - Manishearth:coercion-doc, r=GuillaumeGomezSeo Sanghyeon-0/+29
Add more docs for CoerceUnsized and Unsize here be dragons r? @ubsan @steveklabnik
2017-01-08Updates to src/libcore/ops.rs for RFC#1228 (Placement Left Arrow)Collin J. Sutton-8/+8
Also fixed a minor typo in docs for `core::ops::Place`.
2017-01-04Add more docs for CoerceUnsized and UnsizeManish Goregaokar-0/+29
2016-12-30Such large. Very 128. Much bits.Simonas Kazlauskas-0/+61
This commit introduces 128-bit integers. Stage 2 builds and produces a working compiler which understands and supports 128-bit integers throughout. The general strategy used is to have rustc_i128 module which provides aliases for iu128, equal to iu64 in stage9 and iu128 later. Since nowhere in rustc we rely on large numbers being supported, this strategy is good enough to get past the first bootstrap stages to end up with a fully working 128-bit capable compiler. In order for this strategy to work, number of locations had to be changed to use associated max_value/min_value instead of MAX/MIN constants as well as the min_value (or was it max_value?) had to be changed to use xor instead of shift so both 64-bit and 128-bit based consteval works (former not necessarily producing the right results in stage1). This commit includes manual merge conflict resolution changes from a rebase by @est31.
2016-11-04Auto merge of #37356 - cristicbz:wrapsum, r=alexcrichtonbors-52/+0
Add impls for `&Wrapping`. Also `Sum`, `Product` impls for both `Wrapping` and `&Wrapping`. There are two changes here (split into two commits): - Ops for references to `&Wrapping` (`Add`, `Sub`, `Mul` etc.) similar to the way they are implemented for primitives. - Impls for `iter::{Sum,Product}` for `Wrapping`. As far as I know `impl` stability attributes don't really matter so I didn't bother breaking up the macro for two different kinds of stability. Happy to change if it does matter.
2016-11-02Rollup merge of #37523 - d-unseductable:deref_mut_lifetimes, r=blussJonathan Turner-2/+2
Elide lifetimes in DerefMut documentation - Elide lifetimes to increase the readability of `DerefMut` examples
2016-11-01Elide lifetimes in DerefMut documentationDmitry Gritsay-2/+2
- Elide lifetimes to increase the readability of `DerefMut` examples
2016-11-01Rollup merge of #37316 - ollie27:docs_links, r=GuillaumeGomezGuillaume Gomez-3/+3
Fix a few links in the docs r? @steveklabnik
2016-10-31Rollup merge of #37486 - msiglreith:pr_doc_bitandassign, r=apasel422Guillaume Gomez-1/+1
Fix typo in the BitAndAssign operator documentation The name of the operator should be `&=` instead of `&`.
2016-10-30Fix typo in the BitAndAssign operator documentationmsiglreith-1/+1
2016-10-28improve docs for Index and IndexMutCobrand-18/+67
2016-10-23Implement ops on `&Wrapping<T>`Cristi Cobzarenco-52/+0
2016-10-21Fix a few links in the docsOliver Middleton-3/+3
2016-09-30Rollup merge of #36810 - GuillaumeGomez:ops_doc, r=steveklabnikSteve Klabnik-15/+19
Add missing urls for ops module Part of #29365. r? @steveklabnik
2016-09-29Add missing urls for ops moduleGuillaume Gomez-15/+19
2016-09-16Clarify Index/IndexMut trait docsUlrik Sverdrup-13/+13
Use examples and placeholder variable names with more meaning, to not make it so abstract.
2016-09-02Rollup merge of #35793 - matthew-piziak:add-rhs-example, r=steveklabnikJonathan Turner-0/+12
demonstrate `RHS != Self` use cases for `Add` and `Sub`
2016-08-31replace `../` with `../../std/` to support `core` docsMatthew Piziak-2/+2
2016-08-31Rollup merge of #35927 - matthew-piziak:bitandassign-example, r=GuillaumeGomezJonathan Turner-9/+51
replace `BitAndAssign` example with something more evocative This is the augmented-assignment version of PR #35809. r? @GuillaumeGomez
2016-08-31Rollup merge of #35926 - matthew-piziak:bit-or-xor-examples, r=GuillaumeGomezJonathan Turner-18/+81
add evocative examples for `BitOr` and `BitXor` These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary XOR operator in Rust, so here it's expressed as `(a || b) && !(a && b)`. Alternative decompositions are `(a && !b) || (!a && b)` and `(a || b) && (!a || !b)`. Let me know if you think one of those would be clearer. r? @GuillaumeGomez
2016-08-30replace `BitAndAssign` example with something more evocativeMatthew Piziak-9/+51
This is the augmented-assignment version of PR #35809. r? @GuillaumeGomez improved documentation a la PR #35993
2016-08-30add evocative examples for `BitOr` and `BitXor`Matthew Piziak-18/+81
These are exactly equivalent to PR #35809, with one caveat: I do not believe there is a non-bitwise binary "xor" operator in Rust, so here it's expressed as (a || b) && !(a && b). r? @GuillaumeGomez improved documentation a la PR #35993
2016-08-30Rollup merge of #35993 - matthew-piziak:bitwise-and-redux, r=GuillaumeGomezGuillaume Gomez-21/+41
improve `BitAnd` trait documentation This pull request is based on the discussion in PR #35927. Add a module-level note that `&&` and `||` are short-circuiting operators and not overloadable. Add a simple `Scalar` example that lifts the `&` operator to a trivial struct tuple. Make `BooleanVector` a struct tuple. Derive `PartialEq` for `BooleanVector` instead of implementing it. Adds a `fn main` wrapper so that the example can integrate with Rust Playground.
2016-08-30Rollup merge of #35863 - matthew-piziak:shl-example, r=steveklabnikGuillaume Gomez-18/+76
add evocative examples for `Shl` and `Shr` r? @steveklabnik
2016-08-30Rollup merge of #35810 - matthew-piziak:fn-trait-example, r=steveklabnikGuillaume Gomez-0/+165
improve documentation for `Fn*` traits This PR is not yet a serious attempt at contribution. Rather, I'm opening this for discussion. I can think of a few things we may want to accomplish with the documentation of the `Fn`, `FnMut`, and `FnOnce` traits: - the relationship between these traits and the closures that implement them - examples of non-closure implementations - the relationship between these traits and Rust's ownership semantics
2016-08-30Rollup merge of #35771 - matthew-piziak:range-inclusive-example-error, ↵Guillaume Gomez-12/+43
r=steveklabnik show how iterating over `RangeTo` and `RangeToInclusive` fails Feedback on PR #35701 seems to be positive, so this does the same thing for `RangeTo` and `RangeToInclusive`.
2016-08-29demonstrate `RHS != Self` use cases for `Add` and `Sub`Matthew Piziak-0/+12
remove extra `../`s
2016-08-26improve `BitAnd` trait documentationMatthew Piziak-21/+41
This pull request is based on the discussion in PR #35927. Add a module-level note that `&&` and `||` are short-circuiting operators and not overloadable. Add a simple `Scalar` example that lifts the `&` operator to a trivial struct tuple. Make `BooleanVector` a struct tuple. Derive `PartialEq` for `BooleanVector` instead of implementing it. Adds a `fn main` wrapper so that the example can integrate with Rust Playground. simplified bitand expression add a comment explaining what "rhs" means
2016-08-25Auto merge of #35906 - jseyfried:local_prelude, r=eddybbors-6/+1
Use `#[prelude_import]` in `libcore` and `libstd` r? @eddyb