rust/compiler
Aaron Hill b15cb29a4a
Refactor variance diagnostics to work with more types
Instead of special-casing mutable pointers/references, we
now support general generic types (currently, we handle
`ty::Ref`, `ty::RawPtr`, and `ty::Adt`)

When a `ty::Adt` is involved, we show an additional note
explaining which of the type's generic parameters is
invariant (e.g. the `T` in `Cell<T>`). Currently, we don't
explain *why* a particular generic parameter ends up becoming
invariant. In the general case, this could require printing
a long 'backtrace' of types, so doing this would be
more suitable for a follow-up PR.

We still only handle the case where our variance switches
to `ty::Invariant`.
2021-12-29 18:53:40 -05:00
..
rustc Remove useless #[global_allocator] from rustc and rustdoc. 2021-12-23 17:23:21 +11:00
rustc_apfloat
rustc_arena
rustc_ast
rustc_ast_lowering Tighten span when suggesting lifetime on path 2021-12-27 23:34:52 -08:00
rustc_ast_passes
rustc_ast_pretty Rollup merge of #92372 - dtolnay:fntype, r=jackh726 2021-12-29 10:17:13 +01:00
rustc_attr
rustc_borrowck Refactor variance diagnostics to work with more types 2021-12-29 18:53:40 -05:00
rustc_builtin_macros rustc_builtin_macros: make asm mod public for rustfmt 2021-12-21 11:52:40 -06:00
rustc_codegen_cranelift
rustc_codegen_gcc
rustc_codegen_llvm
rustc_codegen_ssa Store a DefId instead of an AdtDef in AggregateKind::Adt 2021-12-22 14:36:34 -05:00
rustc_const_eval Auto merge of #91342 - RalfJung:fn-abi, r=eddyb,oli-obk 2021-12-24 04:59:05 +00:00
rustc_data_structures Auto merge of #92130 - Kobzol:stable-hash-str, r=cjgillot 2021-12-28 01:04:33 +00:00
rustc_driver Upgrade tracing-subscriber 2021-12-22 10:47:36 -06:00
rustc_error_codes docs(error-codes): Add long error explanation for E0227 2021-12-28 15:46:20 +03:00
rustc_errors
rustc_expand
rustc_feature
rustc_fs_util
rustc_graphviz
rustc_hir Remove PartialOrd and Ord from LocalDefId 2021-12-22 10:50:57 -06:00
rustc_hir_pretty Print space after formal generic params in fn type 2021-12-28 12:56:55 -08:00
rustc_incremental
rustc_index Require Ord for rustc_index::SparseBitSet::last_set_in 2021-12-22 10:50:57 -06:00
rustc_infer Refactor variance diagnostics to work with more types 2021-12-29 18:53:40 -05:00
rustc_interface
rustc_lexer
rustc_lint Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett 2021-12-21 08:33:39 +01:00
rustc_lint_defs Rollup merge of #91770 - TaKO8Ki:suggest-adding-cfg-test, r=joshtriplett 2021-12-21 08:33:39 +01:00
rustc_llvm
rustc_macros
rustc_metadata Auto merge of #92244 - petrochenkov:alltraits, r=cjgillot 2021-12-29 19:22:33 +00:00
rustc_middle Refactor variance diagnostics to work with more types 2021-12-29 18:53:40 -05:00
rustc_mir_build Store a DefId instead of an AdtDef in AggregateKind::Adt 2021-12-22 14:36:34 -05:00
rustc_mir_dataflow
rustc_mir_transform Auto merge of #91342 - RalfJung:fn-abi, r=eddyb,oli-obk 2021-12-24 04:59:05 +00:00
rustc_monomorphize
rustc_parse Parse and suggest moving where clauses after equals for type aliases 2021-12-28 14:20:15 -05:00
rustc_parse_format
rustc_passes
rustc_plugin_impl
rustc_privacy Rollup merge of #90586 - jswrenn:relax-privacy-lints, r=petrochenkov 2021-12-27 21:42:25 +01:00
rustc_query_impl
rustc_query_system
rustc_resolve Rollup merge of #92237 - compiler-errors:issue-92100, r=cjgillot 2021-12-29 10:17:10 +01:00
rustc_save_analysis
rustc_serialize
rustc_session
rustc_span Remove PartialOrd and Ord from LocalDefId 2021-12-22 10:50:57 -06:00
rustc_symbol_mangling
rustc_target
rustc_trait_selection Auto merge of #92244 - petrochenkov:alltraits, r=cjgillot 2021-12-29 19:22:33 +00:00
rustc_traits Auto merge of #92167 - pierwill:chalk-update, r=jackh726 2021-12-23 08:59:55 +00:00
rustc_ty_utils
rustc_type_ir
rustc_typeck rustc_metadata: Encode list of all crate's traits into metadata 2021-12-28 19:31:51 +08:00