about summary refs log tree commit diff
path: root/src/test/debuginfo/enum-thinlto.rs
diff options
context:
space:
mode:
authorDylan DPC <dylan.dpc@gmail.com>2020-05-18 19:04:03 +0200
committerGitHub <noreply@github.com>2020-05-18 19:04:03 +0200
commitc6030c957a2bb4ddb36c9a06df5fcf9c5f626029 (patch)
tree3e31077070ab8aa454067a7951b4e384bea55160 /src/test/debuginfo/enum-thinlto.rs
parent58e644736521b2916a6734aa225603c539bfeeed (diff)
parent9da8a5ba6848cf246995b985b0982a7a9aa44890 (diff)
downloadrust-c6030c957a2bb4ddb36c9a06df5fcf9c5f626029.tar.gz
rust-c6030c957a2bb4ddb36c9a06df5fcf9c5f626029.zip
Rollup merge of #71973 - lcnr:lazy-norm, r=nikomatsakis
Lazy normalization of constants (Reprise)

Continuation of #67890 by @skinny121.

Initial implementation of #60471 for constants.

Perform normalization/evaluation of constants lazily, which is known as lazy normalization. Lazy normalization is only enabled when using `#![feature(lazy_normalization_consts)]`, by default constants are still evaluated eagerly as there are currently.

Lazy normalization of constants is achieved with a new ConstEquate predicate which type inferences uses to delay checking whether constants are equal to each other until later, avoiding cycle errors.

Note this doesn't allow the use of generics within repeat count expressions as that is still evaluated during conversion to mir. There are also quite a few other known problems with lazy normalization which will be fixed in future PRs.

r? @nikomatsakis

fixes #71922, fixes #71986
Diffstat (limited to 'src/test/debuginfo/enum-thinlto.rs')
0 files changed, 0 insertions, 0 deletions