profile
viewpoint

rust-lang/nomicon 457

The Dark Arts of Advanced and Unsafe Rust Programming

rust-lang/reference 305

The Rust Reference

matthewjasper/book 0

The Rust Programming Language

matthewjasper/cargo 0

The Rust package manager

matthewjasper/chalk 0

A PROLOG-ish interpreter written in Rust, intended eventually for use in the compiler

matthewjasper/compiler-explorer 0

Run compilers interactively from your web browser and interact with the assembly

matthewjasper/intellij-rust 0

Rust plugin for the IntelliJ Platform: https://intellij-rust.github.io/

matthewjasper/miri 0

An interpreter for Rust's mid-level intermediate representation

matthewjasper/nomicon 0

The Dark Arts of Advanced and Unsafe Rust Programming

matthewjasper/reference 0

The Rust Reference

pull request commentrust-lang/rust

Separate projection bounds and predicates

This run was mostly done last I checked... @craterbot p=1

matthewjasper

comment created time in 3 days

pull request commentrust-lang/rust

Remove two fields from `SubstFolder`.

@bors r+

nnethercote

comment created time in 7 days

issue commentrust-lang/rust

Unexpected trait resolution overflow error

This is probably due to #73452 allowing cycles to be detected earlier. #73905 fixes this, but isn't suitable for a backport, so I'll open a PR that only includeds the relevant commit.

weiznich

comment created time in 10 days

push eventmatthewjasper/rust

Guillaume Gomez

commit sha 633d1a5af96db7eccb8aeeb07ff31b06aaf07b5f

Clean up E0720 explanation

view details

Dan Aloni

commit sha 28e27566782e5f2636b9c93a172c19024630233d

librustc_typeck: use diag item instead of string compare

view details

Dan Aloni

commit sha d077767ee72221f2a436692ef85115381671a765

Update src/librustc_typeck/check/op.rs Co-authored-by: Bastian Kauschke <bastian_kauschke@hotmail.de>

view details

Aaron Hill

commit sha ac9dfc3e7785c9bba96ebac4fd51726189e1bf91

Normalize opaque types when converting `ParamEnv` to `Reveal::All` Fixes #65918

view details

Aaron Hill

commit sha 117a60e1f5045e317d3f76ce60be28d18c694608

Erase regions in try_eval_bits

view details

Aaron Hill

commit sha 90aee14eb95ac0b9ddb7cf5db6d003155e94800c

Skip computing param_env and size if not needed

view details

Aaron Hill

commit sha 5e2e927e0107916b825b164c82be44877ac6ab54

Fix rebase fallout

view details

Bastian Kauschke

commit sha 49b1971263971db49e821f81bb54991b7de5ab43

add const generics

view details

Rich Kadel

commit sha 12ddd6073abecb7a515a43bee37408596e322345

Fixed coverage map issues; better aligned with LLVM APIs Found some problems with the coverage map encoding when testing with more than one counter per function. While debugging, I realized some better ways to structure the Rust implementation of the coverage mapping generator. I refactored somewhat, resulting in less code overall, expanded coverage of LLVM Coverage Map capabilities, and much closer alignment with LLVM data structures, APIs, and naming. This should be easier to follow and easier to maintain.

view details

Guillaume Gomez

commit sha 1d2e3fff69b654c3dfd6a810e193db29bb1868fa

Clean up E0730 explanation

view details

Guillaume Gomez

commit sha f22a34e84d4dba9b17bb3e68051ee82bd85f3c94

Clean up E0734 explanation

view details

Joseph Ryan

commit sha c692ed468c8dc4b9f549ef839b4b490e3b84d19c

Move `Error` and `RenderInfo` out of `html` module

view details

Joseph Ryan

commit sha 5bc97946ca35a789b690668bb6b27ca41bfeb5b2

Refactor html backend to use generic interface

view details

Joseph Ryan

commit sha 6a4396b98c6fcb405429a9798a9ab6554f015b7e

Extract `Cache` and other types from `html` module

view details

Joseph Ryan

commit sha a7909522547cb35b32a4f11b78b2b54864189295

Pull out more types from html

view details

Joseph Ryan

commit sha 65bf5d5248635152262344770591c367ba6a9890

TODO -> FIXME

view details

Joseph Ryan

commit sha 3d707a008e0822471de4adad047b5cefd281f3ac

Make requested changes

view details

Alan Somers

commit sha 013e1a6e9f73125734cb919d9b6220b3a4710d67

Enable the profiler on FreeBSD FreeBSD has been doing this in our own package builds for two months now. https://svnweb.freebsd.org/ports?view=revision&revision=535771

view details

Nathaniel McCallum

commit sha 25670749b44a9c7a4cfd3fbf780bbe3344a9a6c5

Suppress debuginfo on naked function arguments A function that has no prologue cannot be reasonably expected to support debuginfo. In fact, the existing code (before this patch) would generate invalid instructions that caused crashes. We can solve this easily by just not emitting the debuginfo in this case. Fixes https://github.com/rust-lang/rust/issues/42779 cc https://github.com/rust-lang/rust/issues/32408

view details

Joseph Ryan

commit sha cee8023c690158daf4f6c3d8bf2d32297fdfed0c

More requested changes

view details

push time in 10 days

pull request commentrust-lang/rust

Suppress debuginfo on naked function arguments

@bors r+

npmccallum

comment created time in 12 days

push eventmatthewjasper/rust

flip1995

commit sha f7acea2683c6124854bfe20e7127e4dfba344d3e

Register redundant_field_names and non_expressive_names as early passes

view details

flip1995

commit sha 485229c4a3d6a2fbe40f5a6976a33144a27497c6

Fix fallout in redundant_field_names

view details

flip1995

commit sha efd3dcff97f67f376e354c047133ce9044c52991

Fix fallout in similar_names

view details

Eduardo Broto

commit sha bb37a0f948b02e6434dbe3ea615960052d37f784

Avoid triggering similar names on code from expansion

view details

Alexis Bourget

commit sha 2853448426ce76926baa7e6e6173c15228e4951a

Document the ref keyword

view details

Stefan Lankes

commit sha 6813c1c69baf870a479c70e23ad0550d1d9aa9be

revise RwLock, which is derived from the wasm implementation - increasing the readability of `Condvar` - simplify the interface to the libos HermitCore

view details

Stefan Lankes

commit sha 3acc3ef10d2099a4b3118e8c705b36f4bbaf6f64

minor changes to pass the format check

view details

Stefan Lankes

commit sha beb1b1fa5b1047c7caf8a1d499725df3c1ad8cad

reorder crates to pass the format check

view details

Stefan Lankes

commit sha f9c609164251abc136eb9bda55c92cb99adb5c86

remove some compiler warnings

view details

Trevor Spiteri

commit sha 6dfe144bdd4413ac55cbb2ad2edfb1daa0c4bf15

stabilize const_nonzero_int_methods

view details

Trevor Spiteri

commit sha 9739b512a892628534e730ffcd9756b3218c8de8

stabilize some const_checked_int_methods

view details

Trevor Spiteri

commit sha c1c674c2dbfe3f6dc47d11368c1b5ee4ab008799

stabilize const_saturating_int_methods

view details

Trevor Spiteri

commit sha 056d925167318636fcf975c8ffb81efebdc9bca3

stabilize const_int_sign

view details

Trevor Spiteri

commit sha 2a84e313df095fd0e81b9348b68bd9b1d1caa551

stabilize const_ascii_ctype_on_intrinsics

view details

Adam Perry

commit sha d275739c09f266479d6db388cbf55ba6ca791b9d

Derive common traits for panic::Location. Add documentation about the host/target behavior of Location::file.

view details

Alexis Bourget

commit sha 837a761b398a6ff6a97f7f61e390dae9efbeab79

Document the where keyword

view details

Andrey Zgarbul

commit sha 7d4a92d4f8dc03409984695d78893fffdd3ff1f9

remove LengthAtMost32 on AsRef/Borrow impl for array

view details

Roman Proskuryakov

commit sha eff62069ad602090e8d27b83cffd9e77479ed4be

Remove the usage of the LengthAtMost32 trait

view details

Roman Proskuryakov

commit sha 4ad40a8737ab4ffaf6352ec4560fd86cb0b4ade8

Remove LengthAtMost32

view details

Roman Proskuryakov

commit sha 44dd95e4d008e9edc112dc1a599eac028889e015

Fix copypaste in test into-iter-impls-length-33 (const generic 32 -> 33)

view details

push time in 13 days

pull request commentrust-lang/rust

Separate projection bounds and predicates

@craterbot retry

matthewjasper

comment created time in 14 days

pull request commentrust-lang/rust

Suppress debuginfo on naked function arguments

Yes

npmccallum

comment created time in 14 days

push eventrust-lang/reference

Gygaxis Vainhardt

commit sha fcdc0cab546c10921d66054be25c6afc9dd6b3bc

Added Unpin to list of Auto Traits

view details

matthewjasper

commit sha 031bad4f640891f6cf96c09d32729dd383eb95d4

Merge pull request #854 from AloeareV/Unpin Added Unpin to list of Auto Traits

view details

push time in 16 days

PR merged rust-lang/reference

Added Unpin to list of Auto Traits

Closes #680

+2 -1

1 comment

1 changed file

AloeareV

pr closed time in 16 days

issue closedrust-lang/reference

Unpin being an auto trait is not documented in list of auto traits

As documented in the Unpin stdlib docs, Unpin "is automatically implemented for almost every type." However, the "Auto Traits" section does not list it.

closed time in 16 days

astraw

pull request commentrust-lang/reference

Added Unpin to list of Auto Traits

Thanks

AloeareV

comment created time in 16 days

pull request commentrust-lang/rust

Fix #73948

Ideally the cannot find crate error wouldn't be fatal so that resolve would emit an ambiguity error. Maybe @petrochenkov has some ideas on this.

chocol4te

comment created time in 16 days

pull request commentrust-lang/rust

Suppress debuginfo on naked function arguments

The hang appears to happen in master as well, r=me with an issue opened and referenced in the test for this.

npmccallum

comment created time in 16 days

pull request commentrust-lang/rust

Separate projection bounds and predicates

@craterbot check

matthewjasper

comment created time in 16 days

pull request commentrust-lang/rust

Separate projection bounds and predicates

In case I forget @bors p=1 rollup=never

matthewjasper

comment created time in 16 days

Pull request review commentrust-lang/rust

Separate projection bounds and predicates

 impl<'a, 'b> Lam<&'a &'b u8> for L2 { type App = u8; }  trait Case1 {     type A: Iterator<Item: Debug>;+    //~^ ERROR `<<Self as Case1>::A as std::iter::Iterator>::Item` doesn't implement `std::fmt::Debug`

This is an unstable feature that doesn't work correctly in this position with or without this change.

matthewjasper

comment created time in 16 days

pull request commentrust-lang/rust

Separate projection bounds and predicates

On the off chance that the fixes changed the performance impact @rust-timer queue

matthewjasper

comment created time in 16 days

pull request commentrust-lang/rust

Separate projection bounds and predicates

I've fixed a everything that I think was a bug.

This needs a full crater re-run because it's possible that the fixes have introduced any unexpected bugs/regressions. @bors try @rustc-timer queue

@nikomatsakis you might want to have another look at this before the crater run because there are a couple of significant changes since your last review.

matthewjasper

comment created time in 16 days

pull request commentrust-lang/rust

Normalize bounds fully when checking defaulted types

@bors r+

tmandry

comment created time in 16 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha 15a318fd95470c7ad3ce9072b1775cf409318a7a

Don't immediately error for recursive projections

view details

push time in 16 days

pull request commentrust-lang/rust

Detect turbofish missing surrounding angle brackets

@bors r+

estebank

comment created time in 17 days

push eventmatthewjasper/rust

Yuki Okushi

commit sha b93ecc1dacd3d534b0fa24e4b14cd3b07bae9889

Address code reviews

view details

Nadrieril

commit sha 3cb31b6699558737b1a4650537f0facdc8cb7852

Fix #71977

view details

Eric Huss

commit sha 310c97b6ba7e6b8d4e3e7f337db0cff97f45f5c0

Fix caching issue when building tools.

view details

Ivan Tham

commit sha bc0d619325ccca85f804ab7f24752736748482d9

Fix spacing in Iterator fold doc

view details

Tomasz Miąsko

commit sha bcef848a6971217d4b8df50c17e047174018d316

Explain effects of debugging options from config.toml Co-authored-by: Teymour Aldridge <42674621+teymour-aldridge@users.noreply.github.com>

view details

Bastian Kauschke

commit sha 016e9f81573859a4601b645fd1178fdda95b2e73

expected found `&T` -> `T`

view details

Ralf Jung

commit sha 54d95ed25aa45f94b2a3d0a0e3a3323852878ecd

catch InvalidUninitBytes during validation

view details

Ralf Jung

commit sha c3fc4f0420b642a0e0041bb13492df2d4a68ae80

catch errors more locally around read_discriminant

view details

Ralf Jung

commit sha 751b594cc843a28c660a662db1a822a759af9603

const validation: add test for uninit bool

view details

Mark Rousskov

commit sha aae1215f7faa3aac5ada7e82585b86f1282cd89e

Shrink ParamEnv to 16 bytes

view details

Mark Rousskov

commit sha 8512d2efdef2c41aa529f44941f4c1f0e5fdd7de

Avoid deconstructing pointer for hashing

view details

Mark Rousskov

commit sha 3503247c11d80f0f17a36083878e6df114004d10

Shrink ParamEnv to 16 bytes

view details

Ralf Jung

commit sha 319c7f77dedf671b01194adb257dbe662c73df32

fmt

view details

Ralf Jung

commit sha 9cb1ffdd4fc372b18258b1bb12c55fd3c53d33f4

variant_count: avoid incorrect dummy implementation

view details

Ralf Jung

commit sha c478b5473d6623622d318d058477f5f09e2eeb52

add as_ptr method to raw slices

view details

Ralf Jung

commit sha 3b1d5e6d792fb47c9a95c4ea210ce88174f18b13

call the mut version as_mut_ptr and also add an as_ptr-like method to NonNull slices

view details

Ralf Jung

commit sha 90580c7b0e51050c892613664db79493df7a2af5

make unchecked slice indexing helper methods use raw pointers

view details

Ralf Jung

commit sha 5f5c98bd8a27b5313d0b1a5830076139c562b6b6

add (unchecked) indexing methods to raw pointers and NonNull

view details

Thom Chiovoloni

commit sha 980d8e1a0b18e89129cce23bb5a46c6a498dc5d2

Optimize is_ascii for &str and &[u8]

view details

Thom Chiovoloni

commit sha 63e2e2e32674ebe662b927c139931ffd8a352313

Avoid `vec!` allocation in `is_ascii_slice_*` benches

view details

push time in 17 days

Pull request review commentrust-lang/rust

[WIP] Add const qualifier in FnSig (for const fn pointers)

 impl Visitor<'tcx> for Validator<'mir, 'tcx> {                 let (def_id, substs) = match fn_ty.kind {                     ty::FnDef(def_id, substs) => (def_id, substs), -                    ty::FnPtr(_) => {+                    ty::FnPtr(fn_sig) => {+                        // At this point, we are calling a function by raw pointer because+                        // we know that it is const+                        if fn_sig.constness() == hir::Constness::Const {

The feature gate might also need to be checked here for code like this:

const fn fun_one(_: i32) {}
const fn fun_two(_: i32) {}

const A: () = {
    let x = if true {
        fun_one
    } else {
        fun_two
    };
    x(1);
};
filtsin

comment created time in 17 days

Pull request review commentrust-lang/rust

[WIP] Add const qualifier in FnSig (for const fn pointers)

 impl<'a, 'tcx, Bx: BuilderMethods<'a, 'tcx>> FunctionCx<'a, 'tcx, Bx> {                         // This is a no-op at the LLVM level.                         operand.val                     }+                    mir::CastKind::Pointer(PointerCast::NotConstFnPointer) => {

Use an or-pattern for these arms

filtsin

comment created time in 17 days

pull request commentrust-lang/rust

Normalize bounds fully when checking defaulted types

Can you try replacing the value of concrete_ty_predicate (line 1277) with predicate.subst(tcx, rebased_substs). Most of the code there is manually normalizing things that should now be normalizable using the additional predicate.

tmandry

comment created time in 17 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha 25007a95b2c5ec62a9960c1d55646544cb29bbcb

Rework `rustc_serialize` - Move the type parameter from `encode` and `decode` methods to the trait. - Remove `UseSpecialized(En|De)codable` traits. - Remove blanket impls for references. - Add `RefDecodable` trait to allow deserializing to arena-allocated references safely. - Remove ability to (de)serialize HIR. - Create proc-macros `(Ty)?(En|De)codable` to help implement these new traits.

view details

Matthew Jasper

commit sha 8745cddd728ca3667015b50ac69a346072ade9b1

Simplify arena_types macros

view details

Matthew Jasper

commit sha fccfddb8242f57ceb25d2a23bc8d03c6950c79a4

Add some documentation for (De|En)codable

view details

Matthew Jasper

commit sha 1b177bb46c112f3cffa8cceff61a3f8201a920c3

Fix tests and address review comments

view details

Matthew Jasper

commit sha 8ad59a679d863791c229411a7130fcdcc0962320

Fix ui fulldeps tests

view details

Matthew Jasper

commit sha 5449af607242400fee5ebd8fe89d3594b177f122

Fix run-make test

view details

Matthew Jasper

commit sha c3efbc05519ce3c5c4b89ccc35d94c4dbc61cb3b

Fix rustc_ast unit test

view details

Matthew Jasper

commit sha 7b0d96a962c92daa20a24e31b811452ed64b0869

Fix rustc_serialize unit tests

view details

push time in 17 days

push eventmatthewjasper/rust

Caio

commit sha 187aea7c34adf06b0db39f688d60d3fdac8e7e3e

Impl Default for ranges

view details

Jamie Cunliffe

commit sha fc52b47e8013da325fc0a0f5d3897143243ba206

va_args implementation for AAPCS. Implement the va args in codegen for AAPCS, this will be used as the default va_args implementation for AArch64 rather than the va_args llvm-ir as it currently is. Copyright (c) 2020, Arm Limited.

view details

Dan Gohman

commit sha 83bd3d3975bd56e0bd959b5df8129e4ee21aeca3

Add `RawFd` to WASI's `std::os::wasi::prelude`. Add `RawFd` to WASI's `std::os::wasi::prelude`, making it consistent with all other platforms which also have `AsRawFd`, `FromRawFd`, and `IntoRawFd` in their respective preludes.

view details

Andy Russell

commit sha 133e91da627a42218721caf2083c3f309e1b0dcc

libstd/libcore: fix various typos

view details

Caio

commit sha c3756927478afe8d3a880edc469afd766c2f9e82

Remove some Default impls

view details

Andrew Paverd

commit sha 31c7aae1136b4d80f0256e269ca8086fd3fbdddd

Stabilize control-flow-guard codegen option

view details

Guillaume Gomez

commit sha 839216a57c841c5cdd099cdecf8bd6dbf5808ae4

Improve logo image display in different themes

view details

Bastian Kauschke

commit sha 5300ca38d88b924f7108274c50d918728c53aecd

cleanup ty_is_~non~_local_constructor

view details

Bastian Kauschke

commit sha 1ac3713f256dd379d8fe24b09bc8ba6643ea41b4

refactor ty_is_non_local

view details

Yuki Okushi

commit sha a11024f4f312a49db84d816bf43c7c55d8a21074

Fix debug assertion in typeck

view details

Bastian Kauschke

commit sha e8d16fdf9f95e4110df53650779be842b6749f60

add note to `opt_const_param_of`

view details

Jane Lusby

commit sha 8561b67b6f263b6647f02d36e0824b6c54544bf0

add a Backtrace::disabled function

view details

Jane Lusby

commit sha 397c82bae15031f97bf12f0114834af1ba844b4f

remove trailing semi

view details

Lzu Tao

commit sha 174abeb6cb9553bae0a59fbf0aba186da300d390

Add an border around the Run button

view details

Jarek Samic

commit sha dec70767e533a4603baafb4c209ac3b90bba79f7

Fix search input focus in ayu theme

view details

Lzu Tao

commit sha 0eff3d5d886a2290b4557a4438efe8a6aa6cfba7

Ayu: use different background color to make Run button easy-to-spot Co-authored-by: Cldfire <cldfire@3grid.net>

view details

Lzu Tao

commit sha cfa3a330149b78c4d827b10d9ac4ff8d381e7342

compiletest: Rewrite extract_lldb_version function This makes extract_lldb_version has the same version type like extract_gdb_version. This is technically a breaking change for rustc-dev users. But note that rustc-dev is a nightly component.

view details

Lzu Tao

commit sha d778f326c385b2df7053b84fb5e3f89361b5fc3a

compiletest: Rewrite extract_gdb_version function

view details

Lzu Tao

commit sha 07d56cba8ffd854f1c8b91bb1372130e5abe6169

Fix panic as passing wrong format to `extract_gdb_version`

view details

Lzu Tao

commit sha 79d5cbbf867a888000b8bbd47194bc57b343b72a

Use Option::as_deref

view details

push time in 18 days

delete branch matthewjasper/rust

delete branch : empty-verify

delete time in 18 days

pull request commentrust-lang/rust

Use `ReEmpty(U0)` as the implicit region bound in typeck

@bors retry

matthewjasper

comment created time in 19 days

IssuesEvent

pull request commentrust-lang/rust

Separate projection bounds and predicates

"regressions" look like they're mostly bugs in this PR.

matthewjasper

comment created time in 21 days

pull request commentrust-lang/rust

Remove most specialization use in serialization

@bors p=1 rollup=iffy This will break code that adds new Rustc(De|En)codable uses.

matthewjasper

comment created time in 21 days

Pull request review commentrust-lang/rust

[WIP] Add const qualifier in FnSig (for const fn pointers)

 impl<'a> Parser<'a> {         let ast::FnHeader { ext, unsafety, constness, asyncness } = self.parse_fn_front_matter()?;         let decl = self.parse_fn_decl(|_| false, AllowPlus::No)?;         let whole_span = lo.to(self.prev_token.span);-        if let ast::Const::Yes(span) = constness {-            self.error_fn_ptr_bad_qualifier(whole_span, span, "const");

The feature gate should be here. There should be a self.sess.gated_spans.gate(sym::const_fn_pointer, span); call here and a gate_all!(const_fn_pointer, "..."); invocation in src/librustc_ast_passes/feature_gate.rs.

filtsin

comment created time in 21 days

Pull request review commentrust-lang/rust

[WIP] Add const qualifier in FnSig (for const fn pointers)

 impl<'tcx> Relate<'tcx> for abi::Abi {     } } +impl<'tcx> Relate<'tcx> for ast::Constness {+    fn relate<R: TypeRelation<'tcx>>(+        _relation: &mut R,+        a: ast::Constness,+        b: ast::Constness,+    ) -> RelateResult<'tcx, ast::Constness> {+        if a == b { Ok(a) } else { Ok(ast::Constness::NotConst) }

This should be if a == b { Ok(a) } else { Err(...) }, coercing from const fn() to fn() and from a const function item to a normal function pointer should be handled by adding a new variant to PointerCast in src/librustc_middle/ty/adjustment.rssrc/librustc_middle/ty/adjustment.rs and using it as appropriate in src/librustc_typeck/check/coercion.rs.

filtsin

comment created time in 22 days

Pull request review commentrust-lang/rust

[WIP] Add const qualifier in FnSig (for const fn pointers)

 impl<'a> Visitor<'a> for AstValidator<'a> {                     )                     .emit();                 });+                if !self.session.features_untracked().const_fn_pointer {

This should be feature gated in parsing

filtsin

comment created time in 22 days

Pull request review commentrust-lang/rust

Use `ReEmpty(U0)` as the implicit region bound in typeck

 impl Inherited<'a, 'tcx> {             deferred_generator_interiors: RefCell::new(Vec::new()),             opaque_types: RefCell::new(Default::default()),             opaque_types_vars: RefCell::new(Default::default()),-            implicit_region_bound: None,+            // Make sure that we can always assume `T: ReEmpty(U0)` for any+            // type parameter `T`.+            implicit_region_bound: Some(tcx.lifetimes.re_root_empty),

The issue is that it's possible that we have T: ReEmpty(Un) as an implied bound from a closure, which causes us to not generate VerifyBound::IsEmpty.

matthewjasper

comment created time in 21 days

issue closedrust-lang/compiler-team

Rework rustc_serialize

Proposal

rust-lang/rust#73851 reworks specialization in the following noticeable ways:

  • The type parameter in the Encodable and Decodable traits is moved from the method to the trait.
  • These traits are now derived using macros in rustc_macros rather than the built-in RustcEncodable and RustcDecodable derives.
  • Specialized implementations of Encodable and Decodable now directly use specialization.
  • A lot of transmutes are removed

Further documentation of serialization in rustc after the PR has landed can be found at rust-lang/rustc-guide#785.

Mentors or Reviewers

PR has already been reviewed by @oli-obk

Process

The main points of the Major Change Process is as follows:

  • [x] File an issue describing the proposal.
  • [ ] A compiler team member or contributor who is knowledgeable in the area can second by writing @rustbot second.
    • Finding a "second" suffices for internal changes. If however you are proposing a new public-facing feature, such as a -C flag, then full team check-off is required.
    • Compiler team members can initiate a check-off via @rfcbot fcp merge on either the MCP or the PR.
  • [ ] Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.

You can read more about Major Change Proposals on forge.

Comments

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

closed time in 22 days

matthewjasper

push eventmatthewjasper/rust

Alexis Bourget

commit sha 249e07b237bd3049eb7fd94afe450b7c09b6a3d9

Short documentation for the false keyword

view details

Alexis Bourget

commit sha ba6857d801b6217a190e92e43cacd8468ff2d72a

Document the trait keyword

view details

Yoshua Wuyts

commit sha 18be370342c9b2a93f1d56b2b674bd2fbdcbb019

Add core::ready! macro

view details

Alexis Bourget

commit sha c38230e3b639783483277465ff3c3436a8fd5545

Deny unsafe op in unsafe functions in libstd/alloc.rs

view details

Lzu Tao

commit sha afbfe603fc1c288a0cff63b3b1cad43902a66e9b

Remove combine function Comparing two array directly helps generate better assert message

view details

Josh Stone

commit sha 75748a4116c1d3bbdedd9d2f9c1cf95d9f4d9df7

ci: Update dist-{i686,x86_64}-linux to Debian 6 This increases the minimum `{i686,x86_64}-unknown-linux-gnu` platform from RHEL/CentOS 5 (glibc 2.5 and kernel 2.6.18) to a slightly newer Debian 6 `squeeze` (glibc 2.11 and kernel 2.6.32). While that release is already EOL, it happens to match the minimum common versions of two enterprise distros that do still need Rust support -- RHEL 6 (glibc 2.12 and kernel 2.6.32) and SLES 11 SP4 (glibc 2.11 and kernel 3.0).

view details

Lokathor

commit sha 48ec236c8c7c5a32077c465eb254646a9860f802

start GBA file.

view details

Aleksey Kladov

commit sha cac1768b03c8d6673c51605dca03997876979d68

First cut of `std::lazy` module

view details

Ashley Mannix

commit sha 237a97760ad79a21ce0655b9f5adc0cc5b5cbc79

integrate Lazy into std layout This commit refactors the initial implementation to fit into std and makes some other changes: - use MaybeUninit internally in SyncOnceCell - correctly impl Drop for lazy::Once - port Lazy::take from once_cell from: https://github.com/matklad/once_cell/pull/100 Co-Authored-By: Paul Dicker <pitdicker@users.noreply.github.com>

view details

Ashley Mannix

commit sha d1263f5e66d31ad170c524a70aa5f21e08474326

use set() in SyncOnceCell::from

view details

Ashley Mannix

commit sha d1017940d77f35f841008c3e108e3da5e48a592f

remove inlined lazy::Waiter in favor of sync::Once

view details

Ashley Mannix

commit sha 1f1cda65d9a5c88855d3fbcb3912095474e557de

appease tidy

view details

Alexis Bourget

commit sha 8a2f147b5b9756e67dc2299777b8b534bbd73d0b

Fix small nits, clarfying some confusing vocabulary and using more consistent wording

view details

Lokathor

commit sha e190bdf710101d8fdf12195dcc73749719a57e72

fill in all those options.

view details

Kristofer Rye

commit sha ab23a2a9c54fed2acbd553407a761f19af6e8ed4

ci: Set `shell: bash` as a default, remove duplicates A follow-up to #74406, this commit merely removes the `shell: bash` lines where they are explicitly added in favor of setting defaults for *all* "run" steps. Signed-off-by: Kristofer Rye <kristofer.rye@gmail.com>

view details

Lokathor

commit sha 9c4ac7395953435a5f39cfaf93c7679df068bade

Docs clarifications.

view details

Lokathor

commit sha 72fa7f82503d4eb3c09e5dce600ac044c2835688

Add to supported_targets list.

view details

Lokathor

commit sha 66a3d6859ba8cca6eab614014c001a0ef4be9809

fix the imports.

view details

Tomasz Miąsko

commit sha b26ecd261b827837df8bb01c8fd5bf80dced8909

Test codegen of compare_exchange operations

view details

Lokathor

commit sha 7cbff846edcedc7ab9d0dfd82e6f711fe99e2520

Resolve https://github.com/rust-lang/rust/pull/74419#discussion_r456141344

view details

push time in 22 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha 45c01edaf21f9052eec8d04cb32c7724eb627e03

Use `ReEmpty(U0)` as the implicit region bound in typeck

view details

push time in 22 days

pull request commentrust-lang/rust

do not try fetching the ancestors of errored trait impls

@bors r+

lcnr

comment created time in 22 days

pull request commentrust-lang/rust

Use `ReEmpty(U0)` as the implicit region bound in typeck

This should be fine for a stable backport

matthewjasper

comment created time in 23 days

PR opened rust-lang/rust

Use `ReEmpty(U0)` as the implicit region bound in typeck T-compiler beta-nominated

Fixes #74429

r? @nikomatsakis

+104 -1

0 comment

3 changed files

pr created time in 23 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha cf8ae305e4e34b0d909b2e115222030ff36b55b8

Use `ReEmpty(U0)` as the implicit region bound in typeck

view details

push time in 23 days

create barnchmatthewjasper/rust

branch : empty-verify

created branch time in 23 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha ddf030a9d4848681704c51b47d0eccfb9953fe30

Fix rustc_serialize unit tests

view details

push time in 23 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha c033e69f509a9e6211488770e4748d68eb012acc

Fix rustc_ast unit test

view details

push time in 24 days

push eventmatthewjasper/rust

Yoshua Wuyts

commit sha a31f103fd27bde3f83b9dd54af8e41d64e5001f4

Add core::future::{poll_fn, PollFn}

view details

djugei

commit sha b4337ab8c387658b7012fa242e429f46c5f31141

added .collect() into String from Box<str> with fake feature/stability annotation

view details

Mohsen Zohrevandi

commit sha c4b02659c16d2ad0ac36d2c8602edd002e559f7a

Enable some timeouts in SGX platform This would partially resolve https://github.com/fortanix/rust-sgx/issues/31

view details

Mohsen Zohrevandi

commit sha d7dc64bdfea4fbf8974774800ab51e04eaa4f082

Handle spurious wakeups in wait_timeout_sgx

view details

Mohsen Zohrevandi

commit sha c5d1fcd2309b6903fed82aba6e0fdc2fa85bc874

Allow more ui tests for SGX

view details

Alexis Bourget

commit sha 049f6eaa792fbbf2b727fc278ddd23d1e11d57bd

Fixing broken link for the Eq trait

view details

Teddy_Wang

commit sha 40ee620e51c86c72e3c2b65df71f5f0a4a79797f

Added a lint for .map(|x| x)

view details

Mohsen Zohrevandi

commit sha 3442d23c1a12f1f01a0e07b6bec72b58998f49ef

Improve wait_timeout_sgx, simplify usercalls::wait

view details

CAD97

commit sha 7779a11448927e208ed6eb9bb609dd23595f77ce

Use step_unchecked more liberally

view details

Alexis Bourget

commit sha 6e8251742071d56545b6ce160ed71bb60597ee01

Documenting the separate behaviors of edition 2015 and 2018

view details

Alexis Bourget

commit sha 59701360dc0c76bfa45204d307ac5055f8bff538

Fix some small mistakes

view details

flip1995

commit sha 80bcbf521c7ff95e38a7567432b5519cc18e5b2a

Merge commit 'c2c07fa9d095931eb5684a42942a7b573a0c5238' into clippyup

view details

Teddy_Wang

commit sha fb4f9a0ad7a4656beb01c85b02b3e6ef15d914ec

Fix pattern match of ExprKind::MethodCall

view details

bors

commit sha 583d64493484f72425ecac55eaf5eddbba10b132

Auto merge of #5694 - wangtheo:issue-5626, r=matthiaskrgr #5626: lint iterator.map(|x| x) changelog: adds a new lint for iterator.map(|x| x) (see https://github.com/rust-lang/rust-clippy/issues/5626) The code also lints for result.map(|x| x) and option.map(|x| x). Also, I'm not sure if I'm checking for type adjustments correctly and I can't think of an example where .map(|x| x) would apply type adjustments.

view details

Ayaz Hafiz

commit sha 7c1b3aa0ddb81954a804455ca45fcf09fdb17dd8

Record span of `const` kw in GenericParamKind Context: this is needed to fix https://github.com/rust-lang/rustfmt/issues/4263, which currently records the span of a const generic param incorrectly because the location of the `const` kw is not known. I am not sure how to add tests for this; any guidance in how to do so would be appreciated :slightly_smiling_face:

view details

Eduardo Broto

commit sha 5987c7d4041ce5d72c8412d2ad73fe3b63308b51

cmp_owned: avoid FP when PartialEq is not implemented symmetrically

view details

Eduardo Broto

commit sha b498e1d71537a79e7aff5378da625aca8b4eef96

cmp_owned: reverse operands if necessary

view details

Tim Nielens

commit sha 6bf5434e19ce6d2a501589d1fcbc0d1748c531a6

copy_on_clone - add machine applicability

view details

bors

commit sha a14eab389f6e9f8bdaffbba184b20220041b036f

Auto merge of #5745 - montrivo:copy_on_clone, r=phansch clone_on_copy - add machine applicability Fix #4826. Change the applicability of the lint clone_on_copy. Split a test file and run rustfix on the clone_on_copy part. changelog: clone_on_copy - add machine applicability

view details

bors

commit sha 46d33043d5de0403a2a3dab9e7817041999bf9dd

Auto merge of #5701 - ebroto:4874_cmp_owned_fp, r=flip1995 cmp_owned: handle when PartialEq is not implemented symmetrically changelog: Handle asymmetrical implementations of PartialEq in [`cmp_owned`]. Fixes #4874

view details

push time in 24 days

push eventmatthewjasper/rust

Matthew Jasper

commit sha f72cf892c732a207f2009016ac0d3d3dc59cf95c

Lazy normalization: enough progress for a write-up

view details

push time in 24 days

issue openedrust-lang/rust

Internal compiler error: find_vtable_types_for_unsizing: invalid coercion

I tried this code (modified version of src/test/ui/specialization/issue-44861.rs):

#![feature(specialization)]
#![feature(unsize, coerce_unsized)]

use std::ops::CoerceUnsized;

pub struct SmartassPtr<A: Smartass+?Sized>(A::Data);

pub trait Smartass {
    type Data;
    type Data2: CoerceUnsized<*const [u8]>;
}

pub trait MaybeObjectSafe {}

impl MaybeObjectSafe for () {}

impl<T> Smartass for T {
    type Data = <Self as Smartass>::Data2;
    default type Data2 = *const [u8; 0];
}

impl Smartass for () {
    type Data2 = *const [u8; 1];
}

impl Smartass for dyn MaybeObjectSafe {
    type Data = *const [u8];
    type Data2 = *const [u8; 0];
}

impl<U: Smartass+?Sized, T: Smartass+?Sized> CoerceUnsized<SmartassPtr<T>> for SmartassPtr<U>
    where <U as Smartass>::Data: std::ops::CoerceUnsized<<T as Smartass>::Data>
{}

pub fn conv(s: SmartassPtr<()>) -> SmartassPtr<dyn MaybeObjectSafe> {
    s // This shouldn't coerce
}

I expected to see this happen: mismatched types error in conv due to mismatched types

Instead, this happened: ICE

Meta

rustc --version --verbose:

rustc 1.46.0-nightly (346aec9b0 2020-07-11)
binary: rustc
commit-hash: 346aec9b02f3c74f3fce97fd6bda24709d220e49
commit-date: 2020-07-11
host: x86_64-unknown-linux-gnu
release: 1.46.0-nightly
LLVM version: 10.0

<details><summary>Backtrace</summary> <p>

warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
 --> tmp/coerce-unsize-spec.rs:2:12
  |
2 | #![feature(specialization)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information

error: internal compiler error: src/librustc_mir/monomorphize/collector.rs:898:14: find_vtable_types_for_unsizing: invalid coercion <() as Smartass>::Data -> <dyn MaybeObjectSafe as Smartass>::Data

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:916:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1076
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1537
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:217
  10: rustc_driver::report_ice
  11: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:530
  12: std::panicking::begin_panic
  13: rustc_errors::HandlerInner::bug
  14: rustc_errors::Handler::bug
  15: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
  16: rustc_middle::ty::context::tls::with_opt::{{closure}}
  17: rustc_middle::ty::context::tls::with_opt
  18: rustc_middle::util::bug::opt_span_bug_fmt
  19: rustc_middle::util::bug::bug_fmt
  20: rustc_mir::monomorphize::collector::find_vtable_types_for_unsizing
  21: rustc_mir::monomorphize::collector::find_vtable_types_for_unsizing
  22: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_rvalue
  23: rustc_mir::monomorphize::collector::collect_neighbours
  24: rustc_mir::monomorphize::collector::collect_items_rec
  25: rustc_session::utils::<impl rustc_session::session::Session>::time
  26: rustc_mir::monomorphize::collector::collect_crate_mono_items
  27: rustc_mir::monomorphize::partitioning::collect_and_partition_mono_items
  28: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::collect_and_partition_mono_items>::compute
  29: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  30: rustc_data_structures::stack::ensure_sufficient_stack
  31: rustc_query_system::query::plumbing::get_query_impl
  32: rustc_codegen_ssa::back::symbol_export::exported_symbols_provider_local
  33: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::exported_symbols>::compute
  34: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
  35: rustc_data_structures::stack::ensure_sufficient_stack
  36: rustc_query_system::query::plumbing::get_query_impl
  37: rustc_metadata::rmeta::encoder::encode_metadata_impl
  38: rustc_data_structures::sync::join
  39: rustc_metadata::rmeta::decoder::cstore_impl::<impl rustc_middle::middle::cstore::CrateStore for rustc_metadata::creader::CStore>::encode_metadata
  40: rustc_middle::ty::context::TyCtxt::encode_metadata
  41: rustc_interface::passes::start_codegen
  42: rustc_middle::ty::context::tls::enter_global
  43: rustc_interface::queries::Queries::ongoing_codegen
  44: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
  45: rustc_span::with_source_map
  46: rustc_interface::interface::create_compiler_and_run
  47: scoped_tls::ScopedKey<T>::set
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.46.0-nightly (346aec9b0 2020-07-11) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib

query stack during panic:
#0 [collect_and_partition_mono_items] collect_and_partition_mono_items
#1 [exported_symbols] exported_symbols
end of query stack
error: aborting due to previous error; 1 warning emitted

</p> </details>

created time in 25 days

pull request commentrust-lang/rust

Don't assign `()` to `!` MIR locals

@bors r+ rollup

jonas-schievink

comment created time in 25 days

issue commentrust-lang/rust

Incoherent impls are allowed on default associated types

@JohnTitor The issue number for the glacier test needs to be changed.

matthewjasper

comment created time in a month

issue openedrust-lang/rust

Incoherent impls are allowed on default associated types

I tried this code:

#![feature(type_alias_impl_trait)]

type X<T> = impl Sized;

fn f<T>() -> X<T> {}

trait Y {
    fn g(&self) {}
}

impl Y for X<()> {}
impl Y for X<i32> {}

fn main() {
    f::<()>().g();
}

I expected to see this happen: error for potentially overlapping impls

Instead, this happened: ICEs in codegen

Meta

rustc --version --verbose:

rustc 1.46.0-nightly (346aec9b0 2020-07-11)
binary: rustc
commit-hash: 346aec9b02f3c74f3fce97fd6bda24709d220e49
commit-date: 2020-07-11
host: x86_64-pc-windows-msvc
release: 1.46.0-nightly
LLVM version: 10.0

<details><summary>Backtrace</summary> <p>

warning: the feature `specialization` is incomplete and may not be safe to use and/or cause compiler crashes
 --> .\tmp\defaults-incoherent.rs:1:12
  |
1 | #![feature(specialization)]
  |            ^^^^^^^^^^^^^^
  |
  = note: `#[warn(incomplete_features)]` on by default
  = note: see issue #31844 <https://github.com/rust-lang/rust/issues/31844> for more information

thread 'rustc' panicked at 'called `Result::unwrap()` on an `Err` value: ErrorReported', src\librustc_mir\monomorphize\collector.rs:721:84
stack backtrace:
   0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
   1: core::fmt::write
   2: <std::io::IoSliceMut as core::fmt::Debug>::fmt
   3: std::panicking::take_hook
   4: std::panicking::take_hook
   5: rustc_driver::report_ice
   6: std::panicking::rust_panic_with_hook
   7: rust_begin_unwind
   8: core::panicking::panic_fmt
   9: core::result::unwrap_failed
  10: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
  11: <rustc_mir::monomorphize::collector::RootCollector as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_impl_item
  12: rustc_mir::monomorphize::collector::collect_crate_mono_items
  13: <rustc_mir::dataflow::impls::borrows::BorrowIndex as core::fmt::Debug>::fmt
  14: rustc_mir::monomorphize::collector::collect_crate_mono_items
  15: rustc_mir::monomorphize::partitioning::compute_codegen_unit_name
  16: <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at
  17: <rustc_codegen_llvm::llvm_::ffi::debuginfo::DISPFlags as core::fmt::Debug>::fmt
  18: rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type
  19: rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type
  20: <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at
  21: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
  22: rustc_interface::passes::QueryContext::print_stats
  23: rustc_interface::passes::BoxedResolver::complete
  24: rustc_interface::queries::Queries::ongoing_codegen
  25: <rustc_codegen_ssa::back::linker::MsvcLinker as rustc_codegen_ssa::back::linker::Linker>::partial_relro
  26: <env_logger::filter::inner::Filter as core::fmt::Display>::fmt
  27: <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref
  28: <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref
  29: <(&rustc_middle::ty::sty::Const,rustc_middle::mir::Field) as rustc_middle::ty::query::keys::Key>::default_span
  30: std::sys::windows::thread::Thread::new
  31: BaseThreadInitThunk
  32: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.46.0-nightly (346aec9b0 2020-07-11) running on x86_64-pc-windows-msvc

query stack during panic:
#0 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
warning: 1 warning emitted

error: internal compiler error: encountered ambiguity selecting `Binder(<() as Y>)` during codegen, presuming due to overflow or prior type error
  |
  = note: delayed at /rustc/346aec9b02f3c74f3fce97fd6bda24709d220e49\src\librustc_session\session.rs:436:27

thread 'rustc' panicked at 'no errors encountered even though `delay_span_bug` issued', src\librustc_errors\lib.rs:367:17
stack backtrace:
   0:     0x7ffcfbfa9a2e - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h9fa330dd7e3de9bd
   1:     0x7ffcfbfd740c - core::fmt::write::he569a1ab62a01108
   2:     0x7ffcfbf9b1a3 - <std::io::IoSliceMut as core::fmt::Debug>::fmt::h41603fb87d485071
   3:     0x7ffcfbfaf18b - std::panicking::take_hook::h755d174ec3438590
   4:     0x7ffcfbfaedd8 - std::panicking::take_hook::h755d174ec3438590
   5:     0x7ffcfc41610a - rustc_driver::report_ice::h5bc4860b8312dea9
   6:     0x7ffcfbfafb10 - std::panicking::rust_panic_with_hook::hbd7d7a2973bcd31a
   7:     0x7ffd004d281d - <rustc_errors::styled_buffer::StyledBuffer as core::fmt::Debug>::fmt::h7062ab9734834e2d
   8:     0x7ffd00500352 - <rustc_errors::HandlerInner as core::ops::drop::Drop>::drop::hde691b6f5e350660
   9:     0x7ffcfc450057 - <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref::hca40fb8fa09ef5ca
  10:     0x7ffcfc45c17a - <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref::hca40fb8fa09ef5ca
  11:     0x7ffcfc3e3ffc - <(&rustc_middle::ty::sty::Const,rustc_middle::mir::Field) as rustc_middle::ty::query::keys::Key>::default_span::h4115a0798415ecc2
  12:     0x7ffcfc3d7a21 - <rustc_codegen_ssa::back::linker::MsvcLinker as rustc_codegen_ssa::back::linker::Linker>::partial_relro::h84f5664230855038
  13:     0x7ffd00722630 - _rust_alloc_zeroed
  14:     0x7ffd00721e8b - _rust_alloc_zeroed
  15:     0x7ffd0071fbb4 - _rust_alloc_zeroed
  16:     0x7ffd007219ce - _rust_alloc_zeroed
  17:     0x7ffd00720065 - _rust_alloc_zeroed
  18:     0x7ffd656b016f - _chkstk
  19:     0x7ffd65631c56 - RtlUnwindEx
  20:     0x7ffd0071fef5 - _rust_alloc_zeroed
  21:     0x7ffd007210c0 - _rust_alloc_zeroed
  22:     0x7ffd007213b7 - _rust_alloc_zeroed
  23:     0x7ffd00721ad4 - _rust_alloc_zeroed
  24:     0x7ffd00720065 - _rust_alloc_zeroed
  25:     0x7ffd656b00ef - _chkstk
  26:     0x7ffd6565b474 - RtlRaiseException
  27:     0x7ffd6565b1c5 - RtlRaiseException
  28:     0x7ffd63073e49 - RaiseException
  29:     0x7ffcfbffa5a5 - _umoddi3
  30:     0x7ffcfbfc1d31 - _rust_start_panic
  31:     0x7ffcfbfc1cb9 - _rust_start_panic
  32:     0x7ffcfbfafcb8 - rust_panic
  33:     0x7ffcfbfafb99 - std::panicking::rust_panic_with_hook::hbd7d7a2973bcd31a
  34:     0x7ffcfbfaf65f - rust_begin_unwind
  35:     0x7ffcfbfd3d50 - core::panicking::panic_fmt::h24891fb3d19f6dcf
  36:     0x7ffcfbfd39e3 - core::result::unwrap_failed::h08663fa7314c6527
  37:     0x7ffcff157bee - <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator::he7c45c11d185f795
  38:     0x7ffcff159eee - <rustc_mir::monomorphize::collector::RootCollector as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_impl_item::hd74b81843bceb49e
  39:     0x7ffcff155017 - rustc_mir::monomorphize::collector::collect_crate_mono_items::h48c3630ce41bcfb2
  40:     0x7ffcff17595c - <rustc_mir::dataflow::impls::borrows::BorrowIndex as core::fmt::Debug>::fmt::hcdfacfd9122b6ab6
  41:     0x7ffcff1539ac - rustc_mir::monomorphize::collector::collect_crate_mono_items::h48c3630ce41bcfb2
  42:     0x7ffcff375f69 - rustc_mir::monomorphize::partitioning::compute_codegen_unit_name::hb80b3e3600310ae3
  43:     0x7ffcfc8809c7 - <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at::h88328364fbfe1b75
  44:     0x7ffcfc789334 - <rustc_codegen_llvm::llvm_::ffi::debuginfo::DISPFlags as core::fmt::Debug>::fmt::h0d6f3453cdb67586
  45:     0x7ffcfc7a7f90 - rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type::h7f3163bb36afe4a6
  46:     0x7ffcfc7f0a00 - rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type::h7f3163bb36afe4a6
  47:     0x7ffcfc882e7b - <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at::h88328364fbfe1b75
  48:     0x7ffcfc82c8c9 - <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate::h2f177f92f53316ae
  49:     0x7ffcfc58b54f - rustc_interface::passes::QueryContext::print_stats::he6b0204640bb6041
  50:     0x7ffcfc5a351c - rustc_interface::passes::BoxedResolver::complete::h363c34fdc5dbd1ef
  51:     0x7ffcfc597da1 - rustc_interface::queries::Queries::ongoing_codegen::h085a7f7dbbab46a2
  52:     0x7ffcfc3d6a0a - <rustc_codegen_ssa::back::linker::MsvcLinker as rustc_codegen_ssa::back::linker::Linker>::partial_relro::h84f5664230855038
  53:     0x7ffcfc400ace - <env_logger::filter::inner::Filter as core::fmt::Display>::fmt::ha8cb8d62fcfb1df4
  54:     0x7ffcfc4206e9 - <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref::hca40fb8fa09ef5ca
  55:     0x7ffcfc422a15 - <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref::hca40fb8fa09ef5ca
  56:     0x7ffcfc3df1f3 - <(&rustc_middle::ty::sty::Const,rustc_middle::mir::Field) as rustc_middle::ty::query::keys::Key>::default_span::h4115a0798415ecc2
  57:     0x7ffcfbfbef7a - std::sys::windows::thread::Thread::new::h9c6ccf8206794202
  58:     0x7ffd65156fd4 - BaseThreadInitThunk
  59:     0x7ffd6565cec1 - RtlUserThreadStart

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.46.0-nightly (346aec9b0 2020-07-11) running on x86_64-pc-windows-msvc

query stack during panic:
end of query stack
thread panicked while panicking. aborting.

</p> </details>

created time in a month

issue openedrust-lang/rust

Incoherent impls are allowed on opaque types

I tried this code:

#![feature(specialization)]

trait X {
    type U;
    fn f(&self) -> Self::U { loop {} }
}

impl<T> X for T {
    default type U = ();
}

trait Y {
    fn g(&self) {}
}

impl Y for <() as X>::U {}
impl Y for <i32 as X>::U {}

fn main() {
    ().f().g();
}

I expected to see this happen: error for potentially overlapping impls

Instead, this happened: ICEs in codegen

Meta

rustc --version --verbose:

rustc 1.46.0-nightly (346aec9b0 2020-07-11)
binary: rustc
commit-hash: 346aec9b02f3c74f3fce97fd6bda24709d220e49
commit-date: 2020-07-11
host: x86_64-pc-windows-msvc
release: 1.46.0-nightly
LLVM version: 10.0

<details><summary>Backtrace</summary> <p>

error: internal compiler error: src\librustc_trait_selection\traits\codegen\mod.rs:62:17: Encountered error `Unimplemented` selecting `Binder(<() as Y>)` during codegen

thread 'rustc' panicked at 'Box<Any>', src\librustc_errors\lib.rs:916:9
stack backtrace:
   0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
   1: core::fmt::write
   2: <std::io::IoSliceMut as core::fmt::Debug>::fmt
   3: std::panicking::take_hook
   4: std::panicking::take_hook
   5: rustc_driver::report_ice
   6: std::panicking::rust_panic_with_hook
   7: <rustc_errors::styled_buffer::StyledBuffer as core::fmt::Debug>::fmt
   8: rustc_errors::HandlerInner::err_count
   9: rustc_errors::Handler::bug
  10: rustc_middle::util::bug::bug_fmt
  11: <rustc_middle::ty::consts::ConstInt as core::fmt::Debug>::fmt
  12: <rustc_middle::ty::consts::ConstInt as core::fmt::Debug>::fmt
  13: rustc_middle::util::bug::bug_fmt
  14: rustc_middle::util::bug::bug_fmt
  15: unicode_normalization::normalize::is_hangul_syllable
  16: rustc_trait_selection::traits::codegen::codegen_fulfill_obligation
  17: rustc_ty::provide
  18: crc32fast::Hasher::finalize
  19: crc32fast::Hasher::finalize
  20: crc32fast::Hasher::finalize
  21: rustc_ty::provide
  22: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::features_query>::hash_result
  23: <rustc_middle::ty::binding::BindingMode as rustc_middle::ty::context::Lift>::lift_to_tcx
  24: rustc_middle::ty::structural_impls::<impl rustc_middle::ty::context::Lift for rustc_ast::ast::InlineAsmTemplatePiece>::lift_to_tcx
  25: <rustc_middle::ty::subst::UserSubsts as core::fmt::Debug>::fmt
  26: rustc_middle::ty::instance::Instance::resolve
  27: <rustc_mir::monomorphize::collector::MirNeighborCollector as rustc_middle::mir::visit::Visitor>::visit_terminator
  28: <rustc_mir::monomorphize::collector::RootCollector as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_impl_item
  29: rustc_mir::monomorphize::collector::collect_crate_mono_items
  30: <rustc_mir::dataflow::impls::borrows::BorrowIndex as core::fmt::Debug>::fmt
  31: rustc_mir::monomorphize::collector::collect_crate_mono_items
  32: rustc_mir::monomorphize::partitioning::compute_codegen_unit_name
  33: <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at
  34: <rustc_codegen_llvm::llvm_::ffi::debuginfo::DISPFlags as core::fmt::Debug>::fmt
  35: rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type
  36: rustc_codegen_llvm::type_::<impl rustc_codegen_ssa::traits::type_::LayoutTypeMethods for rustc_codegen_llvm::context::CodegenCx>::reg_backend_type
  37: <rustc_target::abi::TyAndLayout<&rustc_middle::ty::TyS> as rustc_codegen_llvm::type_of::LayoutLlvmExt>::pointee_info_at
  38: <rustc_codegen_llvm::LlvmCodegenBackend as rustc_codegen_ssa::traits::backend::CodegenBackend>::codegen_crate
  39: rustc_interface::passes::QueryContext::print_stats
  40: rustc_interface::passes::BoxedResolver::complete
  41: rustc_interface::queries::Queries::ongoing_codegen
  42: <rustc_codegen_ssa::back::linker::MsvcLinker as rustc_codegen_ssa::back::linker::Linker>::partial_relro
  43: <env_logger::filter::inner::Filter as core::fmt::Display>::fmt
  44: <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref
  45: <rustc_driver::DEFAULT_HOOK as core::ops::deref::Deref>::deref
  46: <(&rustc_middle::ty::sty::Const,rustc_middle::mir::Field) as rustc_middle::ty::query::keys::Key>::default_span
  47: std::sys::windows::thread::Thread::new
  48: BaseThreadInitThunk
  49: RtlUserThreadStart
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.46.0-nightly (346aec9b0 2020-07-11) running on x86_64-pc-windows-msvc

query stack during panic:
#0 [codegen_fulfill_obligation] checking if `Y` fulfills its obligations
#1 [resolve_instance] resolving instance `<() as Y>::g`
#2 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
error: aborting due to previous error

</p> </details>

created time in a month

issue commentrust-lang/chalk

Panic in SLG solver: clear_strands_after_cycle invoked on strand in table without a selected subgoal

Enumerable sized doesn't work correctly (exists<T> { T: Sized } is considered too have no solutions, rather that lots. I'll raise an issue for it.

matthewjasper

comment created time in a month

issue openedrust-lang/chalk

Panic in SLG solver: clear_strands_after_cycle invoked on strand in table without a selected subgoal

The following test case (extracted from liballoc) causes the SGL solve to panic (the recursive solver handles this just fine)

#[test]
fn to_owned_rc_impl() {
    test! {
        program {
            #[non_enumerable]
            #[lang(sized)]
            trait Sized { }
            trait From<T> where T: Sized {
            }
            trait ToOwned {
                type Owned;
            }

            impl<T> ToOwned for [T] where T: Sized {
                type Owned = Vec<T>;
            }

            struct Rc<T> { }

            struct Vec<T> where T: Sized {}
            struct Cow<'x, T> where T: ToOwned {}

            impl<'a, T> From<&'a [T]> for Rc<[T]> where T: Sized {}
            impl<T> From<Vec<T>> for Rc<[T]> where T: Sized {}
            impl<'a, B> From<Cow<'a, B>> for Rc<B>
            where
                B: ToOwned,
                Rc<B>: From<&'a B>,
                Rc<B>: From<<B as ToOwned>::Owned>
            {
            }
        }

        goal {
            exists<S, T> {
                Rc<S>: From<T>
            }
        } yields {
            "Ambiguous; no inference guidance"
        }
    }
}

<details>

<summary>Output and backtrace</summary>

running 1 test
program {
    # [non_enumerable] # [lang(sized)] trait Sized { } trait From < T > where
    T : Sized { } trait ToOwned { type Owned ; } impl < T > ToOwned for [T]
    where T : Sized { type Owned = Vec < T > ; } struct Rc < T > { } struct
    Vec < T > where T : Sized { } struct Cow < 'x, T > where T : ToOwned { }
    impl < 'a, T > From < & 'a [T] > for Rc < [T] > where T : Sized { } impl <
    T > From < Vec < T >> for Rc < [T] > where T : Sized { } impl < 'a, B
    > From < Cow < 'a, B >> for Rc < B > where B : ToOwned, Rc < B > : From <
    & 'a B >, Rc < B > : From << B as ToOwned > :: Owned > { }
}
----------------------------------------------------------------------
goal { exists < S, T > { Rc < S > : From < T > } }
using solver: SLG { max_size: 10, expected_answers: None }
thread 'test::existential_types::to_owned_rc_impl' panicked at 'clear_strands_after_cycle invoked on strand in table without a selected subgoal: Canonical { value: ExClause { subst: [?0 := {slice}<^0.0>], ambiguous: true, constraints: [], subgoals: [], delayed_subgoals: [], answer_time: TimeStamp { clock: 0 }, floundered_subgoals: [FlounderedSubgoal { floundered_literal: Positive(InEnvironment { environment: Env([]), goal: ForAll<> { Implemented(^1.0: Sized) } }), floundered_time: TimeStamp { clock: 0 } }, FlounderedSubgoal { floundered_literal: Positive(InEnvironment { environment: Env([]), goal: AliasEq(<{slice}<^0.0> as ToOwned>::Owned = Vec<^0.0>) }), floundered_time: TimeStamp { clock: 0 } }] }, binders: [U0 with kind type] }', /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs:16:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1504
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:511
  11: rust_begin_unwind
             at src/libstd/panicking.rs:419
  12: std::panicking::begin_panic_fmt
             at src/libstd/panicking.rs:373
  13: chalk_engine::logic::SolveState<I,C,CO>::clear_strands_after_cycle::{{closure}}
             at /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/macros.rs:16
  14: core::option::Option<T>::unwrap_or_else
             at /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/option.rs:428
  15: chalk_engine::logic::SolveState<I,C,CO>::clear_strands_after_cycle
             at ./chalk-engine/src/logic.rs:1257
  16: chalk_engine::logic::SolveState<I,C,CO>::clear_strands_after_cycle
             at ./chalk-engine/src/logic.rs:1267
  17: chalk_engine::logic::SolveState<I,C,CO>::on_no_strands_left
             at ./chalk-engine/src/logic.rs:1175
  18: chalk_engine::logic::SolveState<I,C,CO>::ensure_root_answer
             at ./chalk-engine/src/logic.rs:528
  19: chalk_engine::logic::<impl chalk_engine::forest::Forest<I,C>>::root_answer
             at ./chalk-engine/src/logic.rs:93
  20: <chalk_engine::forest::ForestSolver<I,C,CO> as chalk_engine::context::AnswerStream<I>>::peek_answer
             at ./chalk-engine/src/forest.rs:74
  21: <chalk_engine::forest::ForestSolver<I,C,CO> as chalk_engine::context::AnswerStream<I>>::next_answer
             at ./chalk-engine/src/forest.rs:113
  22: <chalk_engine::slg::SlgContextOps<I> as chalk_engine::slg::aggregate::AggregateOps<I>>::make_solution
             at ./chalk-engine/src/slg/aggregate.rs:34
  23: <chalk_engine::solve::SLGSolver<I> as chalk_solve::solve::Solver<I>>::solve
             at ./chalk-engine/src/solve.rs:40
  24: <chalk_integration::SolverImpl as chalk_solve::solve::Solver<chalk_integration::interner::ChalkIr>>::solve
             at chalk-integration/src/lib.rs:102
  25: chalk_integration::db::ChalkDatabase::solve
             at chalk-integration/src/db.rs:60
  26: lib::test::solve_goal::{{closure}}::{{closure}}
             at tests/test/mod.rs:258
  27: chalk_integration::tls::set_current_program::{{closure}}
             at ./chalk-integration/src/tls.rs:160
  28: std::thread::local::LocalKey<T>::try_with
             at /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/thread/local.rs:263
  29: std::thread::local::LocalKey<T>::with
             at /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libstd/thread/local.rs:239
  30: chalk_integration::tls::set_current_program
             at ./chalk-integration/src/tls.rs:158
  31: lib::test::solve_goal::{{closure}}
             at tests/test/mod.rs:244
  32: tracing_core::dispatcher::with_default
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-core-0.1.10/src/dispatcher.rs:222
  33: tracing::subscriber::with_default
             at /home/matthew/.cargo/registry/src/github.com-1ecc6299db9ec823/tracing-0.1.15/src/subscriber.rs:24
  34: chalk_solve::logging::with_tracing_logs
             at ./chalk-solve/src/logging.rs:11
  35: lib::test::solve_goal
             at tests/test/mod.rs:219
  36: lib::test::existential_types::to_owned_rc_impl
             at tests/test/existential_types.rs:446
  37: lib::test::existential_types::to_owned_rc_impl::{{closure}}
             at tests/test/existential_types.rs:445
  38: core::ops::function::FnOnce::call_once
             at /home/matthew/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/src/libcore/ops/function.rs:232
  39: <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/liballoc/boxed.rs:1008
  40: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/panic.rs:318
  41: std::panicking::try::do_call
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/panicking.rs:331
  42: std::panicking::try
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/panicking.rs:274
  43: std::panic::catch_unwind
             at /rustc/c7087fe00d2ba919df1d813c040a5d47e43b0fe7/src/libstd/panic.rs:394
  44: test::run_test_in_process
             at src/libtest/lib.rs:541
  45: test::run_test::run_test_inner::{{closure}}
             at src/libtest/lib.rs:450
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
test test::existential_types::to_owned_rc_impl ... FAILED

failures:

failures:
    test::existential_types::to_owned_rc_impl

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 375 filtered out

error: test failed, to rerun pass '-p chalk --test lib'
The terminal process "/usr/bin/fish '-c', 'cargo test --package chalk --test lib -- test::existential_types::to_owned_rc_impl --exact --nocapture'" terminated with exit code: 101.

</details>

created time in a month

issue commentrust-lang/rust

Regression in associated type checking for default impls

It wasn't really, it was just slightly more complex to have this still work after that PR.

anvil777

comment created time in a month

issue commentrust-lang/rust

🔬 Tracking issue for generic associated types (GAT)

Yes, Output<'x>=... doesn't parse in that position.

withoutboats

comment created time in a month

issue commentrust-lang/rust

🔬 Tracking issue for generic associated types (GAT)

It doesn't parse (yet).

withoutboats

comment created time in a month

Pull request review commentrust-lang/rust

convert higher ranked `Predicate`s to `PredicateKind::ForAll`

 impl<'a, 'b, 'tcx> ObligationProcessor for FulfillProcessor<'a, 'b, 'tcx> {         let infcx = self.selcx.infcx();          match obligation.predicate.kind() {-            ty::PredicateKind::Trait(ref data, _) => {-                let trait_obligation = obligation.with(*data);--                if obligation.predicate.is_global() {-                    // no type variables present, can use evaluation for better caching.-                    // FIXME: consider caching errors too.-                    if infcx.predicate_must_hold_considering_regions(&obligation) {-                        debug!(-                            "selecting trait `{:?}` at depth {} evaluated to holds",-                            data, obligation.recursion_depth-                        );-                        return ProcessResult::Changed(vec![]);+            ty::PredicateKind::ForAll(binder) => match binder.skip_binder().kind() {+                ty::PredicateKind::ForAll(_) => bug!("unexpected forall"),+                // Evaluation will discard candidates using the leak check.+                // This means we need to pass it the bound version of our+                // predicate.+                &ty::PredicateKind::Atom(atom) => match atom {+                    ty::PredicateAtom::Trait(trait_ref, _constness) => {+                        let trait_obligation = obligation.with(Binder::bind(trait_ref));++                        self.process_trait_obligation(+                            obligation,+                            trait_obligation,+                            &mut pending_obligation.stalled_on,+                        )                     }-                }+                    ty::PredicateAtom::Projection(projection) => {

I think that Projections no longer need special casing (they no longer run the leak check at the top level).

lcnr

comment created time in a month

issue commentrust-lang/rust

🔬 Tracking issue for generic associated types (GAT)

#67510 tracks being able to write that bound. That example may also need lazy normalization (#60471).

withoutboats

comment created time in a month

issue commentrust-lang/rust

🔬 Tracking issue for generic associated types (GAT)

The outlives bound can be added to the associated type (using Self: 'ast on the trait's version). This test shows what this should look like: https://github.com/rust-lang/rust/blob/db4826dd6ca48663a0b4c5ab0681258999017c7d/src/test/ui/generic-associated-types/iterable.rs#L6-L21

withoutboats

comment created time in a month

Pull request review commentrust-lang/rust

Make hir ProjectionKind more precise

 impl<'a, 'tcx> MemCategorizationContext<'a, 'tcx> {                         return Err(());                     }                 };-                let elt_place = self.cat_projection(pat, place_with_id.clone(), element_ty);+                let elt_place = self.cat_projection(+                    pat,+                    place_with_id.clone(),+                    element_ty,+                    ProjectionKind::Subslice,

This should be ProjectionKind::Index

arora-aman

comment created time in a month

pull request commentrust-lang/rust

Correctly mark the ending span of a match arm

@bors r+

ayazhafiz

comment created time in a month

pull request commentrust-lang/rust

Suppress debuginfo on naked function arguments

@bors r+ rollup

npmccallum

comment created time in a month

Pull request review commentrust-lang/rust

Separate projection bounds and predicates

+error[E0277]: the trait bound `T: std::clone::Clone` is not satisfied+  --> $DIR/bounds-are-checked-2.rs:6:13+   |+LL | type X<T> = impl Clone;+   |             ^^^^^^^^^^ the trait `std::clone::Clone` is not implemented for `T`+   |+help: consider restricting type parameter `T`+   |+LL | type X<T: std::clone::Clone> = impl Clone;+   |         ^^^^^^^^^^^^^^^^^^^

This is only for impl Trait.

matthewjasper

comment created time in a month

Pull request review commentrust-lang/rust

Separate projection bounds and predicates

 impl<'cx, 'tcx> SelectionContext<'cx, 'tcx> {         Ok(ImplSourceBuiltinData { nested })     } }++struct ObjectAssociatedTypeNormalizer<'a, 'tcx> {+    infcx: &'a infer::InferCtxt<'a, 'tcx>,+    object_ty: Ty<'tcx>,+    object_bounds: &'a [ty::ExistentialProjection<'tcx>],+    param_env: ty::ParamEnv<'tcx>,+    cause: &'a ObligationCause<'tcx>,+    nested: &'a mut Vec<PredicateObligation<'tcx>>,+}++impl<'tcx> TypeFolder<'tcx> for ObjectAssociatedTypeNormalizer<'_, 'tcx> {

This is a bit hacky. I'm going to try making a change to how project works for trait objects for this and see if that's better,

matthewjasper

comment created time in a month

issue commentrust-lang/rust

Inconsistent borrow check in async function

The error is being suppressed because rustc_typeck::check_crate is (effectively) aborting compilation early.

Nugine

comment created time in a month

create barnchmatthewjasper/rust

branch : lazy-normalization

created branch time in a month

issue commentrust-lang/rust

Strange span in borrow error in nested match.

This should probably be prev_token: https://github.com/rust-lang/rust/blob/5d429f384734a3245db8f7862e95b5adb2112705/src/librustc_parse/parser/expr.rs#L1793-L1793

ehuss

comment created time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

@craterbot check

matthewjasper

comment created time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

@bors try @rust-timer queue

matthewjasper

comment created time in a month

push eventmatthewjasper/rust

Matthew Jasper

commit sha 5509ec4e4158c6d2d0640b2221ddbbfa0f4aec08

Avoid cycle in nested obligations for object candidate Bounds of the form `type Future: Future<Result=Self::Result>` exist in some ecosystem crates. To validate these bounds for trait objects we need to normalize `Self::Result` in a way that doesn't cause a cycle.

view details

push time in a month

issue commentrust-lang/rust

Tracking issue for pattern with by-move & by-ref bindings

Nominating for T-lang to discuss stabilization.

Centril

comment created time in a month

pull request commentrust-lang/rust

Fix #71977

@bors r+

Nadrieril

comment created time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

Hmm, script-servo is still broken, looks like I need more normalize calls...

matthewjasper

comment created time in a month

pull request commentrust-lang/rust

Validate built-in attribute placement

#[link_name] does nothing on type aliases. #[cold] only applies to functions/closures.

calebzulawski

comment created time in a month

pull request commentrust-lang/rust

mir: mark mir construction temporaries as internal

@bors r+

davidtwco

comment created time in a month

pull request commentrust-lang/rust

Fix #71977

Can you remove the allow(unreachable_patterns) from src/test/ui/or-patterns/search-via-bindings.rs?

Nadrieril

comment created time in a month

pull request commentrust-lang/rust

Remove most specialization use in serialization

I've opened an MCP and a PR to document serialization in rustc in the guide.

matthewjasper

comment created time in a month

issue openedrust-lang/compiler-team

Rework rustc_serialize

Proposal

rust-lang/rust#73851 reworks specialization in the following noticeable ways:

  • The type parameter in the Encodable and Decodable traits is moved from the method to the trait.
  • These traits are now derived using macros in rustc_macros rather than the built-in RustcEncodable and RustcDecodable derives.
  • Specialized implementations of Encodable and Decodable now directly use specialization.
  • A lot of transmutes are removed

Further documentation of serialization in rustc after the PR has landed can be found at rust-lang/rustc-guide#785.

Mentors or Reviewers

PR has already been reviewed by @oli-obk

Process

The main points of the Major Change Process is as follows:

  • [x] File an issue describing the proposal.
  • [ ] A compiler team member or contributor who is knowledgeable in the area can second by writing @rustbot second.
    • Finding a "second" suffices for internal changes. If however you are proposing a new public-facing feature, such as a -C flag, then full team check-off is required.
    • Compiler team members can initiate a check-off via @rfcbot fcp merge on either the MCP or the PR.
  • [ ] Once an MCP is seconded, the Final Comment Period begins. If no objections are raised after 10 days, the MCP is considered approved.

You can read more about Major Change Proposals on forge.

Comments

This issue is not meant to be used for technical discussion. There is a Zulip stream for that. Use this issue to leave procedural comments, such as volunteering to review, indicating that you second the proposal (or third, etc), or raising a concern that you would like to be addressed.

created time in a month

PR opened rust-lang/rustc-dev-guide

Document serialization in rustc

This documents the state of serialization after rust-lang/rust#73851

+165 -0

0 comment

2 changed files

pr created time in a month

push eventmatthewjasper/rustc-guide

Matthew Jasper

commit sha 39d51fb02df553dd17cae94a735262dc9582dc2f

Document serialization in rustc

view details

push time in a month

push eventmatthewjasper/rust

Matthew Jasper

commit sha f53e60cedb914ca5aadfce21fd49a31757868794

Fix run-make test

view details

push time in a month

push eventmatthewjasper/rustc-guide

Eric Huss

commit sha 30518e3df2cc732d87c4db6611c0d15ca1146f92

Minor updates to stage docs. (#781)

view details

Takayuki Nakata

commit sha 2c51b6f6289f1575698c64ada5a3ce197059c6ad

Fix jump marker of debruijn index (#783)

view details

Eric Huss

commit sha 88f57a5c79910297359637a4dbbb61bc3e6f1eac

Update mdbook

view details

Matthew Jasper

commit sha ef4bd63fda6ddcc5ce7df16fb9cc46644c353c73

Document serialization in rustc

view details

push time in a month

push eventmatthewjasper/rust

Matthew Jasper

commit sha affc23260f05983965fd57b5f10dd84905cb6caf

Fix ui fulldeps tests

view details

push time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

@bors try @rust-timer queue

matthewjasper

comment created time in a month

push eventmatthewjasper/rust

Matthew Jasper

commit sha 16315fffb83d471b2bd722a56be229935eeb695c

Fix tests and bootstrap

view details

Matthew Jasper

commit sha 39e84ff4c6a541ba329c15e866330c79cf989754

Fix tools

view details

Matthew Jasper

commit sha 9dd117a309857c5595df981384ed266bebe494ca

Fix ICE

view details

Matthew Jasper

commit sha 6270356ab34fdb3088eb60376a093461dea6fcd2

Address review comments

view details

Matthew Jasper

commit sha 7eb97438492cd8eb133c422808cb455e975d2c7f

Remove predicates on associated types from traits These need to only be bounds to avoid cycle errors in trait checking.

view details

push time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

@bors try @rust-timer queue

matthewjasper

comment created time in a month

push eventmatthewjasper/rust

Chris Denton

commit sha 912963bd0856239828253af8d04e4f62e75cafd7

Remove legacy InnoSetup GUI installer On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.

view details

Yoshua Wuyts

commit sha 8bc6b5b45c9f9710852e2b9c57eb3d44d08ad245

stabilize leading_trailing_ones

view details

Tomasz Miąsko

commit sha 291dce91b24d70382ebf1116fa836fd91960de84

Fallback to xml.etree.ElementTree The xml.etree.cElementTree has been deprecated since Python 3.3 and removed in Python 3.9 https://bugs.python.org/issue36543.

view details

Caleb Zulawski

commit sha 144206e6d8c1ab4ffdbaf6d7b0f5a4201c0f2da4

Don't implement Fn* traits for #[target_feature] functions

view details

Caleb Zulawski

commit sha c98b4c8fdde7812d7af5a060a1e22fd7e3775d3f

Add error note when trying fn as Fn trait

view details

pankajchaudhary5

commit sha 46bfc48272ba5312c439557e2901e1a4778e9487

Added proper explanation of ErrorCode-E0687

view details

mark

commit sha 3f6928f1f6eff367e6ddbfb63ebc5e568ffe0eb1

move contributing.md to rustc-dev-guide and point at getting started

view details

Matthias Krüger

commit sha 1d0378c454de72ddcfc08bcc105744923ef2d4d4

impl From<char> for String This allows us to write fn char_to_string() -> String { 'a'.into() } which was not possible before.

view details

Tomasz Miąsko

commit sha 5c20ef433b48fce78c07208710bcc8b53965eeb1

bootstrap: Configurable musl libdir Make it possible to customize the location of musl libdir using musl-libdir in config.toml, e.g., to use lib64 instead of lib.

view details

Matthias Krüger

commit sha 2cde4932c7e8bd6000378af41029299ccf6eea69

add test for char into string

view details

Anirban

commit sha 886f81e1d0883f67fbc81b8ece61b1c33f6923d2

Fix sentence structure Fixed grammar and sentence structure on appropriate instances.

view details

Dylan McKay

commit sha 50f20ec576ae72ceff6bf5a50c940cf574990e56

[AVR] Update the rust-lang/llvm-project submodule to include AVR fixes recently merged This commit updates rustc's LLVM submodule to include new AVR-specific fixes recently merged on the Rust LLVM 'rustc/10.0-2020-05-05' branch. All of these cherry-picked commits exist in upstream LLVM and were cherry-picked into Rust's LLVM fork in commit 6c040dd86ed. |- 6c040dd86ed Merge pull request #66 from dylanmckay/avr-pick-upstream-llvm-fixes |- 12dfdd3aed7 [AVR] Rewrite the function calling convention. |- 118ac53f12b [AVR] Don't adjust for instruction size |- bc27c282e13 [AVR] Fix miscompilation of zext + add |- cfbe205a7e8 [AVR] Remove faulty stack pushing behavior |- 143e1469e96 [AVR] Fix stack size in functions with a frame pointer |- 6b2445d841e [LLVM][AVR] Support for R_AVR_6 fixup |- 93ee4da19cf [AVR] Fix I/O instructions on XMEGA |- 962c2415ffb [AVR] Do not place functions in .progmem.data |- 65b8b170aef [AVR] Do not use divmod calls for bigger integers |- 93a3b595d1c [AVR] Generalize the previous interrupt bugfix to signal |- handlers too |- cc4286349b4 [AVR] Respect the 'interrupt' function attribute |- 954d0a92205 [AVR] Fix reads of uninitialized variables from constructor of AVRSubtarget |- 1c0ddae73c9 [AVR] Fix read of uninitialized variable AVRSubtarget:::ELFArch |- 0ed0823fe60 [AVR] Fix incorrect register state for LDRdPtr |- 96075fc433d [AVR] Don't adjust addresses by 2 for absolute values |- 6dfc55ba53b [AVR] Use correct register class for mul instructions These changes include both correctness fixes and LLVM assertion error fixes. Once all of these commits have been cherry-picked, all of the LLVM plumbing for rust-lang/master to compile the AVR blink program will be in place. Once this commit is merged, only PR rust-lang/rust#73270 will be blocking successful compilation and emission of the AVR LED blink program.

view details

Keno Fischer

commit sha 0c88dd663a7095ccc405a2036047a90981137a51

Update Box::from_raw example to generalize better I know very little about rust, so I saw this example and tried to generalize it by writing, ``` let layout = Layout::new::<T>(); let new_obj = unsafe { let ptr = alloc(layout) as *mut T; *ptr = obj; Box::from_raw(ptr) }; ``` for some more complicated `T`, which ended up crashing with SIGSEGV, because it tried to `drop_in_place` the previous object in `ptr` which is of course garbage. I also added a comment that explains why `.write` is used, but I think adding that comment is optional and may be too verbose here. I do however think that changing this example is a good idea to suggest the correct generalization. `.write` is also used in most of the rest of the documentation here, even if the example is `i32`, so it would additionally be more consistent.

view details

Anirban

commit sha 3b5d7f8cf66c6704d36b021f7173241d6351ad32

Minor correction to sentence structure

view details

David Hewitt

commit sha 6b95f3102d657a5cd0549213a073b28c7e0fe609

Add `format_args_capture` feature

view details

Anirban

commit sha d6cf8fc63ee24269bd4df20ad9fe19a219b5c9f5

Update README.md

view details

Alexis Bourget

commit sha 2bbc2b3de42f3b14ccc8b62c2acffc8840177777

Document the static keyword

view details

Anirban

commit sha 22fc18f1776ab05688d2f57ed92e14830a44d1ee

Commit suggestion Co-authored-by: Niko Matsakis <niko@alum.mit.edu>

view details

Anirban

commit sha 8edcc6d00d329c4cbe51b483bb82a1b365a073b4

Add alternate text for rust logo image

view details

Anirban

commit sha 3a1ac2823167e6254066758a7487ad384d32d7da

Added clickable-link Linked the logo/svg to https://www.rust-lang.org/ (change if required)

view details

push time in a month

push eventmatthewjasper/rustc-guide

Matthew Jasper

commit sha ac822d7eb85ec28a10bf156b178fe3f3cda04873

temp

view details

push time in a month

push eventmatthewjasper/rust

Tomasz Miąsko

commit sha 291dce91b24d70382ebf1116fa836fd91960de84

Fallback to xml.etree.ElementTree The xml.etree.cElementTree has been deprecated since Python 3.3 and removed in Python 3.9 https://bugs.python.org/issue36543.

view details

mark

commit sha 3f6928f1f6eff367e6ddbfb63ebc5e568ffe0eb1

move contributing.md to rustc-dev-guide and point at getting started

view details

David Hewitt

commit sha 6b95f3102d657a5cd0549213a073b28c7e0fe609

Add `format_args_capture` feature

view details

Simonas Kazlauskas

commit sha df88972f8ce9ddbebec6d551810f7127fe25d2a3

Update psm version This new version includes a fix for building on aarch64 windows.

view details

David Hewitt

commit sha 8caf60407033e84592821a3f7b3917fe80d343e0

Improve messaging from PR feedback

view details

David Hewitt

commit sha a1217cb29de22aae3cda717e78d1edd3e9d8ffd1

Add `format_args_capture` to the unstable book

view details

CAD97

commit sha db539c649866d9a25cb18a741436b3086b5d6e04

Use raw_ref_op in A|Rc::as_ptr

view details

CAD97

commit sha e4bdf47f4c0773bba93f50900612242b929eca0b

Do not require ptr validity in rc::data_offset

view details

CAD97

commit sha d8a9c61e1a23b73c04d3058a11d1b8b2a46d635e

Use impl for Weak::as_ptr that works for unsized T

view details

Nicholas Nethercote

commit sha 3f79d2f33e8b69812c9b981ff4adea0a1e7b9cb8

Avoid `unwrap_or_else` in `RawVec::allocate_in`. This reduces the amount of LLVM IR generated by up to 1 or 2%.

view details

CAD97

commit sha fc3dc723da8daef495a170e02efb38093e05215e

Clarify safety comment for A|Rc::as_ptr

view details

CAD97

commit sha 0aecf3c74b7fd09460f453e7e95ae8cb65a92440

Fix invalid pointer deref in Weak::as_ptr

view details

CAD97

commit sha aed88e18049f6be7d3c3b37683d05d777adb3c86

Clarify when rc::data_offset is safe

view details

Wesley Wiser

commit sha b4d045719d77e40f294eb85d8e5cf8143d661718

Use exhaustive match in const_prop.rs

view details

David Hewitt

commit sha 1a0343217d34b5ef60bf7c0a86376dcddf90b8cd

Amend wording of note

view details

Eduardo Sánchez Muñoz

commit sha aac2f734dec39a19e412b46fcdc0e67a6eafa3ad

Improve comments from https://github.com/rust-lang/rust/pull/72617, as suggested by RalfJung.

view details

David Hewitt

commit sha 10ebb2cbb291ead33e8e20519611e962b594db50

Update src/librustc_builtin_macros/format.rs Apply suggestion from varkor Co-authored-by: varkor <github@varkor.com>

view details

CAD97

commit sha ac40d1eff33cc6789d3c02f4a21477368574cf5e

Apply documentation review suggestions Co-Authored-By: Ralf Jung <post@ralfj.de>

view details

CAD97

commit sha 98789ac75a15c78462ada2438881c8a4e4fda94a

Simplify Weak::as_ptr impl

view details

CAD97

commit sha 7498cad0d8dacd51f0d18bdf985c15efe55b4e8a

Reclarify safety comments in Weak::as_ptr

view details

push time in a month

create barnchmatthewjasper/rustc-guide

branch : serialization

created branch time in a month

Pull request review commentrust-lang/rust

Avoid hashing length for ty::List

 where {     fn hash_stable(&self, hcx: &mut StableHashingContext<'a>, hasher: &mut StableHasher) {         thread_local! {-            static CACHE: RefCell<FxHashMap<(usize, usize), Fingerprint>> =+            static CACHE: RefCell<FxHashMap<usize, Fingerprint>> =                 RefCell::new(Default::default());         }          let hash = CACHE.with(|cache| {-            let key = (self.as_ptr() as usize, self.len());+            let key = self as *const _ as usize;

self is &&'tcx List<T>` here, so this is isn't the address of the interned pointer.

Mark-Simulacrum

comment created time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

So this PR as is currently breaks the following:

trait Op where Self::Output: Copy {
    type Output;
}

// This now requires an explicit `where T::Output: Copy `
// like any other kind of where clause on the trait, except super traits.
fn f<T: Op>() {}

Since this apparently never comes up in rustc/perf/the tests I'm leaving it in for the crater run to satisfy my curiosity about whether anyone is writing bounds like this. I'll probably fix it even if crater can't find anyone doing this.

matthewjasper

comment created time in a month

push eventmatthewjasper/rust

Chris Denton

commit sha 912963bd0856239828253af8d04e4f62e75cafd7

Remove legacy InnoSetup GUI installer On Windows the InnoSetup installer was superseded by the MSI installer. It's no longer needed.

view details

Caleb Zulawski

commit sha 144206e6d8c1ab4ffdbaf6d7b0f5a4201c0f2da4

Don't implement Fn* traits for #[target_feature] functions

view details

Caleb Zulawski

commit sha c98b4c8fdde7812d7af5a060a1e22fd7e3775d3f

Add error note when trying fn as Fn trait

view details

pankajchaudhary5

commit sha 46bfc48272ba5312c439557e2901e1a4778e9487

Added proper explanation of ErrorCode-E0687

view details

Matthias Krüger

commit sha 1d0378c454de72ddcfc08bcc105744923ef2d4d4

impl From<char> for String This allows us to write fn char_to_string() -> String { 'a'.into() } which was not possible before.

view details

Tomasz Miąsko

commit sha 5c20ef433b48fce78c07208710bcc8b53965eeb1

bootstrap: Configurable musl libdir Make it possible to customize the location of musl libdir using musl-libdir in config.toml, e.g., to use lib64 instead of lib.

view details

Matthias Krüger

commit sha 2cde4932c7e8bd6000378af41029299ccf6eea69

add test for char into string

view details

Anirban

commit sha 886f81e1d0883f67fbc81b8ece61b1c33f6923d2

Fix sentence structure Fixed grammar and sentence structure on appropriate instances.

view details

Dylan McKay

commit sha 50f20ec576ae72ceff6bf5a50c940cf574990e56

[AVR] Update the rust-lang/llvm-project submodule to include AVR fixes recently merged This commit updates rustc's LLVM submodule to include new AVR-specific fixes recently merged on the Rust LLVM 'rustc/10.0-2020-05-05' branch. All of these cherry-picked commits exist in upstream LLVM and were cherry-picked into Rust's LLVM fork in commit 6c040dd86ed. |- 6c040dd86ed Merge pull request #66 from dylanmckay/avr-pick-upstream-llvm-fixes |- 12dfdd3aed7 [AVR] Rewrite the function calling convention. |- 118ac53f12b [AVR] Don't adjust for instruction size |- bc27c282e13 [AVR] Fix miscompilation of zext + add |- cfbe205a7e8 [AVR] Remove faulty stack pushing behavior |- 143e1469e96 [AVR] Fix stack size in functions with a frame pointer |- 6b2445d841e [LLVM][AVR] Support for R_AVR_6 fixup |- 93ee4da19cf [AVR] Fix I/O instructions on XMEGA |- 962c2415ffb [AVR] Do not place functions in .progmem.data |- 65b8b170aef [AVR] Do not use divmod calls for bigger integers |- 93a3b595d1c [AVR] Generalize the previous interrupt bugfix to signal |- handlers too |- cc4286349b4 [AVR] Respect the 'interrupt' function attribute |- 954d0a92205 [AVR] Fix reads of uninitialized variables from constructor of AVRSubtarget |- 1c0ddae73c9 [AVR] Fix read of uninitialized variable AVRSubtarget:::ELFArch |- 0ed0823fe60 [AVR] Fix incorrect register state for LDRdPtr |- 96075fc433d [AVR] Don't adjust addresses by 2 for absolute values |- 6dfc55ba53b [AVR] Use correct register class for mul instructions These changes include both correctness fixes and LLVM assertion error fixes. Once all of these commits have been cherry-picked, all of the LLVM plumbing for rust-lang/master to compile the AVR blink program will be in place. Once this commit is merged, only PR rust-lang/rust#73270 will be blocking successful compilation and emission of the AVR LED blink program.

view details

Keno Fischer

commit sha 0c88dd663a7095ccc405a2036047a90981137a51

Update Box::from_raw example to generalize better I know very little about rust, so I saw this example and tried to generalize it by writing, ``` let layout = Layout::new::<T>(); let new_obj = unsafe { let ptr = alloc(layout) as *mut T; *ptr = obj; Box::from_raw(ptr) }; ``` for some more complicated `T`, which ended up crashing with SIGSEGV, because it tried to `drop_in_place` the previous object in `ptr` which is of course garbage. I also added a comment that explains why `.write` is used, but I think adding that comment is optional and may be too verbose here. I do however think that changing this example is a good idea to suggest the correct generalization. `.write` is also used in most of the rest of the documentation here, even if the example is `i32`, so it would additionally be more consistent.

view details

Anirban

commit sha 3b5d7f8cf66c6704d36b021f7173241d6351ad32

Minor correction to sentence structure

view details

Anirban

commit sha d6cf8fc63ee24269bd4df20ad9fe19a219b5c9f5

Update README.md

view details

Alexis Bourget

commit sha 2bbc2b3de42f3b14ccc8b62c2acffc8840177777

Document the static keyword

view details

Anirban

commit sha 22fc18f1776ab05688d2f57ed92e14830a44d1ee

Commit suggestion Co-authored-by: Niko Matsakis <niko@alum.mit.edu>

view details

Anirban

commit sha 8edcc6d00d329c4cbe51b483bb82a1b365a073b4

Add alternate text for rust logo image

view details

Anirban

commit sha 3a1ac2823167e6254066758a7487ad384d32d7da

Added clickable-link Linked the logo/svg to https://www.rust-lang.org/ (change if required)

view details

Anirban

commit sha 4c33b7c8d69648edcc7f4f3d2edbf96c00060d1e

Add responsiveness to logo Added responsiveness to image logo based on device width (set at 90% of device width, which can be changed as per requirement)

view details

Tyler Ruckinger

commit sha 00ef46169e2b2631d41d6aa1b7c55b8abf006e50

Merge pull request #2 from rust-lang/master update master

view details

Tyler Ruckinger

commit sha b71a3e1e3a20e7db3b8167d19002c372ffe69c54

Map ERROR_INVALID_PARAMETER to InvalidInput

view details

root

commit sha 15e81beb474235d100995f3bcc72d15086a8e29e

moves terminator types to sub module

view details

push time in a month

Pull request review commentrust-lang/rust

Separate projection bounds and predicates

 // revisions: rpass cfail -trait Tr {+trait Tr where Self::Arr: Sized {

So, the cycle is broken with this PR because bounds don't need to be proven to prove that the trait is well-formed. This makes the code work like it does currently.

matthewjasper

comment created time in a month

push eventmatthewjasper/rust

Matthew Jasper

commit sha 7d26d9f69dcf3d70f41df7f9fcc84a16ae82606f

Fix tools

view details

Matthew Jasper

commit sha 6b29b042ed760bc2fb3d45ea33c8ab7fa8b6c56b

Fix ICE

view details

Matthew Jasper

commit sha fe98a09f655dbb3e5b79dcbdd0e29016c4f53f76

Address review comments

view details

Matthew Jasper

commit sha a23032d9a0dff0c378fd8f3d9643fbd564ceb0ef

Experiment: don't include `where Self::X: Trait` as bounds

view details

push time in a month

pull request commentrust-lang/rust

Separate projection bounds and predicates

@craterbot abort

matthewjasper

comment created time in a month

more