8000 Optimize slice and take in ArrayOps, WrappedArray · adriaanm/scala@d540bf0 · GitHub
[go: up one dir, main page]

Skip to content

Commit d540bf0

Browse files
mkeskellsadriaanm
authored andcommitted
Optimize slice and take in ArrayOps, WrappedArray
use Array block copy operations rather than builder/iterator
1 parent 4f9faff commit d540bf0

File tree

4 files changed

+450
-10
lines changed

4 files changed

+450
-10
lines changed

bincompat-backward.whitelist.conf

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,47 @@ filter {
223223
{
224224
matchName="scala.concurrent.impl.Promise.toString"
225225
problemName=MissingMethodProblem
226+
},
227+
// https://github.com/scala/scala/pull/5652
228+
{
229+
matchName="scala.collection.mutable.ArrayOps#ofChar.slice"
230+
problemName=FinalMethodProblem
231+
},
232+
{
233+
matchName="scala.collection.mutable.ArrayOps#ofShort.slice"
234+
problemName=FinalMethodProblem
235+
},
236+
{
237+
matchName="scala.collection.mutable.ArrayOps#ofUnit.slice"
238+
problemName=FinalMethodProblem
239+
},
240+
{
241+
matchName="scala.collection.mutable.ArrayOps#ofInt.slice"
242+
problemName=FinalMethodProblem
243+
},
244+
{
245+
matchName="scala.collection.mutable.ArrayOps#ofBoolean.slice"
246+
problemName=FinalMethodProblem
247+
},
248+
{
249+
matchName="scala.collection.mutable.ArrayOps#ofDouble.slice"
250+
problemName=FinalMethodProblem
251+
},
252+
{
253+
matchName="scala.collection.mutable.ArrayOps#ofRef.slice"
254+
problemName=FinalMethodProblem
255+
},
256+
{
257+
matchName="scala.collection.mutable.ArrayOps#ofByte.slice"
258+
problemName=FinalMethodProblem
259+
},
260+
{
261+
matchName="scala.collection.mutable.ArrayOps#ofLong.slice"
262+
problemName=FinalMethodProblem
263+
},
264+
{
265+
matchName="scala.collection.mutable.ArrayOps#ofFloat.slice"
266+
problemName=FinalMethodProblem
226267
}
227268
]
228269
}

bincompat-forward.whitelist.conf

Lines changed: 296 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -628,6 +628,302 @@ filter {
628628
{
629629
matchName="scala.reflect.api.SerializedTypeTag.serialVersionUID"
630630
problemName=MissingFieldProblem
631+
},
632+
{
633+
matchName="scala.collection.mutable.ArrayOps$ofChar"
634+
problemName=MissingTypesProblem
635+
},
636+
{
637+
matchName="scala.collection.mutable.ArrayOps#ofChar.sliceImpl"
638+
problemName=DirectMissingMethodProblem
639+
},
640+
{
641+
matchName="scala.collection.mutable.ArrayOps#ofChar.emptyImpl"
642+
problemName=DirectMissingMethodProblem
643+
},
644+
{
645+
matchName="scala.collection.mutable.ArrayOps$ofShort"
646+
problemName=MissingTypesProblem
647+
},
648+
{
649+
matchName="scala.collection.mutable.ArrayOps#ofShort.sliceImpl"
650+
problemName=DirectMissingMethodProblem
651+
},
652+
{
653+
matchName="scala.collection.mutable.ArrayOps#ofShort.emptyImpl"
654+
problemName=DirectMissingMethodProblem
655+
},
656+
{
657+
matchName="scala.collection.mutable.WrappedArray#ofByte.sliceImpl"
658+
problemName=DirectMissingMethodProblem
659+
},
660+
{
661+
matchName="scala.collection.mutable.WrappedArray#ofByte.emptyImpl"
662+
problemName=DirectMissingMethodProblem
663+
},
664+
{
665+
matchName="scala.collection.mutable.WrappedArray#ofBoolean.sliceImpl"
666+
problemName=DirectMissingMethodProblem
667+
},
668+
{
669+
matchName="scala.collection.mutable.WrappedArray#ofBoolean.emptyImpl"
670+
problemName=DirectMissingMethodProblem
671+
},
672+
{
673+
matchName="scala.collection.mutable.WrappedArray#ofChar.sliceImpl"
674+
problemName=DirectMissingMethodProblem
675+
},
676+
{
677+
matchName="scala.collection.mutable.WrappedArray#ofChar.emptyImpl"
678+
problemName=DirectMissingMethodProblem
679+
},
680+
{
681+
matchName="scala.collection.mutable.WrappedArray#ofDouble.sliceImpl"
682+
problemName=DirectMissingMethodProblem
683+
},
684+
{
685+
matchName="scala.collection.mutable.WrappedArray#ofDouble.emptyImpl"
686+
problemName=DirectMissingMethodProblem
687+
},
688+
{
689+
matchName="scala.collection.mutable.ArrayOps$ofUnit"
690+
problemName=MissingTypesProblem
691+
},
692+
{
693+
matchName="scala.collection.mutable.ArrayOps#ofUnit.sliceImpl"
694+
problemName=DirectMissingMethodProblem
695+
},
696+
{
697+
matchName="scala.collection.mutable.ArrayOps#ofUnit.emptyImpl"
698+
problemName=DirectMissingMethodProblem
699+
},
700+
{
701+
matchName="scala.collection.mutable.ArrayOps#ofInt.sliceImpl$extension"
702+
problemName=DirectMissingMethodProblem
703+
},
704+
{
705+
matchName="scala.collection.mutable.ArrayOps#ofInt.emptyImpl$extension"
706+
problemName=DirectMissingMethodProblem
707+
},
708+
{
709+
matchName="scala.collection.mutable.ArrayOps$ofInt"
710+
problemName=MissingTypesProblem
711+
},
712+
{
713+
matchName="scala.collection.mutable.ArrayOps#ofInt.sliceImpl"
714+
problemName=DirectMissingMethodProblem
715+
},
716+
{
717+
matchName="scala.collection.mutable.ArrayOps#ofInt.emptyImpl"
718+
problemName=DirectMissingMethodProblem
719+
},
720+
{
721+
matchName="scala.collection.mutable.ArrayOps#ofRef.sliceImpl$extension"
722+
problemName=DirectMissingMethodProblem
723+
},
724+
{
725+
matchName="scala.collection.mutable.ArrayOps#ofRef.emptyImpl$extension"
726+
problemName=DirectMissingMethodProblem
727+
},
728+
{
729+
matchName="scala.collection.mutable.ArrayOps#ofChar.sliceImpl$extension"
730+
problemName=DirectMissingMethodProblem
731+
},
732+
{
733+
matchName="scala.collection.mutable.ArrayOps#ofChar.emptyImpl$extension"
734+
problemName=DirectMissingMethodProblem
735+
},
736+
{
737+
matchName="scala.collection.mutable.ArrayOps#ofUnit.sliceImpl$extension"
738+
problemName=DirectMissingMethodProblem
739+
},
740+
{
741+
matchName="scala.collection.mutable.ArrayOps#ofUnit.emptyImpl$extension"
742+
problemName=DirectMissingMethodProblem
743+
},
744+
{
745+
matchName="scala.collection.mutable.ArrayOps$ofBoolean"
746+
problemName=MissingTypesProblem
747+
},
748+
{
749+
matchName="scala.collection.mutable.ArrayOps#ofBoolean.sliceImpl"
750+
problemName=DirectMissingMethodProblem
751+
},
752+
{
753+
matchName="scala.collection.mutable.ArrayOps#ofBoolean.emptyImpl"
754+
problemName=DirectMissingMethodProblem
755+
},
756+
{
757+
matchName="scala.collection.mutable.ArrayOps#ofShort.sliceImpl$extension"
758+
problemName=DirectMissingMethodProblem
759+
},
760+
{
761+
matchName="scala.collection.mutable.ArrayOps#ofShort.emptyImpl$extension"
762+
problemName=DirectMissingMethodProblem
763+
},
764+
{
765+
matchName="scala.collection.mutable.WrappedArray#ofShort.sliceImpl"
766+
problemName=DirectMissingMethodProblem
767+
},
768+
{
769+
matchName="scala.collection.mutable.WrappedArray#ofShort.emptyImpl"
770+
problemName=DirectMissingMethodProblem
771+
},
772+
{
773+
matchName="scala.collection.mutable.WrappedArray.sliceImpl"
774+
problemName=DirectMissingMethodProblem
775+
},
776+
{
777+
matchName="scala.collection.mutable.WrappedArray.emptyImpl"
778+
problemName=DirectMissingMethodProblem
779+
},
780+
{
781+
matchName="scala.collection.mutable.WrappedArray.slice"
782+
problemName=IncompatibleResultTypeProblem
783+
},
784+
{
785+
matchName="scala.collection.mutable.WrappedArray#ofRef.sliceImpl"
786+
problemName=DirectMissingMethodProblem
787+
},
788+
{
789+
matchName="scala.collection.mutable.WrappedArray#ofRef.emptyImpl"
790+
problemName=DirectMissingMethodProblem
791+
},
792+
{
793+
matchName="scala.collection.mutable.WrappedArray#ofUnit.sliceImpl"
794+
problemName=DirectMissingMethodProblem
795+
},
796+
{
797+
matchName="scala.collection.mutable.WrappedArray#ofUnit.emptyImpl"
798+
problemName=DirectMissingMethodProblem
799+
},
800+
{
801+
matchName="scala.collection.mutable.ArrayOps#ofByte.sliceImpl$extension"
802+
problemName=DirectMissingMethodProblem
803+
},
804+
{
805+
matchName="scala.collection.mutable.ArrayOps#ofByte.emptyImpl$extension"
806+
problemName=DirectMissingMethodProblem
807+
},
808+
{
809+
matchName="scala.collection.mutable.ArrayOps#ofDouble.sliceImpl$extension"
810+
problemName=DirectMissingMethodProblem
811+
},
812+
{
813+
matchName="scala.collection.mutable.ArrayOps#ofDouble.emptyImpl$extension"
814+
problemName=DirectMissingMethodProblem
815+
},
816+
{
817+
matchName="scala.collection.mutable.ArrayOpsImpl"
818+
problemName=MissingClassProblem
819+
},
820+
{
821+
matchName="scala.collection.mutable.WrappedArray#ofInt.sliceImpl"
822+
problemName=DirectMissingMethodProblem
823+
},
824+
{
825+
matchName="scala.collection.mutable.WrappedArray#ofInt.emptyImpl"
826+
problemName=DirectMissingMethodProblem
827+
},
828+
{
829+
matchName="scala.collection.mutable.ArrayOps$ofDouble"
830+
problemName=MissingTypesProblem
831+
},
832+
{
833+
matchName="scala.collection.mutable.ArrayOps#ofDouble.sliceImpl"
834+
problemName=DirectMissingMethodProblem
835+
},
836+
{
837+
matchName="scala.collection.mutable.ArrayOps#ofDouble.emptyImpl"
838+
problemName=DirectMissingMethodProblem
839+
},
840+
{
841+
matchName="scala.collection.mutable.ArrayOps$ofRef"
842+
problemName=MissingTypesProblem
843+
},
844+
{
845+
matchName="scala.collection.mutable.ArrayOps#ofRef.sliceImpl"
846+
problemName=DirectMissingMethodProblem
847+
},
848+
{
849+
matchName="scala.collection.mutable.ArrayOps#ofRef.emptyImpl"
850+
problemName=DirectMissingMethodProblem
851+
},
852+
{
853+
matchName="scala.collection.mutable.WrappedArray#ofLong.sliceImpl"
854+
problemName=DirectMissingMethodProblem
855+
},
856+
{
857+
matchName="scala.collection.mutable.WrappedArray#ofLong.emptyImpl"
858+
problemName=DirectMissingMethodProblem
859+
},
860+
{
861+
matchName="scala.collection.mutable.ArrayOps$ofByte"
862+
problemName=MissingTypesProblem
863+
},
864+
{
865+
matchName="scala.collection.mutable.ArrayOps#ofByte.sliceImpl"
866+
problemName=DirectMissingMethodProblem
867+
},
868+
{
869+
matchName="scala.collection.mutable.ArrayOps#ofByte.emptyImpl"
870+
problemName=DirectMissingMethodProblem
871+
},
872+
{
873+
matchName="scala.collection.mutable.ArrayOps#ofFloat.sliceImpl$extension"
874+
problemName=DirectMissingMethodProblem
875+
},
876+
{
877+
matchName="scala.collection.mutable.ArrayOps#ofFloat.emptyImpl$extension"
878+
problemName=DirectMissingMethodProblem
879+
},
880+
{
881+
matchName="scala.collection.mutable.ArrayOps#ofLong.sliceImpl$extension"
882+
problemName=DirectMissingMethodProblem
883+
},
884+
{
885+
matchName="scala.collection.mutable.ArrayOps#ofLong.emptyImpl$extension"
886+
problemName=DirectMissingMethodProblem
887+
},
888+
{
889+
matchName="scala.collection.mutable.ArrayOps#ofBoolean.sliceImpl$extension"
890+
problemName=DirectMissingMethodProblem
891+
},
892+
{
893+
matchName="scala.collection.mutable.ArrayOps#ofBoolean.emptyImpl$extension"
894+
problemName=DirectMissingMethodProblem
895+
},
896+
{
897+
matchName="scala.collection.mutable.WrappedArray#ofFloat.sliceImpl"
898+
problemName=DirectMissingMethodProblem
899+
},
900+
{
901+
matchName="scala.collection.mutable.WrappedArray#ofFloat.emptyImpl"
902+
problemName=DirectMissingMethodProblem
903+
},
904+
{
905+
matchName="scala.collection.mutable.ArrayOps$ofLong"
906+
problemName=MissingTypesProblem
907+
},
908+
{
909+
matchName="scala.collection.mutable.ArrayOps#ofLong.sliceImpl"
910+
problemName=DirectMissingMethodProblem
911+
},
912+
{
913+
matchName="scala.collection.mutable.ArrayOps#ofLong.emptyImpl"
914+
problemName=DirectMissingMethodProblem
915+
},
916+
{
917+
matchName="scala.collection.mutable.ArrayOps$ofFloat"
918+
problemName=MissingTypesProblem
919+
},
920+
{
921+
matchName="scala.collection.mutable.ArrayOps#ofFloat.sliceImpl"
922+
problemName=DirectMissingMethodProblem
923+
},
924+
{
925+
matchName="scala.collection.mutable.ArrayOps#ofFloat.emptyImpl"
926+
problemName=DirectMissingMethodProblem
631927
}
632928
]
633929
}

0 commit comments

Comments
 (0)
0