rust/compiler
bors 052495d001 Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser
don't succeed `evaluate_obligation` query if new opaque types were registered

fixes #98608
fixes #98604

The root cause of all this is that in type flag computation we entirely ignore nongeneric things like struct fields and the signature of function items. So if a flag had to be set for a struct if it is set for a field, that will only happen if the field is generic, as only the generic parameters are checked.

I now believe we cannot use type flags to handle opaque types. They seem like the wrong tool for this.

Instead, this PR replaces the previous logic by adding a new variant of `EvaluatedToOk`: `EvaluatedToOkModuloOpaqueTypes`, which says that there were some opaque types that got hidden types bound, but that binding may not have been legal (because we don't know if the opaque type was in its defining scope or not).
2022-07-08 17:55:26 +00:00
..
rustc Rollup merge of #97385 - oli-obk:smir-tool-lib, r=pnkfelix 2022-06-14 07:47:24 +09:00
rustc_apfloat Update smallvec to 1.8.1. 2022-06-27 08:48:55 +10:00
rustc_arena Rollup merge of #97711 - Nilstrieb:rustc-arena-ub, r=wesleywiser 2022-07-07 18:06:49 +05:30
rustc_ast Auto merge of #98758 - nnethercote:more-derive-output-improvements, r=Mark-Simulacrum 2022-07-08 12:44:14 +00:00
rustc_ast_lowering Auto merge of #95573 - cjgillot:lower-query, r=michaelwoerister 2022-07-07 18:14:44 +00:00
rustc_ast_passes Suggest using block for extern "abi" fn with no body 2022-07-06 13:27:53 +01:00
rustc_ast_pretty ast: Add span to Extern 2022-07-02 23:30:03 +01:00
rustc_attr Remove rustc_deprecated diagnostics 2022-06-14 19:46:13 -04:00
rustc_borrowck Rollup merge of #98795 - jackh726:lexical_region_resolve_cleanup, r=compiler-errors 2022-07-08 08:00:38 +02:00
rustc_builtin_macros Inline and remove the cs_fold_* functions. 2022-07-05 09:34:56 +10:00
rustc_codegen_cranelift incr: cache dwarf objects in work products 2022-07-06 11:15:13 +01:00
rustc_codegen_gcc Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko 2022-07-08 10:03:27 +00:00
rustc_codegen_llvm Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko 2022-07-08 10:03:27 +00:00
rustc_codegen_ssa Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko 2022-07-08 10:03:27 +00:00
rustc_const_eval Migrate MutDeref, TransientMutBorrow diagnostics 2022-07-08 03:48:10 +00:00
rustc_data_structures Allow to create definitions inside the query system. 2022-07-06 22:50:55 +02:00
rustc_driver Fix bug in rustdoc -Whelp 2022-07-02 02:11:49 -05:00
rustc_error_codes Rollup merge of #97423 - m-ou-se:memory-ordering-intrinsics, r=tmiasko 2022-06-29 10:28:18 +05:30
rustc_error_messages simplify plurals in fluent messages using hir::ConstContext 2022-07-08 03:48:10 +00:00
rustc_errors Rollup merge of #98657 - compiler-errors:rustc-const-eval-session-diagnostic-1, r=davidtwco 2022-07-08 18:25:50 +05:30
rustc_expand Auto merge of #98446 - nnethercote:derive-no-match-destructuring, r=scottmcm 2022-07-04 01:06:54 +00:00
rustc_feature Move/rename lazy::Sync{OnceCell,Lazy} to sync::{Once,Lazy}Lock 2022-06-16 19:54:42 +04:00
rustc_fs_util
rustc_graphviz Fully stabilize NLL 2022-06-03 17:16:41 -04:00
rustc_hir Implement IntoDiagnosticArg for hir::ConstContext 2022-07-08 03:47:31 +00:00
rustc_hir_pretty clean up the borrowing in rustc_hir_pretty 2022-07-03 18:51:14 +02:00
rustc_incremental Rollup merge of #98844 - cjgillot:deep-visit, r=jyn514 2022-07-07 20:33:24 +02:00
rustc_index Use a bitset instead of a hash map in HIR ID validator 2022-07-04 08:30:13 +02:00
rustc_infer Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
rustc_interface Rollup merge of #98533 - jyn514:drop-tracking-debugging, r=eholk 2022-07-08 18:25:48 +05:30
rustc_lexer fix typo in comment 2022-06-28 19:59:09 +05:30
rustc_lint Auto merge of #95573 - cjgillot:lower-query, r=michaelwoerister 2022-07-07 18:14:44 +00:00
rustc_lint_defs Rollup merge of #98507 - xFrednet:rfc-2383-manual-expectation-magic, r=wesleywiser 2022-07-07 18:06:50 +05:30
rustc_llvm llvm-wrapper: adapt for LLVMConstExtractValue removal 2022-06-30 12:47:34 +00:00
rustc_log clippy::complexity fixes 2022-05-26 13:14:24 +02:00
rustc_macros Use dashes instead of underscores in fluent names 2022-07-08 03:37:36 +00:00
rustc_metadata Auto merge of #99024 - matthiaskrgr:rollup-8ygpcpg, r=matthiaskrgr 2022-07-07 20:55:34 +00:00
rustc_middle Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
rustc_mir_build Make MIR basic blocks field public 2022-07-07 08:11:49 +02:00
rustc_mir_dataflow Rollup merge of #98986 - pierwill:patch-5, r=oli-obk 2022-07-07 20:33:27 +02:00
rustc_mir_transform Auto merge of #99024 - matthiaskrgr:rollup-8ygpcpg, r=matthiaskrgr 2022-07-07 20:55:34 +00:00
rustc_monomorphize Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_parse Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko 2022-07-08 10:03:27 +00:00
rustc_parse_format Make rustc_parse_format compile on stable 2022-05-03 11:26:58 +02:00
rustc_passes Reword comments and rename HIR visiting methods. 2022-07-07 16:01:43 +02:00
rustc_plugin_impl remove currently unused deps 2022-06-13 22:20:51 +03:00
rustc_privacy Rollup merge of #98881 - cjgillot:q-def-kind, r=fee1-dead 2022-07-06 14:49:08 +05:30
rustc_query_impl Use a dedicated DepKind for the forever-red node. 2022-07-06 23:20:12 +02:00
rustc_query_system Auto merge of #95573 - cjgillot:lower-query, r=michaelwoerister 2022-07-07 18:14:44 +00:00
rustc_resolve suggest adding a derive for #[default] applied to variants 2022-07-07 04:57:01 +00:00
rustc_save_analysis Factor out hir::Node::Binding 2022-07-01 10:04:19 -05:00
rustc_serialize Update smallvec to 1.8.1. 2022-06-27 08:48:55 +10:00
rustc_session Rollup merge of #98657 - compiler-errors:rustc-const-eval-session-diagnostic-1, r=davidtwco 2022-07-08 18:25:50 +05:30
rustc_smir Rustfmt 2022-06-02 10:29:00 +00:00
rustc_span Auto merge of #98638 - bjorn3:less_string_interning, r=tmiasko 2022-07-08 10:03:27 +00:00
rustc_symbol_mangling Allow to create definitions inside the query system. 2022-07-06 22:50:55 +02:00
rustc_target rustc_target: Some more tests and fixes for linker arguments 2022-06-25 21:57:08 +03:00
rustc_trait_selection Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
rustc_traits Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_ty_utils Update TypeVisitor paths 2022-07-06 06:41:53 +01:00
rustc_type_ir Auto merge of #98614 - oli-obk:take_unsound_opaque_types, r=wesleywiser 2022-07-08 17:55:26 +00:00
rustc_typeck Rollup merge of #98533 - jyn514:drop-tracking-debugging, r=eholk 2022-07-08 18:25:48 +05:30