- 16 11月, 2017 21 次提交
-
-
由 Chris Vittal 提交于
Uses Symbol::intern and hir.node_to_pretty_string to create a name for the impl Trait parameter that is just impl and then a ' + ' separated list of bounds that the user typed.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
It'd be good to have a positive test for each case where it is allowed, I should think.
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
also merge disallowed and disallowed-2 into that set
-
由 Niko Matsakis 提交于
-
由 Niko Matsakis 提交于
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
Move feature gate check to inside HIR lowering. Change error messages and update tests.
-
由 Christopher Vittal 提交于
First some background: To the compiler, the following two signatures in the trait vs the impl are the same. ```rust trait Foo { fn foo(&self, &impl Debug); } impl Foo for () { fn foo<U: Debug>(&self, x: &U) { ... } } ``` We do not want to allow this, and so we add a new error and check. The check just tests that all paramters 'syntheticness' match up. As during collection, the impl Trait parameters are transformed into anonymous synthetic generics. Furthermore, causes a check for unused type parameters to be skipped in check_bounds_are_used if there is already a TyError. Thus, an unused input will not trigger `type parameter unused` errors. Update the one test that checked for this error in the case of a TyError.
-
由 Christopher Vittal 提交于
-
由 Christopher Vittal 提交于
In ast_generics extraction in generics_of and explicit_predicates_of, also collect inputs if there are any. Then use a Visitor to extract the necessary information from the TyImplTraitUniversal types before extending generics and predicates with the new information.
-
由 Christopher Vittal 提交于
This is for tracking if an ImplItem is part of a trait impl. Add a with_trait_impl_ref method to ItemLowerer to appropriately save the state to allow appropriate nesting of trait and non-trait impls.
-
由 Christopher Vittal 提交于
Replace hir::TyImplTrait with TyImplTraitUniversal and TyImplTraitExistential. Add an ImplTraitContext enum to rustc::hir::lowering to track the kind and allowedness of an impl Trait. Significantly alter lowering to thread ImplTraitContext and one other boolean parameter described below throughought much of lowering. The other parameter is for tracking if lowering a function is in a trait impl, as there is not enough information to otherwise know this information during lowering otherwise. This change also removes the checks from ast_ty_to_ty for impl trait allowedness as they are now all taking place in HIR lowering.
-
由 Christopher Vittal 提交于
With the check for impl trait moving from type checking to HIR lowering the error needs to move too.
-
由 bors 提交于
add `StorageDead` handling fix #45642 r? @arielb1
-
- 15 11月, 2017 10 次提交
-
-
由 bors 提交于
Reenable clippy testing fixes #45680
-
由 Oliver Schneider 提交于
-
由 Mikhail Modin 提交于
-
由 Mikhail Modin 提交于
-
由 Mikhail Modin 提交于
-
由 bors 提交于
rustc_driver: expose a way to override query providers in CompileController. This API has been a long-time coming and will probably become the main method for custom drivers (that is, binaries other than `rustc` itself that use `librustc_driver`) to adapt the compiler's behavior.
-
由 bors 提交于
Fix MIR borrowck EndRegion not found Fixes #45702 - [x] Add Tests
-
由 bors 提交于
Handle closures correctly in MIR inlining Fixes #45894.
-
由 bors 提交于
always add an unreachable branch on matches to give more info to llvm As part of https://github.com/djzin/rustc-optimization I discovered that some simple enum optimizations (src/unary/three_valued_enum.rs and src/unary/four_valued_enum.rs in the repo) are not applied - and the reason for this is that we erase the info that the discriminant of an enum is one of the options by putting the last one in an "otherwise" branch. This patch adds an extra branch so that LLVM can know what the possibilities are for the discriminant, which fixes the three- and four- valued cases. Note that for whatever reason, this doesn't fix the case of 2 variants (most notably `Option` and `Result` have 2 variants) - a pass re-ordering might fix this or we may wish to add "assume" annotations on discriminants to force it to optimize.
-
由 bors 提交于
Rollup of 7 pull requests - Successful merges: #45815, #45941, #45950, #45961, #45967, #45970, #45977 - Failed merges:
-
- 14 11月, 2017 9 次提交
-
-
由 Guillaume Gomez 提交于
Fixed several pulldown warnings when documenting libstd.
-
由 Guillaume Gomez 提交于
Add missing links in FromStr docs r? @QuietMisdreavus
-
由 Guillaume Gomez 提交于
MIR-borrowck: don't ICE for cannot move from array error Closes #45694 compile-fail test E0508 now gives ```text error[E0508]: cannot move out of type `[NonCopy; 1]`, a non-copy array (Ast) --> .\src\test\compile-fail\E0508.rs:18:18 | 18 | let _value = array[0]; //[ast]~ ERROR E0508 | ^^^^^^^^ | | | cannot move out of here | help: consider using a reference instead: `&array[0]` error[E0508]: cannot move out of type `[NonCopy; 1]`, a non-copy array (Mir) --> .\src\test\compile-fail\E0508.rs:18:18 | 18 | let _value = array[0]; //[ast]~ ERROR E0508 | ^^^^^^^^ cannot move out of here error: aborting due to 2 previous errors ```
-
由 Guillaume Gomez 提交于
Use #!/usr/bin/env as shebang for Bash scripts On some systems, the bash command could be available in another directory than /bin. As such, to offer an env shebang is more convenient. This make sense even for docker scripts, as you can use Docker on FreeBSD or SmartOS for example.
-
由 Guillaume Gomez 提交于
Rollup merge of #45950 - fitzgen:update-unary-and-binary-exprs-test-to-use-incr-except, r=michaelwoerister incr: Make `unary_and_binary_exprs.rs` use `except`-style incremental checking Part of #44924 r? @michaelwoerister
-
由 Guillaume Gomez 提交于
update match-expressions.rs with DepNode labels As a part of #44924, I have updated the match-expressions.rs. The PR has tests verified for the following dependency nodes for let-expressions - MirValidated - MirOptimized - TypeCheckTables - TypeOfItem - GenericsOfItem - PredicatesOfItem - FnSignature cc @michaelwoerister r? @nikomatsakis
-
由 Guillaume Gomez 提交于
rustdoc: tweak notes on ignore/compile_fail examples Part of https://github.com/rust-lang/rust/issues/44927 This is a softening of these notices to mention *why* a given example has a given callout, rather then telling viewers to be careful with an example. It also changes the character used for these samples from a warning logo to a circle-i/information logo. ![image](https://user-images.githubusercontent.com/5217170/32464361-5fbb5d9e-c305-11e7-8482-ce71b97a54df.png)
-
由 bors 提交于
Use getrandom syscall for all Linux and Android targets. I suppose we can use it in all Linux and Android targets. In function `is_getrandom_available` is checked if the syscall is available (getrandom syscall was add in version 3.17 of Linux kernel), if the syscall is not available `fill_bytes` fallback to reading from `/dev/urandom`. Update libc to include getrandom related constants.
-
由 Shotaro Yamada 提交于
-