rust/compiler
bors e599b53e67 Auto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk
Add fast path for match checking

This adds a fast path that would reduce the complexity to linear on matches consisting of only variant patterns (i.e. enum matches). (Also see: #7462) Unfortunately, I was too lazy to add a similar fast path for constants (mostly for integer matches), ideally that could be added another day.

TBH, I'm not confident with the performance claims due to the fact that enums tends to be small and FxHashMap could add a lot of overhead.

r? `@Mark-Simulacrum`

needs perf
2020-09-24 17:22:56 +00:00
..
rustc
rustc_apfloat
rustc_arena Rollup merge of #76821 - est31:remove_redundant_nightly_features, r=oli-obk,Mark-Simulacrum 2020-09-20 12:08:22 +02:00
rustc_ast Add #![feature(const_fn_transmute)] to rustc_ast 2020-09-22 10:22:21 -07:00
rustc_ast_lowering
rustc_ast_passes
rustc_ast_pretty
rustc_attr
rustc_builtin_macros
rustc_codegen_llvm Rollup merge of #76962 - est31:const_cstr, r=oli-obk 2020-09-21 10:40:45 +02:00
rustc_codegen_ssa Rollup merge of #76872 - khyperia:remove_declare_methods, r=eddyb 2020-09-21 10:40:35 +02:00
rustc_data_structures Move MiniSet to data_structures 2020-09-23 08:09:16 +02:00
rustc_driver
rustc_error_codes Add explanation for E0756 2020-09-21 21:04:56 +02:00
rustc_errors Rollup merge of #76846 - botika:master, r=davidtwco 2020-09-21 10:40:30 +02:00
rustc_expand
rustc_feature Add cfg(target_has_atomic_equal_alignment). 2020-09-21 20:42:25 +02:00
rustc_fs_util
rustc_graphviz
rustc_hir
rustc_hir_pretty
rustc_incremental
rustc_index cache types during normalization 2020-09-19 17:27:13 +02:00
rustc_infer Move MiniSet to data_structures 2020-09-23 08:09:16 +02:00
rustc_interface
rustc_lexer Fix typo in rustc_lexer docs 2020-09-21 05:43:39 +02:00
rustc_lint Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_llvm
rustc_macros
rustc_metadata Rollup merge of #76939 - lcnr:const-evaluatable-cont, r=oli-obk 2020-09-23 14:54:02 +02:00
rustc_middle Auto merge of #77006 - oli-obk:🐌_const_queries, r=Mark-Simulacrum 2020-09-24 15:12:17 +00:00
rustc_mir Auto merge of #76748 - tmiasko:no-op-jumps, r=matthewjasper 2020-09-24 05:57:06 +00:00
rustc_mir_build Auto merge of #76918 - ishitatsuyuki:match-fastpath, r=oli-obk 2020-09-24 17:22:56 +00:00
rustc_parse Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_parse_format Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC 2020-09-21 20:40:55 -07:00
rustc_passes transmute: use diagnostic item 2020-09-19 11:33:11 +02:00
rustc_plugin_impl
rustc_privacy Rollup merge of #76821 - est31:remove_redundant_nightly_features, r=oli-obk,Mark-Simulacrum 2020-09-20 12:08:22 +02:00
rustc_query_system
rustc_resolve Rollup merge of #76888 - matthiaskrgr:clippy_single_match_2, r=Dylan-DPC 2020-09-21 20:40:55 -07:00
rustc_save_analysis
rustc_serialize
rustc_session Don't unwrap but report a fatal error for TargetDataLayout::parse. 2020-09-21 20:43:44 +02:00
rustc_span Rollup merge of #76994 - yuk1ty:fix-small-typo, r=estebank 2020-09-23 14:54:07 +02:00
rustc_symbol_mangling use if let instead of single match arm expressions to compact code and reduce nesting (clippy::single_match) 2020-09-20 11:42:52 +02:00
rustc_target fix typo in docs and comments 2020-09-21 12:14:28 +09:00
rustc_trait_selection assign the correct DefId in nominal_obligations 2020-09-24 09:04:23 +02:00
rustc_traits
rustc_ty
rustc_typeck visit impl self ty + trait 2020-09-24 09:04:26 +02:00