Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: rust-lang/rust
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: esp-rs/rust
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: esp-1.85.0.0
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.

Commits on Jan 7, 2025

  1. Copy the full SHA
    c09561c View commit details
  2. update channel to beta

    pietroalbini committed Jan 7, 2025
    Copy the full SHA
    3bc7fca View commit details
  3. Pass objcopy args for stripping on OSX

    When `-Cstrip` was changed to use the bundled rust-objcopy instead of
    /usr/bin/strip on OSX, strip-like arguments were preserved.
    
    But strip and objcopy are, while being the same binary, different, they
    have different defaults depending on which binary they are.
    Notably, strip strips everything by default, and objcopy doesn't strip
    anything by default.
    
    Additionally, `-S` actually means `--strip-all`, so debuginfo stripped
    everything and symbols didn't strip anything.
    
    We now correctly pass `--strip-debug` and `--strip-all`.
    Noratrieb authored and pietroalbini committed Jan 7, 2025
    Copy the full SHA
    031ad72 View commit details
  4. Copy the full SHA
    3d6fdff View commit details

Commits on Jan 8, 2025

  1. Revert "fix missing rustfmt for apple darwin"

    This reverts commit 2316749.
    pietroalbini committed Jan 8, 2025
    Copy the full SHA
    fc252e9 View commit details
  2. Revert "fix missing rustfmt and clippy for msi"

    This reverts commit f5577a8.
    pietroalbini committed Jan 8, 2025
    Copy the full SHA
    b2ab974 View commit details
  3. Auto merge of #135163 - pietroalbini:pa-beta, r=pietroalbini

    Prepare 1.85 beta release
    
    r? `@ghost`
    bors committed Jan 8, 2025
    Copy the full SHA
    e30eeff View commit details

Commits on Jan 10, 2025

  1. bump stage0 to 1.84.0

    cuviper committed Jan 10, 2025
    Copy the full SHA
    9e57baf View commit details
  2. run borrowck tests on BIDs and emit tail-expr-drop-order lints for

    potential violations
    
    (cherry picked from commit 045271c)
    dingxiangfei2009 authored and cuviper committed Jan 10, 2025
    Copy the full SHA
    4475508 View commit details
  3. apply suggestions on fn name

    (cherry picked from commit 34edb21)
    dingxiangfei2009 authored and cuviper committed Jan 10, 2025
    Copy the full SHA
    e398428 View commit details
  4. remove an extraneous comment

    Co-authored-by: Rémy Rakic <remy.rakic+github@gmail.com>
    (cherry picked from commit 13c7122)
    dingxiangfei2009 authored and cuviper committed Jan 10, 2025
    Copy the full SHA
    61c0bcf View commit details
  5. Don't create cycles by normalizing opaques defined in the body we're …

    …checking
    
    (cherry picked from commit 197f6d8)
    compiler-errors authored and cuviper committed Jan 10, 2025
    Copy the full SHA
    273873a View commit details
  6. Don't do AccessDepth::Drop for types with no drop impl

    (cherry picked from commit 4a099b2)
    compiler-errors authored and cuviper committed Jan 10, 2025
    Copy the full SHA
    1b8413e View commit details

Commits on Jan 11, 2025

  1. Try to explain borrow for tail expr temporary drop order change in 2024

    (cherry picked from commit c55eefe)
    compiler-errors authored and cuviper committed Jan 11, 2025
    Copy the full SHA
    18d3153 View commit details
  2. Copy the full SHA
    ce4e43f View commit details
  3. Auto merge of #135351 - cuviper:beta-next, r=cuviper

    [beta] stage0 bump and backports
    
    - bump stage0 to 1.84.0
    - Run borrowck tests on BIDs and emit tail-expr-drop-order lints for violations #134523
    
    r? cuviper
    bors committed Jan 11, 2025
    Copy the full SHA
    fe9b975 View commit details

Commits on Jan 14, 2025

  1. [beta] TRPL: incorporate all backward-compatible Edition changes

    This incorporates all the backwards-compatible changes for the 2024
    Edition. There will also be a follow-on PR to land revisions to the new
    chapter on async so it can be as ready as possible when officially
    released with 1.85 and the 2024 Edition.
    
    Additionally, there are a few other, non-backward-compatible, changes
    (largely around `use<..>`) we can only land using the stable edition,
    which we may or may not be able to land in 1.85 by using the beta
    toolchain in the example code. Those may or may not be ported over,
    depending on how that does or does not play with the infrastructure.
    chriskrycho committed Jan 14, 2025
    Copy the full SHA
    402eeff View commit details

Commits on Jan 15, 2025

  1. Mark rustbook as an external tool

    It has been a bit of a pain trying to keep the lints in sync across
    the submodule repositories, so the just turns it off.
    ehuss committed Jan 15, 2025
    Copy the full SHA
    f836dc2 View commit details

Commits on Jan 16, 2025

  1. Copy the full SHA
    5904ea4 View commit details

Commits on Jan 17, 2025

  1. do not in-place-iterate over flatmap/flatten

    The implementation is unsound when a partially consumed iterator has
    some elements buffered in the front/back parts and cloning the Iterator
    removes the capacity from the backing vec::IntoIter.
    
    (cherry picked from commit 3d871b3)
    the8472 authored and cuviper committed Jan 17, 2025
    Copy the full SHA
    8a7dc21 View commit details
  2. add regression test for unsound Flatten/FlatMap specialization

    (cherry picked from commit 1ed0ea4)
    the8472 authored and cuviper committed Jan 17, 2025
    Copy the full SHA
    ae37d1c View commit details
  3. Make sure to mark IMPL_TRAIT_REDUNDANT_CAPTURES as Allow in edition 2024

    (cherry picked from commit 1b068a0)
    compiler-errors authored and cuviper committed Jan 17, 2025
    Copy the full SHA
    e126c8d View commit details
  4. Update to LLVM 19.1.7

    (cherry picked from commit a40c659)
    nikic authored and cuviper committed Jan 17, 2025
    Copy the full SHA
    1c85981 View commit details
  5. Auto merge of #135508 - chriskrycho:trpl-edition-updates, r=ehuss

    [beta] TRPL: incorporate all backward-compatible Edition changes
    
    This incorporates all the backwards-compatible changes for the 2024 Edition. There will also be a follow-on PR to land revisions to the new chapter on async so it can be as ready as possible when officially released with 1.85 and the 2024 Edition.
    
    Additionally, there are a few other, non-backward-compatible, changes (largely around `use<..>`) we can only land using the stable edition, which we may or may not be able to land in 1.85 by using the beta toolchain in the example code. Those may or may not be ported over, depending on how that does or does not play with the infrastructure.
    
    This is identical to #135507 except that this targets `beta` instead of `master`, with the intent that these changes land in 1.85 and go out with the Edition release.
    bors committed Jan 17, 2025
    Copy the full SHA
    d0d224d View commit details
  6. Auto merge of #135609 - cuviper:beta-next, r=cuviper

    [beta] backports
    
    - do not in-place-iterate over flatmap/flatten #135104
    - Make sure to mark `IMPL_TRAIT_REDUNDANT_CAPTURES` as `Allow` in edition 2024 #135441
    - Update to LLVM 19.1.7 #135484
    
    r? cuviper
    bors committed Jan 17, 2025
    Copy the full SHA
    752fecf View commit details

Commits on Jan 20, 2025

  1. Copy the full SHA
    4416507 View commit details

Commits on Jan 23, 2025

  1. Always force non-trimming of path in unreachable_patterns lint

    Creating a "trimmed DefID path" when no error is being emitted is an ICE (on purpose). If we create a trimmed path for a lint that is then silenced before being emitted causes a known ICE. This side-steps the issue by always using `with_no_trimmed_path!`.
    
    This was verified to fix https://github.com/quinn-rs/quinn/, but couldn't write a repro case for the test suite.
    
    Fix #135289.
    
    (cherry picked from commit 93a1950)
    estebank authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    a41d236 View commit details
  2. Add logic to override profile for non git sources

    (cherry picked from commit 7d80617)
    tanvincible authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    eb03c32 View commit details
  3. resolve symlinks of LLVM tool binaries before copying them

    There is a chance that these tools are being installed from an external LLVM
    and we have no control over them. If any of these tools use symlinks, they will
    fail during tarball distribution. This change makes copying process to resolve
    symlinks just before placing them into the destination path.
    
    Signed-off-by: onur-ozkan <work@onurozkan.dev>
    (cherry picked from commit cde58dd)
    onur-ozkan authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    f379706 View commit details
  4. avoid running the overlap check twice

    (cherry picked from commit ebbcfd4)
    lcnr authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    953a1a0 View commit details
  5. add cache to AmbiguityCausesVisitor

    (cherry picked from commit 94bf8f0)
    lcnr authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    e35db42 View commit details
  6. add test

    (cherry picked from commit 0910173)
    lcnr authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    f6aed49 View commit details
  7. When LLVM's location discriminator value limit is exceeded, emit loca…

    …tions with dummy spans instead of dropping them entirely
    
    Revert most of #133194 (except the test and the comment fixes). Then refix
    not emitting locations at all when the correct location discriminator value
    exceeds LLVM's capacity.
    
    (cherry picked from commit 45ef927)
    khuey authored and cuviper committed Jan 23, 2025
    Copy the full SHA
    4595e11 View commit details

Commits on Jan 26, 2025

  1. make it possible to use ci-rustc on tarball sources

    Previously, bootstrap was using `Config::last_modified_commit` unconditionally to figure
    the commit has to download precompiled rustc artifact from CI, which was leading builds to
    fail on tarball sources as `Config::last_modified_commit` requires `git` to be present in the project
    source. This change makes bootstrap to call `Config::last_modified_commit` only when it's running on
    git-managed source and read `git-commit-hash` file otherwise.
    
    Signed-off-by: onur-ozkan <work@onurozkan.dev>
    (cherry picked from commit 903cddb)
    onur-ozkan authored and cuviper committed Jan 26, 2025
    Copy the full SHA
    e92addf View commit details
  2. Remove test panic from File::open

    (cherry picked from commit fed5f98)
    ChrisDenton authored and cuviper committed Jan 26, 2025
    Copy the full SHA
    5f5e70b View commit details
  3. Only assert the Parser size on specific arches

    The size of this struct depends on the alignment of `u128`, for example
    powerpc64le and s390x have align-8 and end up with only 280 bytes. Our
    64-bit tier-1 arches are the same though, so let's just assert on those.
    
    (cherry picked from commit aef640a)
    cuviper committed Jan 26, 2025
    Copy the full SHA
    f05d305 View commit details
  4. [beta] TRPL: more backward-compatible Edition changes

    - Improve the discussion of `unsafe` blocks within `unsafe` functions.
    - Fix formatting in Appendix A
    chriskrycho authored and cuviper committed Jan 26, 2025
    Copy the full SHA
    ee2ff9d View commit details
  5. Copy the full SHA
    130f951 View commit details
  6. Auto merge of #136017 - cuviper:beta-next, r=cuviper

    [beta] backports
    
    - Always force non-trimming of path in `unreachable_patterns` lint #135310
    - Add Profile Override for Non-Git Sources #135433
    - resolve symlinks of LLVM tool binaries before copying them #135585
    - add cache to `AmbiguityCausesVisitor` #135618
    - When LLVM's location discriminator value limit is exceeded, emit locations with dummy spans instead of dropping them entirely #135643
    - make it possible to use ci-rustc on tarball sources #135722
    - Remove test panic from File::open #135837
    - Only assert the `Parser` size on specific arches #135855
    - [beta] TRPL: more backward-compatible Edition changes #135843
    
    r? cuviper
    bors committed Jan 26, 2025
    Copy the full SHA
    14445aa View commit details

Commits on Feb 1, 2025

  1. Rollup merge of #135852 - lukas-code:asyncfn-prelude-core, r=compiler…

    …-errors
    
    Add `AsyncFn*` to `core` prelude
    
    In #132611 these got added to the `std` prelude only, which looks like an oversight.
    
    r? libs-api
    cc `@compiler-errors`
    matthiaskrgr authored and ehuss committed Feb 1, 2025
    Copy the full SHA
    ee94112 View commit details
  2. Copy the full SHA
    2fa9d47 View commit details
  3. Rollup merge of #136312 - compiler-errors:overflow_delimited_expr-202…

    …4, r=ytmimi
    
    Disable `overflow_delimited_expr` in edition 2024
    
    This reverts the style guide changes and sets the default to "false" in rustfmt for style edition 2024.
    
    r? `@ytmimi`
    
    cc `@rust-lang/style` `@rust-lang/rustfmt`
    jhpratt authored and ehuss committed Feb 1, 2025
    Copy the full SHA
    fdc22dc View commit details
  4. Update edition-guide

    ehuss committed Feb 1, 2025
    Copy the full SHA
    b5a02ff View commit details
  5. Copy the full SHA
    cfe3de2 View commit details
  6. Auto merge of #136391 - ehuss:rust-1.85-beta-backports, r=ehuss

    [beta-1.85] backports
    
    * [Add `AsyncFn*` to `core` prelude](#135852)
    * [Disable `overflow_delimited_expr` in edition 2024](#136312)
    * [Disable some incorrect rust-analyzer diagnostics on beta](#136236)
        * [fix: Fix #[rustc_deprecated_safe_2024]](rust-lang/rust-analyzer#19044)
        * [fix: Fix a bug where enum variants were not considered properly in type ns resolution](rust-lang/rust-analyzer#18976)
    * Update edition-guide
        * [Add alternatives for static-mut-refs](rust-lang/edition-guide#354)
        * [Remove rustfmt-overflow-delimited-expr](rust-lang/edition-guide#357)
    bors committed Feb 1, 2025
    Copy the full SHA
    0277061 View commit details

Commits on Feb 6, 2025

  1. Ensure that we don't try to access fields on a non-struct pattern typ…

    …e in diagnostic
    
    Fix #135209.
    
    (cherry picked from commit 5f04f98)
    estebank authored and cuviper committed Feb 6, 2025
    Copy the full SHA
    887965d View commit details
  2. Add check for missing fields in enum variant pattern

    (cherry picked from commit d44f021)
    estebank authored and cuviper committed Feb 6, 2025
    Copy the full SHA
    e98d524 View commit details
  3. modify test to side-step platform-dependent stderr output

    (cherry picked from commit 592f2c9)
    estebank authored and cuviper committed Feb 6, 2025
    Copy the full SHA
    f264675 View commit details
  4. Do not include GCC source code in source tarballs

    The licensing story is unclear, it makes the archive much larger, and we should not need it for building anything in the tarballs (yet).
    
    (cherry picked from commit f854f34)
    Kobzol authored and cuviper committed Feb 6, 2025
    Copy the full SHA
    13c3f9b View commit details
  5. Revert "Auto merge of #134330 - scottmcm:no-more-rvalue-len, r=matthe…

    …wjasper"
    
    This reverts commit e108481, reversing
    changes made to 303e8bd.
    
    (cherry picked from commit ca1c17c)
    lqd authored and cuviper committed Feb 6, 2025
    Copy the full SHA
    7302b30 View commit details
Showing with 5,239 additions and 2,897 deletions.
  1. +0 −3 .github/workflows/ci.yml
  2. +2 −2 .gitmodules
  3. +8 −8 Cargo.lock
  4. +12 −59 README.md
  5. +264 −2 RELEASES.md
  6. +4 −0 compiler/rustc_borrowck/messages.ftl
  7. +9 −9 compiler/rustc_borrowck/src/diagnostics/explain_borrow.rs
  8. +1 −0 compiler/rustc_borrowck/src/diagnostics/mod.rs
  9. +2 −2 compiler/rustc_borrowck/src/diagnostics/region_name.rs
  10. +98 −17 compiler/rustc_borrowck/src/lib.rs
  11. +2 −1 compiler/rustc_borrowck/src/places_conflict.rs
  12. +7 −2 compiler/rustc_borrowck/src/polonius/legacy/loan_invalidations.rs
  13. +7 −0 compiler/rustc_borrowck/src/session_diagnostics.rs
  14. +2 −0 compiler/rustc_borrowck/src/type_check/mod.rs
  15. +6 −0 compiler/rustc_codegen_cranelift/src/base.rs
  16. +11 −2 compiler/rustc_codegen_gcc/src/asm.rs
  17. +9 −9 compiler/rustc_codegen_gcc/src/debuginfo.rs
  18. +8 −0 compiler/rustc_codegen_llvm/src/asm.rs
  19. +22 −37 compiler/rustc_codegen_llvm/src/debuginfo/create_scope_map.rs
  20. +2 −2 compiler/rustc_codegen_llvm/src/debuginfo/mod.rs
  21. +7 −18 compiler/rustc_codegen_ssa/src/back/link.rs
  22. +1 −0 compiler/rustc_codegen_ssa/src/back/metadata.rs
  23. +2 −4 compiler/rustc_codegen_ssa/src/mir/debuginfo.rs
  24. +28 −1 compiler/rustc_codegen_ssa/src/mir/rvalue.rs
  25. +7 −21 compiler/rustc_const_eval/src/check_consts/check.rs
  26. +3 −1 compiler/rustc_const_eval/src/check_consts/qualifs.rs
  27. +1 −0 compiler/rustc_const_eval/src/check_consts/resolver.rs
  28. +9 −12 compiler/rustc_const_eval/src/interpret/step.rs
  29. +3 −41 compiler/rustc_const_eval/src/interpret/util.rs
  30. +2 −5 compiler/rustc_feature/src/accepted.rs
  31. +1 −1 compiler/rustc_feature/src/removed.rs
  32. +14 −11 compiler/rustc_feature/src/unstable.rs
  33. +1 −1 compiler/rustc_hir_analysis/messages.ftl
  34. +2 −1 compiler/rustc_hir_analysis/src/errors.rs
  35. +29 −2 compiler/rustc_hir_analysis/src/lib.rs
  36. +56 −24 compiler/rustc_hir_typeck/src/pat.rs
  37. +1 −1 compiler/rustc_lint/src/impl_trait_overcaptures.rs
  38. +1 −0 compiler/rustc_llvm/src/lib.rs
  39. +0 −3 compiler/rustc_middle/src/mir/consts.rs
  40. +1 −0 compiler/rustc_middle/src/mir/pretty.rs
  41. +1 −0 compiler/rustc_middle/src/mir/statement.rs
  42. +10 −0 compiler/rustc_middle/src/mir/syntax.rs
  43. +1 −0 compiler/rustc_middle/src/mir/tcx.rs
  44. +8 −0 compiler/rustc_middle/src/mir/visit.rs
  45. +1 −1 compiler/rustc_middle/src/ty/mod.rs
  46. +19 −5 compiler/rustc_middle/src/ty/typeck_results.rs
  47. +10 −1 compiler/rustc_mir_build/messages.ftl
  48. +1 −0 compiler/rustc_mir_build/src/builder/custom/parse/instruction.rs
  49. +9 −101 compiler/rustc_mir_build/src/builder/expr/as_place.rs
  50. +5 −2 compiler/rustc_mir_build/src/builder/matches/test.rs
  51. +3 −3 compiler/rustc_mir_build/src/builder/scope.rs
  52. +8 −5 compiler/rustc_mir_build/src/check_tail_calls.rs
  53. +4 −1 compiler/rustc_mir_build/src/check_unsafety.rs
  54. +45 −15 compiler/rustc_mir_build/src/errors.rs
  55. +1 −8 compiler/rustc_mir_build/src/thir/pattern/check_match.rs
  56. +100 −46 compiler/rustc_mir_build/src/thir/pattern/mod.rs
  57. +1 −0 compiler/rustc_mir_dataflow/src/impls/borrowed_locals.rs
  58. +1 −0 compiler/rustc_mir_dataflow/src/move_paths/builder.rs
  59. +12 −0 compiler/rustc_mir_transform/src/dataflow_const_prop.rs
  60. +1 −0 compiler/rustc_mir_transform/src/dest_prop.rs
  61. +51 −0 compiler/rustc_mir_transform/src/gvn.rs
  62. +13 −0 compiler/rustc_mir_transform/src/instsimplify.rs
  63. +15 −0 compiler/rustc_mir_transform/src/known_panics_lint.rs
  64. +6 −1 compiler/rustc_mir_transform/src/lint_tail_expr_drop_order.rs
  65. +3 −1 compiler/rustc_mir_transform/src/promote_consts.rs
  66. +16 −0 compiler/rustc_mir_transform/src/validate.rs
  67. +3 −2 compiler/rustc_parse/src/parser/mod.rs
  68. +3 −1 compiler/rustc_resolve/src/late/diagnostics.rs
  69. +1 −0 compiler/rustc_smir/src/rustc_smir/convert/mir.rs
  70. +0 −4 compiler/rustc_span/src/hygiene.rs
  71. +25 −0 compiler/rustc_span/src/symbol.rs
  72. +29 −0 compiler/rustc_target/src/asm/mod.rs
  73. +293 −0 compiler/rustc_target/src/asm/xtensa.rs
  74. +1 −0 compiler/rustc_target/src/spec/mod.rs
  75. +3 −1 compiler/rustc_target/src/spec/targets/aarch64_unknown_none_softfloat.rs
  76. +1 −1 compiler/rustc_target/src/spec/targets/xtensa_esp32s2_espidf.rs
  77. +1 −1 compiler/rustc_target/src/spec/targets/xtensa_esp32s2_none_elf.rs
  78. +1 −1 compiler/rustc_target/src/spec/targets/xtensa_esp32s3_espidf.rs
  79. +1 −1 compiler/rustc_target/src/spec/targets/xtensa_esp32s3_none_elf.rs
  80. +24 −0 compiler/rustc_target/src/spec/targets/xtensa_esp8266_none_elf.rs
  81. +32 −0 compiler/rustc_target/src/target_features.rs
  82. +45 −24 compiler/rustc_trait_selection/src/traits/coherence.rs
  83. +3 −3 library/alloc/src/boxed.rs
  84. +20 −19 library/alloc/tests/vec.rs
  85. +5 −5 library/core/src/alloc/layout.rs
  86. +2 −2 library/core/src/hash/mod.rs
  87. +2 −1 library/core/src/intrinsics/mir.rs
  88. +2 −32 library/core/src/iter/adapters/flatten.rs
  89. +1 −1 library/core/src/iter/traits/collect.rs
  90. +1 −1 library/core/src/mem/maybe_uninit.rs
  91. +3 −3 library/core/src/mem/mod.rs
  92. +11 −11 library/core/src/num/f32.rs
  93. +11 −11 library/core/src/num/f64.rs
  94. +4 −4 library/core/src/num/mod.rs
  95. +2 −2 library/core/src/num/nonzero.rs
  96. +8 −11 library/core/src/ops/async_function.rs
  97. +4 −0 library/core/src/prelude/common.rs
  98. +2 −2 library/core/src/prelude/mod.rs
  99. +2 −2 library/core/src/ptr/mod.rs
  100. +1 −1 library/core/src/ptr/mut_ptr.rs
  101. +2 −2 library/core/src/ptr/non_null.rs
  102. +1 −1 library/core/src/slice/mod.rs
  103. +3 −3 library/core/src/task/wake.rs
  104. +1 −1 library/std/src/collections/hash/map.rs
  105. +1 −1 library/std/src/collections/hash/set.rs
  106. +1 −1 library/std/src/env.rs
  107. +2 −2 library/std/src/io/error.rs
  108. +1 −0 library/std/src/lib.rs
  109. +1 −1 library/std/src/prelude/common.rs
  110. +2 −2 library/std/src/prelude/mod.rs
  111. +0 −3 library/std/src/sys/pal/windows/fs.rs
  112. +5 −0 src/bootstrap/bootstrap.py
  113. +7 −1 src/bootstrap/src/core/build_steps/compile.rs
  114. +16 −40 src/bootstrap/src/core/build_steps/dist.rs
  115. +5 −1 src/bootstrap/src/core/build_steps/tool.rs
  116. +25 −17 src/bootstrap/src/core/config/config.rs
  117. +8 −0 src/bootstrap/src/lib.rs
  118. +3 −13 src/build_helper/src/git.rs
  119. +1 −1 src/ci/channel
  120. +41 −0 src/ci/docker/scripts/musl.sh
  121. +0 −24 src/ci/scripts/setup-upstream-remote.sh
  122. +0 −12 src/ci/shared.sh
  123. +1 −1 src/doc/book
  124. +1 −1 src/doc/edition-guide
  125. +1 −1 src/doc/reference
  126. +1 −1 src/doc/rustc/src/check-cfg.md
  127. +0 −4 src/doc/style-guide/src/editions.md
  128. +7 −48 src/doc/style-guide/src/expressions.md
  129. +10 −0 src/doc/unstable-book/src/language-features/extended-varargs-abi-support.md
  130. +1 −40 src/etc/installer/msi/rust.wxs
  131. +1 −1 src/llvm-project
  132. +350 −452 src/stage0
  133. +1 −1 src/tools/clippy/clippy_lints/src/literal_string_with_formatting_args.rs
  134. +1 −1 src/tools/clippy/clippy_utils/src/qualify_min_const_fn.rs
  135. +1 −1 src/tools/rust-analyzer/crates/hir-def/src/data.rs
  136. +3 −3 src/tools/rust-analyzer/crates/hir-ty/src/lower.rs
  137. +2 −2 src/tools/rust-analyzer/crates/proc-macro-srv/src/lib.rs
  138. +0 −2 src/tools/rust-analyzer/crates/ra-salsa/src/lib.rs
  139. +8 −1 src/tools/rust-analyzer/crates/rust-analyzer/src/handlers/dispatch.rs
  140. +10 −11 src/tools/rustfmt/src/bin/main.rs
  141. +1 −1 src/tools/rustfmt/src/config/mod.rs
  142. +2 −2 src/tools/rustfmt/src/config/options.rs
  143. +44 −29 src/tools/rustfmt/tests/target/configs/style_edition/overflow_delim_expr_2024.rs
  144. +139 −0 tests/assembly/asm/xtensa-types.rs
  145. +5 −3 tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-abort.mir
  146. +5 −3 tests/mir-opt/array_index_is_temporary.main.SimplifyCfg-pre-optimizations.after.panic-unwind.mir
  147. +14 −0 tests/mir-opt/building/custom/arrays.arrays.built.after.mir
  148. +22 −0 tests/mir-opt/building/custom/arrays.rs
  149. +0 −31 tests/mir-opt/building/index_array_and_slice.index_array.built.after.mir
  150. +0 −31 tests/mir-opt/building/index_array_and_slice.index_const_generic_array.built.after.mir
  151. +0 −34 tests/mir-opt/building/index_array_and_slice.index_custom.built.after.mir
  152. +0 −34 tests/mir-opt/building/index_array_and_slice.index_mut_slice.built.after.mir
  153. +0 −32 tests/mir-opt/building/index_array_and_slice.index_slice.built.after.mir
  154. +0 −71 tests/mir-opt/building/index_array_and_slice.rs
  155. +7 −4 tests/mir-opt/const_prop/array_index.main.GVN.32bit.panic-abort.diff
  156. +7 −4 tests/mir-opt/const_prop/array_index.main.GVN.32bit.panic-unwind.diff
  157. +7 −4 tests/mir-opt/const_prop/array_index.main.GVN.64bit.panic-abort.diff
  158. +7 −4 tests/mir-opt/const_prop/array_index.main.GVN.64bit.panic-unwind.diff
  159. +5 −8 tests/mir-opt/const_prop/bad_op_unsafe_oob_for_slices.main.GVN.32bit.panic-abort.diff
  160. +5 −8 tests/mir-opt/const_prop/bad_op_unsafe_oob_for_slices.main.GVN.32bit.panic-unwind.diff
  161. +5 −8 tests/mir-opt/const_prop/bad_op_unsafe_oob_for_slices.main.GVN.64bit.panic-abort.diff
  162. +5 −8 tests/mir-opt/const_prop/bad_op_unsafe_oob_for_slices.main.GVN.64bit.panic-unwind.diff
  163. +7 −4 tests/mir-opt/const_prop/large_array_index.main.GVN.32bit.panic-abort.diff
  164. +7 −4 tests/mir-opt/const_prop/large_array_index.main.GVN.32bit.panic-unwind.diff
  165. +7 −4 tests/mir-opt/const_prop/large_array_index.main.GVN.64bit.panic-abort.diff
  166. +7 −4 tests/mir-opt/const_prop/large_array_index.main.GVN.64bit.panic-unwind.diff
  167. +7 −4 tests/mir-opt/const_prop/repeat.main.GVN.32bit.panic-abort.diff
  168. +7 −4 tests/mir-opt/const_prop/repeat.main.GVN.32bit.panic-unwind.diff
  169. +7 −4 tests/mir-opt/const_prop/repeat.main.GVN.64bit.panic-abort.diff
  170. +7 −4 tests/mir-opt/const_prop/repeat.main.GVN.64bit.panic-unwind.diff
  171. +3 −4 tests/mir-opt/const_prop/slice_len.main.GVN.32bit.panic-abort.diff
  172. +3 −4 tests/mir-opt/const_prop/slice_len.main.GVN.32bit.panic-unwind.diff
  173. +3 −4 tests/mir-opt/const_prop/slice_len.main.GVN.64bit.panic-abort.diff
  174. +3 −4 tests/mir-opt/const_prop/slice_len.main.GVN.64bit.panic-unwind.diff
  175. +7 −5 tests/mir-opt/copy-prop/issue_107511.main.CopyProp.panic-abort.diff
  176. +7 −5 tests/mir-opt/copy-prop/issue_107511.main.CopyProp.panic-unwind.diff
  177. +7 −4 tests/mir-opt/dataflow-const-prop/array_index.main.DataflowConstProp.32bit.panic-abort.diff
  178. +7 −4 tests/mir-opt/dataflow-const-prop/array_index.main.DataflowConstProp.32bit.panic-unwind.diff
  179. +7 −4 tests/mir-opt/dataflow-const-prop/array_index.main.DataflowConstProp.64bit.panic-abort.diff
  180. +7 −4 tests/mir-opt/dataflow-const-prop/array_index.main.DataflowConstProp.64bit.panic-unwind.diff
  181. +1 −2 tests/mir-opt/dataflow-const-prop/array_index.rs
  182. +7 −4 tests/mir-opt/dataflow-const-prop/large_array_index.main.DataflowConstProp.32bit.panic-abort.diff
  183. +7 −4 tests/mir-opt/dataflow-const-prop/large_array_index.main.DataflowConstProp.32bit.panic-unwind.diff
  184. +7 −4 tests/mir-opt/dataflow-const-prop/large_array_index.main.DataflowConstProp.64bit.panic-abort.diff
  185. +7 −4 tests/mir-opt/dataflow-const-prop/large_array_index.main.DataflowConstProp.64bit.panic-unwind.diff
  186. +1 −1 tests/mir-opt/dataflow-const-prop/large_array_index.rs
  187. +7 −4 tests/mir-opt/dataflow-const-prop/repeat.main.DataflowConstProp.32bit.panic-abort.diff
  188. +7 −4 tests/mir-opt/dataflow-const-prop/repeat.main.DataflowConstProp.32bit.panic-unwind.diff
  189. +7 −4 tests/mir-opt/dataflow-const-prop/repeat.main.DataflowConstProp.64bit.panic-abort.diff
  190. +7 −4 tests/mir-opt/dataflow-const-prop/repeat.main.DataflowConstProp.64bit.panic-unwind.diff
  191. +1 −2 tests/mir-opt/dataflow-const-prop/repeat.rs
  192. +77 −0 tests/mir-opt/dataflow-const-prop/slice_len.main.DataflowConstProp.32bit.panic-abort.diff
  193. +77 −0 tests/mir-opt/dataflow-const-prop/slice_len.main.DataflowConstProp.32bit.panic-unwind.diff
  194. +77 −0 tests/mir-opt/dataflow-const-prop/slice_len.main.DataflowConstProp.64bit.panic-abort.diff
  195. +77 −0 tests/mir-opt/dataflow-const-prop/slice_len.main.DataflowConstProp.64bit.panic-unwind.diff
  196. +34 −0 tests/mir-opt/dataflow-const-prop/slice_len.rs
  197. +2 −2 tests/mir-opt/deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-abort.diff
  198. +2 −2 tests/mir-opt/deduplicate_blocks.is_line_doc_comment_2.DeduplicateBlocks.panic-unwind.diff
  199. +2 −2 tests/mir-opt/gvn.constant_index_overflow.GVN.panic-abort.diff
  200. +2 −2 tests/mir-opt/gvn.constant_index_overflow.GVN.panic-unwind.diff
  201. +0 −72 tests/mir-opt/gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-abort.diff
  202. +0 −72 tests/mir-opt/gvn.dedup_multiple_bounds_checks_lengths.GVN.panic-unwind.diff
  203. +27 −21 tests/mir-opt/gvn.repeated_index.GVN.panic-abort.diff
  204. +27 −21 tests/mir-opt/gvn.repeated_index.GVN.panic-unwind.diff
  205. +0 −20 tests/mir-opt/gvn.rs
  206. +154 −148 tests/mir-opt/gvn.wide_ptr_same_provenance.GVN.panic-abort.diff
  207. +154 −148 tests/mir-opt/gvn.wide_ptr_same_provenance.GVN.panic-unwind.diff
  208. +12 −0 tests/mir-opt/gvn_type_id_polymorphic.cursed_is_i32.GVN.diff
  209. +22 −0 tests/mir-opt/gvn_type_id_polymorphic.rs
  210. +77 −0 tests/mir-opt/instsimplify/combine_array_len.norm2.InstSimplify-after-simplifycfg.panic-abort.diff
  211. +77 −0 tests/mir-opt/instsimplify/combine_array_len.norm2.InstSimplify-after-simplifycfg.panic-unwind.diff
  212. +15 −0 tests/mir-opt/instsimplify/combine_array_len.rs
  213. +5 −4 tests/mir-opt/issue_72181.foo.built.after.mir
  214. +5 −4 tests/mir-opt/issue_72181.main.built.after.mir
  215. +18 −14 tests/mir-opt/issue_76432.test.SimplifyComparisonIntegral.panic-abort.diff
  216. +18 −14 tests/mir-opt/issue_76432.test.SimplifyComparisonIntegral.panic-unwind.diff
  217. +5 −7 tests/mir-opt/issue_91633.foo.built.after.mir
  218. +1 −1 tests/mir-opt/issue_91633.fun.built.after.mir
  219. +13 −7 tests/mir-opt/lower_array_len.array_bound.GVN.panic-abort.diff
  220. +13 −7 tests/mir-opt/lower_array_len.array_bound.GVN.panic-unwind.diff
  221. +26 −17 tests/mir-opt/lower_array_len.array_bound_mut.GVN.panic-abort.diff
  222. +26 −17 tests/mir-opt/lower_array_len.array_bound_mut.GVN.panic-unwind.diff
  223. +1 −1 tests/mir-opt/lower_slice_len.bound.LowerSliceLenCalls.panic-abort.diff
  224. +1 −1 tests/mir-opt/lower_slice_len.bound.LowerSliceLenCalls.panic-unwind.diff
  225. +24 −23 tests/mir-opt/nll/region_subtyping_basic.main.nll.0.32bit.mir
  226. +24 −23 tests/mir-opt/nll/region_subtyping_basic.main.nll.0.64bit.mir
  227. +14 −12 tests/mir-opt/pre-codegen/optimizes_into_variable.main.GVN.32bit.panic-abort.diff
  228. +14 −12 tests/mir-opt/pre-codegen/optimizes_into_variable.main.GVN.32bit.panic-unwind.diff
  229. +14 −12 tests/mir-opt/pre-codegen/optimizes_into_variable.main.GVN.64bit.panic-abort.diff
  230. +14 −12 tests/mir-opt/pre-codegen/optimizes_into_variable.main.GVN.64bit.panic-unwind.diff
  231. +20 −18 ...opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-abort.diff
  232. +20 −18 ...pt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.32bit.panic-unwind.diff
  233. +20 −18 ...opt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-abort.diff
  234. +20 −18 ...pt/pre-codegen/optimizes_into_variable.main.ScalarReplacementOfAggregates.64bit.panic-unwind.diff
  235. +1 −1 tests/mir-opt/pre-codegen/slice_index.rs
  236. +1 −1 tests/mir-opt/pre-codegen/slice_index.slice_index_usize.PreCodegen.after.panic-abort.mir
  237. +1 −1 tests/mir-opt/pre-codegen/slice_index.slice_index_usize.PreCodegen.after.panic-unwind.mir
  238. +16 −14 tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-abort.mir
  239. +16 −14 tests/mir-opt/pre-codegen/slice_iter.range_loop.PreCodegen.after.panic-unwind.mir
  240. +5 −4 tests/mir-opt/reference_prop.debuginfo.ReferencePropagation.diff
  241. +1 −0 tests/mir-opt/tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-abort.mir
  242. +1 −0 tests/mir-opt/tail_expr_drop_order_unwind.method_1.ElaborateDrops.after.panic-unwind.mir
  243. +3 −0 tests/run-make/llvm-location-discriminator-limit-dummy-span/main.rs
  244. +1 −0 tests/run-make/llvm-location-discriminator-limit-dummy-span/other.rs
  245. +7 −0 tests/run-make/llvm-location-discriminator-limit-dummy-span/proc.rs
  246. +65 −0 tests/run-make/llvm-location-discriminator-limit-dummy-span/rmake.rs
  247. +8 −0 tests/run-make/strip/hello.rs
  248. +42 −0 tests/run-make/strip/rmake.rs
  249. +30 −0 tests/ui/borrowck/array-disjoint-borrows-issue-135671.rs
  250. +1 −0 tests/ui/borrowck/borrowck-describe-lvalue.rs
  251. +18 −7 tests/ui/borrowck/borrowck-describe-lvalue.stderr
  252. +19 −0 tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.rs
  253. +52 −0 tests/ui/c-variadic/feature-gate-extended_varargs_abi_support.stderr
  254. +1 −1 tests/ui/c-variadic/variadic-ffi-1.stderr
  255. +1 −0 tests/ui/c-variadic/variadic-ffi-2-arm.rs
  256. +1 −0 tests/ui/c-variadic/variadic-ffi-2.rs
  257. +1 −1 tests/ui/c-variadic/variadic-ffi-2.stderr
  258. +4 −2 tests/ui/closures/2229_closure_analysis/diagnostics/arrays.rs
  259. +34 −6 tests/ui/closures/2229_closure_analysis/diagnostics/arrays.stderr
  260. +1 −1 tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.rs
  261. +1 −1 tests/ui/cmse-nonsecure/cmse-nonsecure-call/generics.stderr
  262. +0 −2 tests/ui/coherence/occurs-check/associated-type.next.stderr
  263. +0 −2 tests/ui/coherence/occurs-check/associated-type.old.stderr
  264. +0 −15 tests/ui/const-generics/issues/index_array_bad_type.rs
  265. +0 −8 tests/ui/const-generics/issues/index_array_bad_type.stderr
  266. +1 −3 tests/ui/consts/issue-65348.rs
  267. +51 −0 tests/ui/drop/lint-tail-expr-drop-order-borrowck.rs
  268. +54 −0 tests/ui/drop/lint-tail-expr-drop-order-borrowck.stderr
  269. +0 −1 tests/ui/drop/lint-tail-expr-drop-order.rs
  270. +10 −17 tests/ui/drop/lint-tail-expr-drop-order.stderr
  271. +4 −0 tests/ui/drop/tail_expr_drop_order-on-coroutine-unwind.stderr
  272. +13 −0 tests/ui/drop/tail_expr_drop_order-on-recursive-boxed-fut.rs
  273. +56 −0 tests/ui/drop/tail_expr_drop_order-on-thread-local.rs
  274. +1 −1 tests/ui/error-codes/E0045.stderr
  275. +5 −5 tests/ui/impl-trait/precise-capturing/redundant.rs
  276. +10 −6 tests/ui/impl-trait/precise-capturing/redundant.stderr
  277. +115 −17 tests/ui/pattern/rfc-3627-match-ergonomics-2024/migration_lint.fixed
  278. +114 −16 tests/ui/pattern/rfc-3627-match-ergonomics-2024/migration_lint.rs
  279. +384 −39 tests/ui/pattern/rfc-3627-match-ergonomics-2024/migration_lint.stderr
  280. +7 −7 tests/ui/pattern/rfc-3627-match-ergonomics-2024/min_match_ergonomics_fail.rs
  281. +57 −20 tests/ui/pattern/rfc-3627-match-ergonomics-2024/min_match_ergonomics_fail.stderr
  282. +10 −0 tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.rs
  283. +34 −0 tests/ui/pattern/struct-pattern-on-non-struct-resolve-error.stderr
  284. +9 −0 tests/ui/pattern/struct-pattern-with-missing-fields-resolve-error.rs
  285. +11 −3 tests/ui/pattern/struct-pattern-with-missing-fields-resolve-error.stderr
  286. +149 −145 tests/ui/stable-mir-print/operands.stdout
  287. +56 −0 tests/ui/traits/next-solver/coherence/ambiguity-causes-visitor-hang.rs
  288. +14 −0 tests/ui/traits/next-solver/coherence/ambiguity-causes-visitor-hang.stderr
3 changes: 0 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -130,9 +130,6 @@ jobs:
# which then uses log commands to actually set them.
EXTRA_VARIABLES: ${{ toJson(matrix.env) }}

- name: setup upstream remote
run: src/ci/scripts/setup-upstream-remote.sh

- name: ensure the channel matches the target branch
run: src/ci/scripts/verify-channel.sh

4 changes: 2 additions & 2 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -28,8 +28,8 @@
shallow = true
[submodule "src/llvm-project"]
path = src/llvm-project
url = https://github.com/rust-lang/llvm-project.git
branch = rustc/19.1-2024-12-03
url = https://github.com/espressif/llvm-project
branch = xtensa_release_19.1.2
shallow = true
[submodule "src/doc/embedded-book"]
path = src/doc/embedded-book
16 changes: 8 additions & 8 deletions Cargo.lock
Original file line number Diff line number Diff line change
@@ -1983,7 +1983,7 @@ dependencies = [
"anyhow",
"clap",
"fs-err",
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"rustdoc-json-types",
"serde",
"serde_json",
@@ -3152,7 +3152,7 @@ dependencies = [
"proc-macro2",
"quote",
"rinja_parser",
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"serde",
"syn 2.0.93",
]
@@ -3216,9 +3216,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"

[[package]]
name = "rustc-hash"
version = "2.1.0"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497"
checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"

[[package]]
name = "rustc-main"
@@ -3620,7 +3620,7 @@ dependencies = [
"memmap2",
"parking_lot",
"portable-atomic",
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"rustc-rayon",
"rustc-stable-hash",
"rustc_arena",
@@ -4323,7 +4323,7 @@ dependencies = [
name = "rustc_pattern_analysis"
version = "0.0.0"
dependencies = [
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"rustc_abi",
"rustc_apfloat",
"rustc_arena",
@@ -4719,7 +4719,7 @@ name = "rustdoc-json-types"
version = "0.1.0"
dependencies = [
"bincode",
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"serde",
"serde_json",
]
@@ -5363,7 +5363,7 @@ dependencies = [
"ignore",
"miropt-test-tools",
"regex",
"rustc-hash 2.1.0",
"rustc-hash 2.1.1",
"semver",
"similar",
"termcolor",
71 changes: 12 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,56 +1,24 @@
<div align="center">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/rust-lang/www.rust-lang.org/master/static/images/rust-social-wide-dark.svg">
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/rust-lang/www.rust-lang.org/master/static/images/rust-social-wide-light.svg">
<img alt="The Rust Programming Language: A language empowering everyone to build reliable and efficient software"
src="https://raw.githubusercontent.com/rust-lang/www.rust-lang.org/master/static/images/rust-social-wide-light.svg"
width="50%">
</picture>
# The Rust Programming Language for Espressif chips

[Website][Rust] | [Getting started] | [Learn] | [Documentation] | [Contributing]
</div>
This fork enables projects to be built for the Xtensa-based ESP32, ESP32-SXX and ESP8266 using [Espressif's llvm fork](https://github.com/espressif/llvm-project). (RiscV chips like ESP32-CXX are already supported in stock Rust.)

This is the main source code repository for [Rust]. It contains the compiler,
standard library, and documentation.
Moreover, this fork enables Rust STD support (networking, threads, and filesystem) for all chips in the ESP32 family (Xtensa and RiscV), by optionally linking with the ESP-IDF framework.

[Rust]: https://www.rust-lang.org/
[Getting Started]: https://www.rust-lang.org/learn/get-started
[Learn]: https://www.rust-lang.org/learn
[Documentation]: https://www.rust-lang.org/learn#learn-use
[Contributing]: CONTRIBUTING.md
The [esp-rs](https://github.com/esp-rs) organization has been formed to develop runtime, pac and hal crates for the Espressif chips (bare-metal as well as ESP-IDF based).

## Why Rust?
Join in on the discussion: https://matrix.to/#/#esp-rs:matrix.org!

- **Performance:** Fast and memory-efficient, suitable for critical services, embedded devices, and easily integrated with other languages.
## Installation

- **Reliability:** Our rich type system and ownership model ensure memory and thread safety, reducing bugs at compile-time.
Please see the most up to date instructions in the [esp rust book](https://esp-rs.github.io/book/).

- **Productivity:** Comprehensive documentation, a compiler committed to providing great diagnostics, and advanced tooling including package manager and build tool ([Cargo]), auto-formatter ([rustfmt]), linter ([Clippy]) and editor support ([rust-analyzer]).
## Building from source

[Cargo]: https://github.com/rust-lang/cargo
[rustfmt]: https://github.com/rust-lang/rustfmt
[Clippy]: https://github.com/rust-lang/rust-clippy
[rust-analyzer]: https://github.com/rust-lang/rust-analyzer
If you wish to build this fork from source, the instructions are almost identical to the ones upstream ([follow here](https://github.com/rust-lang/rust#installing-from-source)), however before beginning the build, run the following `./configure` command:

## Quick Start

Read ["Installation"] from [The Book].

["Installation"]: https://doc.rust-lang.org/book/ch01-01-installation.html
[The Book]: https://doc.rust-lang.org/book/index.html

## Installing from Source

If you really want to install from source (though this is not recommended), see
[INSTALL.md](INSTALL.md).

## Getting Help

See https://www.rust-lang.org/community for a list of chat platforms and forums.

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md).
```
./configure --experimental-targets=Xtensa --release-channel=nightly --enable-extended --tools=clippy,cargo,rustfmt --enable-lld
```

## License

@@ -60,18 +28,3 @@ licenses.

See [LICENSE-APACHE](LICENSE-APACHE), [LICENSE-MIT](LICENSE-MIT), and
[COPYRIGHT](COPYRIGHT) for details.

## Trademark

[The Rust Foundation][rust-foundation] owns and protects the Rust and Cargo
trademarks and logos (the "Rust Trademarks").

If you want to use these names or brands, please read the
[media guide][media-guide].

Third-party logos may be subject to third-party copyrights and trademarks. See
[Licenses][policies-licenses] for details.

[rust-foundation]: https://foundation.rust-lang.org/
[media-guide]: https://foundation.rust-lang.org/policies/logo-policy-and-media-guide/
[policies-licenses]: https://www.rust-lang.org/policies/licenses
Loading