diff options
author | Stefan Zeiger <szeiger@novocode.com> | 2016-08-12 18:24:46 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-08-12 18:24:46 +0200 |
commit | 18bdbc83e1ac9baafbf18940ad1b87e4122fc978 (patch) | |
tree | 095995a837f3ac92fd94d780aa0e9bb5171de7a5 /src | |
parent | 0d9587a563ff26852732e9bb751f601972fecddc (diff) | |
parent | 53d55bc821a11a886094008211d43f2ee9b4c638 (diff) | |
download | scala-18bdbc83e1ac9baafbf18940ad1b87e4122fc978.tar.gz scala-18bdbc83e1ac9baafbf18940ad1b87e4122fc978.tar.bz2 scala-18bdbc83e1ac9baafbf18940ad1b87e4122fc978.zip |
Merge pull request #5312 from szeiger/issue/8434-2
SI-8434 Make generic Set operations build the same kind of Set
Diffstat (limited to 'src')
-rw-r--r-- | src/library/scala/collection/generic/GenSetFactory.scala | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/library/scala/collection/generic/GenSetFactory.scala b/src/library/scala/collection/generic/GenSetFactory.scala index 800f66eb53..65404a4991 100644 --- a/src/library/scala/collection/generic/GenSetFactory.scala +++ b/src/library/scala/collection/generic/GenSetFactory.scala @@ -40,7 +40,11 @@ abstract class GenSetFactory[CC[X] <: GenSet[X] with GenSetLike[X, CC[X]]] /** $setCanBuildFromInfo */ def setCanBuildFrom[A] = new CanBuildFrom[CC[_], A, CC[A]] { - def apply(from: CC[_]) = newBuilder[A] + def apply(from: CC[_]) = from match { + // When building from an existing Set, try to preserve its type: + case from: Set[_] => from.genericBuilder.asInstanceOf[Builder[A, CC[A]]] + case _ => newBuilder[A] + } def apply() = newBuilder[A] } } |