From 8d95c869747366f384df0776d03e6df79d760584 Mon Sep 17 00:00:00 2001 From: Michael Woerister Date: Tue, 6 Mar 2018 11:56:01 +0100 Subject: Make generics sharing the default for non-optimized builds. --- src/librustc/ty/context.rs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/librustc/ty/context.rs b/src/librustc/ty/context.rs index 8a58dad2924..3da653eb7ad 100644 --- a/src/librustc/ty/context.rs +++ b/src/librustc/ty/context.rs @@ -14,7 +14,7 @@ use dep_graph::DepGraph; use dep_graph::{DepNode, DepConstructor}; use errors::DiagnosticBuilder; use session::Session; -use session::config::{BorrowckMode, OutputFilenames}; +use session::config::{BorrowckMode, OutputFilenames, OptLevel}; use middle; use hir::{TraitCandidate, HirId, ItemLocalId}; use hir::def::{Def, Export}; @@ -1503,8 +1503,18 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { #[inline] pub fn share_generics(self) -> bool { match self.sess.opts.debugging_opts.share_generics { - Some(true) => true, - Some(false) | None => false, + Some(setting) => setting, + None => { + self.sess.opts.incremental.is_some() || + match self.sess.opts.optimize { + OptLevel::No | + OptLevel::Less | + OptLevel::Size | + OptLevel::SizeMin => true, + OptLevel::Default | + OptLevel::Aggressive => false, + } + } } } } -- cgit 1.4.1-3-g733a5