{"push_id":551764950,"size":99,"distinct_size":39,"ref":"refs/heads/issue-21310","head":"eb086505b805792a6afe67a644cde6b4ab002f14","before":"623854eb1e722886fd972b9767b836e1fdf50109","commits":[{"sha":"ffc5f1ccd8b0c7ca07414c324729ecac97f47e6a","author":{"email":"e0fb98fe6fd56877b6860b836b4ff15ceae63b98@msn.com","name":"Ignacio Corderi"},"message":"Added src/doc/grammar.md to hold Rust grammar","distinct":true,"url":"https://api.github.com/repos/Diggsey/rust/commits/ffc5f1ccd8b0c7ca07414c324729ecac97f47e6a"},{"sha":"ab24ffe21a742287ee12d5992d4c90e83abb374d","author":{"email":"e0fb98fe6fd56877b6860b836b4ff15ceae63b98@msn.com","name":"Ignacio Corderi"},"message":"Copied all the grammar productions from reference.md to grammar.md","distinct":true,"url":"https://api.github.com/repos/Diggsey/rust/commits/ab24ffe21a742287ee12d5992d4c90e83abb374d"},{"sha":"d0863adf24b316d8ecaca5a1b8866ee5db902313","author":{"email":"3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@danielgrunwald.de","name":"Daniel Grunwald"},"message":"Update Token::can_begin_expr() to make it consistent with the grammar:\n * add Token::AndAnd (double borrow)\n * add Token::DotDot (range notation)\n * remove Token::Pound and Token::At\n\nFixes a syntax error when parsing \"fn f() -> RangeTo<i32> { return ..1; }\".\n\nAlso, remove \"fn_expr_lookahead\".\nIt's from the fn~ days and seems to no longer be necessary.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/d0863adf24b316d8ecaca5a1b8866ee5db902313"},{"sha":"ca8578a953d0563dbef499ea2c2c853c9b71887c","author":{"email":"3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@danielgrunwald.de","name":"Daniel Grunwald"},"message":"Add test case that RangeTo notation works in return statements.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/ca8578a953d0563dbef499ea2c2c853c9b71887c"},{"sha":"af506fa5d15b892c2fa6df442e106e1afcb7abca","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"typeck: move method errors/suggestions to their own file.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/af506fa5d15b892c2fa6df442e106e1afcb7abca"},{"sha":"06ad8bb872c93ed0aa1db00cf02b31b0f30d57b3","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Implement suggestions for traits to import.\n\nFor a call like `foo.bar()` where the method `bar` can't be resolved,\nthe compiler will search for traits that have methods with name `bar` to\ngive a more informative error, providing a list of possibilities.\n\nCloses #7643.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/06ad8bb872c93ed0aa1db00cf02b31b0f30d57b3"},{"sha":"4ebde950f5afc16366b04b4c191f1c6198726da7","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Document, tweak and refactor some trans code.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/4ebde950f5afc16366b04b4c191f1c6198726da7"},{"sha":"716effa34900781ddb201fbd50ee679a4964cb25","author":{"email":"06a7813f879e3069b8b80d175ff4f9d3508d9379@gmail.com","name":"Andrew Paseltiner"},"message":"support deriving `Hash` for nullary structs\n\nfixes #16530","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/716effa34900781ddb201fbd50ee679a4964cb25"},{"sha":"3d59a476e56b855fb27405016f0592ca7913b624","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Support SSE types in extern {} better.\n\nThis seems to work on x86-64, but I am not able to test on other\nplatforms.\n\ncc #20043","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/3d59a476e56b855fb27405016f0592ca7913b624"},{"sha":"5edbe1f5ddab26a5a8ea75d447d5a37d8f7a3347","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Add `Type::int_width` for retrieving integer's bit width.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/5edbe1f5ddab26a5a8ea75d447d5a37d8f7a3347"},{"sha":"7d4f358de7de97b443a97e1f18a16781d472bbda","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Support SSE with integer types in x86-64 FFI.\n\nUnlike the intrinics in C, this types the SSE values base on integer\nsize. This matches the LLVM intrinsics which have concrete vector types\n(`<4 x i32>` etc.), and is no loss of expressivity: if one is using a C\nfunction that really takes an untyped integral SSE value, just give it\nwhatever Rust type makes most sense.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/7d4f358de7de97b443a97e1f18a16781d472bbda"},{"sha":"9e83ae931c802608962fb5f9c90220d80d2eaa1c","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Put vector types in regs for arm & mips FFI.\n\nThis seems to match what clang does on arm, but I cannot do any\nexperimentation with mips, but it matches how the LLVM intrinsics are\ndefined in any case...","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/9e83ae931c802608962fb5f9c90220d80d2eaa1c"},{"sha":"0a55aacc077f26f5703035f7c5395d083db3d355","author":{"email":"19e794c1bad8f0914a9eb04e9876660727aa8f3b@gmail.com","name":"Huon Wilson"},"message":"Prefer implemented traits in suggestions.\n\nIf `a.method();` can't be resolved, we first look for implemented traits\nglobally and suggest those. If there are no such traits found, we only\nthen fall back to suggesting from the unfiltered list of traits.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/0a55aacc077f26f5703035f7c5395d083db3d355"},{"sha":"210f0dcf007104240b2e286ed0b80cb4a61d7bae","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"auto merge of #21162 : apasel422/rust/issue-16530, r=huonw\n\nThis fixes #16530 by hashing nullary structs [the same way as the empty tuple] (https://github.com/rust-lang/rust/blob/master/src/libcore/hash/mod.rs#L185). Other approaches are possible, but this was the simplest.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/210f0dcf007104240b2e286ed0b80cb4a61d7bae"},{"sha":"a9decbdc443f120d1ca2efb1798bfc20bad7c2d4","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"rustc: Move the privacy pass to its own crate","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/a9decbdc443f120d1ca2efb1798bfc20bad7c2d4"},{"sha":"811522260760d5c1d6a4c8162ba816a471f37232","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"rustc_resolve: Correctly record privacy of methods\n\nLoading methods from external crates was erroneously using the type's privacy\nfor each method instead of each method's privacy. This commit fixes that.\n\nCloses #21202","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/811522260760d5c1d6a4c8162ba816a471f37232"},{"sha":"cbeb77ec7a42b988703fa0b0c857f26d464fdc2f","author":{"email":"60c6d277a8bd81de7fdde19201bf9c58a3df08f4@alexcrichton.com","name":"Alex Crichton"},"message":"rustc: Fix a leak in dependency= paths\n\nWith the addition of separate search paths to the compiler, it was intended that\napplications such as Cargo could require a `--extern` flag per `extern crate`\ndirective in the source. The system can currently be subverted, however, due to\nthe `existing_match()` logic in the crate loader.\n\nWhen loading crates we first attempt to match an `extern crate` directive\nagainst all previously loaded crates to avoid reading metadata twice. This \"hit\nthe cache if possible\" step was erroneously leaking crates across the search\npath boundaries, however. For example:\n\n    extern crate b;\n    extern crate a;\n\nIf `b` depends on `a`, then it will load crate `a` when the `extern crate b`\ndirective is being processed. When the compiler reaches `extern crate a` it will\nuse the previously loaded version no matter what. If the compiler was not\ninvoked with `-L crate=path/to/a`, it will still succeed.\n\nThis behavior is allowing `extern crate` declarations in Cargo without a\ncorresponding declaration in the manifest of a dependency, which is considered\na bug.\n\nThis commit fixes this problem by keeping track of the origin search path for a\ncrate. Crates loaded from the dependency search path are not candidates for\ncrates which are loaded from the crate search path.\n\nAs a result of this fix, this is a likely a breaking change for a number of\nCargo packages. If the compiler starts informing that a crate can no longer be\nfound, it likely means that the dependency was forgotten in your Cargo.toml.\n\n[breaking-change]","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/cbeb77ec7a42b988703fa0b0c857f26d464fdc2f"},{"sha":"08f6380a9f0b866796080094f44fe25ea5636547","author":{"email":"f8800a61e50195b5e128e84204d223c2328d9074@gmail.com","name":"Steven Fackler"},"message":"Rewrite Condvar::wait_timeout and make it public\n\n**The implementation is a direct adaptation of libcxx's\ncondition_variable implementation.**\n\npthread_cond_timedwait uses the non-monotonic system clock. It's\npossible to change the clock to a monotonic via pthread_cond_attr, but\nthis is incompatible with static initialization. To deal with this, we\ncalculate the timeout using the system clock, and maintain a separate\nrecord of the start and end times with a monotonic clock to be used for\ncalculation of the return value.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/08f6380a9f0b866796080094f44fe25ea5636547"},{"sha":"653e6880c96f858ff1d9a42b525bf3a903ae94c8","author":{"email":"3a2c29237f73c7cf88424b80e427b1884f346b35@rust-lang.org","name":"bors"},"message":"auto merge of #21113 : alexcrichton/rust/plug-a-hole, r=brson\n\nWith the addition of separate search paths to the compiler, it was intended that\r\napplications such as Cargo could require a `--extern` flag per `extern crate`\r\ndirective in the source. The system can currently be subverted, however, due to\r\nthe `existing_match()` logic in the crate loader.\r\n\r\nWhen loading crates we first attempt to match an `extern crate` directive\r\nagainst all previously loaded crates to avoid reading metadata twice. This \"hit\r\nthe cache if possible\" step was erroneously leaking crates across the search\r\npath boundaries, however. For example:\r\n\r\n    extern crate b;\r\n    extern crate a;\r\n\r\nIf `b` depends on `a`, then it will load crate `a` when the `extern crate b`\r\ndirective is being processed. When the compiler reaches `extern crate a` it will\r\nuse the previously loaded version no matter what. If the compiler was not\r\ninvoked with `-L crate=path/to/a`, it will still succeed.\r\n\r\nThis behavior is allowing `extern crate` declarations in Cargo without a\r\ncorresponding declaration in the manifest of a dependency, which is considered\r\na bug.\r\n\r\nThis commit fixes this problem by keeping track of the origin search path for a\r\ncrate. Crates loaded from the dependency search path are not candidates for\r\ncrates which are loaded from the crate search path.","distinct":false,"url":"https://api.github.com/repos/Diggsey/rust/commits/653e6880c96f858ff1d9a42b525bf3a903ae94c8"},{"sha":"89de6926b59136c73bf667434a53b9e05146499d","author":{"email":"91b13a54d3f93dc47b59129883dc590bd1eae5df@gmail.com","name":"Daniil Smirnov"},"message":"Fixes `join_multicast` on Windows #20381","distinct":true,"url":"https://api.github.com/repos/Diggsey/rust/commits/89de6926b59136c73bf667434a53b9e05146499d"}]}