aboutsummaryrefslogtreecommitdiff
path: root/compiler/test/dotc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/test/dotc')
-rw-r--r--compiler/test/dotc/scala-collections.blacklist83
-rw-r--r--compiler/test/dotc/scala-collections.whitelist350
-rw-r--r--compiler/test/dotc/tests.scala71
3 files changed, 487 insertions, 17 deletions
diff --git a/compiler/test/dotc/scala-collections.blacklist b/compiler/test/dotc/scala-collections.blacklist
new file mode 100644
index 000000000..321814ab0
--- /dev/null
+++ b/compiler/test/dotc/scala-collections.blacklist
@@ -0,0 +1,83 @@
+## Errors having to do with bootstrap
+
+../scala-scala/src/library/scala/Function1.scala
+../scala-scala/src/library/scala/Function2.scala
+# Cyclic reference because of @specialized annotation
+
+
+## Errors having to do with deep subtypes
+
+../scala-scala/src/library/scala/collection/generic/ParSetFactory.scala
+# This gives a deep subtype violation when run with the rest of the whitelist.
+# Works without -Yno-deep-subtypes, though.
+
+../scala-scala/src/library/scala/collection/parallel/mutable/ParMap.scala
+# -Yno-deep-subtypes fails
+
+../scala-scala/src/library/scala/collection/parallel/ParMap.scala
+# -Yno-deep-subtypes fails
+
+../scala-scala/src/library/scala/collection/parallel/ParMapLike.scala
+# -Yno-deep-subtypes fails
+
+
+
+## Ycheck failures, presumably linked to TailCalls
+
+../scala-scala/src/library/scala/collection/parallel/ParIterableLike.scala
+# -Ycheck:classOf fails
+
+../scala-scala/src/library/scala/collection/parallel/ParSeqLike.scala
+# -Ycheck:classOf fails
+
+../scala-scala/src/library/scala/util/control/TailCalls.scala
+# -Ycheck:classOf fails
+
+
+
+## Errors having to do with unavailable APIs or language features:
+
+../scala-scala/src/library/scala/reflect/ClassManifestDeprecatedApis.scala
+# 51 | import Manifest._
+# | ^^^^^^^^
+# | not found: Manifest
+
+../scala-scala/src/library/scala/reflect/ClassTag.scala
+# 124 | val Short : ClassTag[scala.Short] = Manifest.Short
+# | ^^^^^^^^
+# | not found: Manifest
+
+../scala-scala/src/library/scala/reflect/Manifest.scala
+# 104 | private def readResolve(): Any = Manifest.Short
+# | ^^^^^^^^
+# | not found: Manifest
+
+../scala-scala/src/library/scala/text/Document.scala
+# Lots of type errors for pattern matches, having to do with the fact
+# that Document contains a :: method without corresponding extractor,
+# but still wants to extract lists using ::. We won't support that.
+# Since Document should have been removed already, let's ignore it.
+
+../scala-scala/src/library/scala/AnyVal.scala
+# 55 |abstract class AnyVal extends Any {
+# |^
+# |illegal redefinition of standard class AnyVal
+# (This is intended)
+
+../scala-scala/src/library/scala/collection/parallel/Tasks.scala
+# java.lang.StackOverflowError
+
+../scala-scala/src/library/scala/reflect/package.scala
+# 63 | private[scala] def materializeClassTag[T](): ClassTag[T] = macro ???
+# | ^^^^^
+# | not found: macro
+
+../scala-scala/src/library/scala/StringContext.scala
+# 168 | def f[A >: Any](args: A*): String = macro ???
+# | ^^^^^
+# | not found: macro
+
+../scala-scala/src/library/scala/util/control/Exception.scala
+# 51 | implicit def throwableSubtypeToCatcher[Ex <: Throwable: ClassTag, T](pf: PartialFunction[Ex, T]) =
+# | ^
+# | cyclic reference involving method mkCatcher
diff --git a/compiler/test/dotc/scala-collections.whitelist b/compiler/test/dotc/scala-collections.whitelist
index bb62b260a..57c71d647 100644
--- a/compiler/test/dotc/scala-collections.whitelist
+++ b/compiler/test/dotc/scala-collections.whitelist
@@ -7,6 +7,8 @@
../scala-scala/src/library/scala/runtime/RichInt.scala
../scala-scala/src/library/scala/runtime/RichLong.scala
../scala-scala/src/library/scala/runtime/RichShort.scala
+../scala-scala/src/library/scala/runtime/Tuple2Zipped.scala
+../scala-scala/src/library/scala/runtime/Tuple3Zipped.scala
../scala-scala/src/library/scala/Array.scala
../scala-scala/src/library/scala/NotImplementedError.scala
../scala-scala/src/library/scala/AnyValCompanion.scala
@@ -62,6 +64,7 @@
../scala-scala/src/library/scala/Serializable.scala
../scala-scala/src/library/scala/Specializable.scala
../scala-scala/src/library/scala/Symbol.scala
+#../scala-scala/src/library/scala/StringContext.scala
../scala-scala/src/library/scala/UninitializedError.scala
../scala-scala/src/library/scala/UninitializedFieldError.scala
../scala-scala/src/library/scala/collection/IndexedSeqOptimized.scala
@@ -86,6 +89,14 @@
../scala-scala/src/library/scala/collection/mutable/BufferLike.scala
../scala-scala/src/library/scala/collection/mutable/ArrayBuilder.scala
+../scala-scala/src/library/scala/collection/mutable/ObservableBuffer.scala
+../scala-scala/src/library/scala/collection/mutable/DefaultEntry.scala
+../scala-scala/src/library/scala/collection/mutable/LinkedHashMap.scala
+../scala-scala/src/library/scala/collection/mutable/ObservableMap.scala
+../scala-scala/src/library/scala/collection/mutable/ObservableSet.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedQueue.scala
+../scala-scala/src/library/scala/collection/mutable/UnrolledBuffer.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedBuffer.scala
../scala-scala/src/library/scala/collection/immutable/Stack.scala
../scala-scala/src/library/scala/collection/immutable/StringLike.scala
@@ -264,10 +275,9 @@
../scala-scala/src/library/scala/collection/generic/SetFactory.scala
../scala-scala/src/library/scala/collection/generic/ParFactory.scala
-# https://github.com/lampepfl/dotty/issues/974 -> @smarter
../scala-scala/src/library/scala/collection/generic/MutableSortedSetFactory.scala
-# cyclic reference, maybe related to #974 -> @smarter
+# deep subtype
#../scala-scala/src/library/scala/collection/generic/ParSetFactory.scala
../scala-scala/src/library/scala/collection/generic/OrderedTraversableFactory.scala
@@ -280,3 +290,339 @@
../scala-scala/src/library/scala/collection/generic/Subtractable.scala
../scala-scala/src/library/scala/collection/generic/TraversableFactory.scala
../scala-scala/src/library/scala/collection/generic/package.scala
+
+../scala-scala/src/library/scala/util/Try.scala
+
+#../scala-scala/src/library/scala/util/control/Exception.scala
+../scala-scala/src/library/scala/util/control/Breaks.scala
+../scala-scala/src/library/scala/util/control/ControlThrowable.scala
+../scala-scala/src/library/scala/util/control/NonFatal.scala
+../scala-scala/src/library/scala/util/control/NoStackTrace.scala
+../scala-scala/src/library/scala/util/DynamicVariable.scala
+../scala-scala/src/library/scala/util/Either.scala
+../scala-scala/src/library/scala/util/hashing/Hashing.scala
+../scala-scala/src/library/scala/util/hashing/ByteswapHashing.scala
+../scala-scala/src/library/scala/util/hashing/MurmurHash3.scala
+../scala-scala/src/library/scala/util/hashing/package.scala
+../scala-scala/src/library/scala/util/matching/Regex.scala
+../scala-scala/src/library/scala/util/MurmurHash.scala
+../scala-scala/src/library/scala/util/Properties.scala
+../scala-scala/src/library/scala/util/Random.scala
+../scala-scala/src/library/scala/util/Sorting.scala
+
+../scala-scala/src/library/scala/collection/mutable/AnyRefMap.scala
+../scala-scala/src/library/scala/collection/mutable/ArrayBuffer.scala
+../scala-scala/src/library/scala/collection/mutable/ArrayLike.scala
+../scala-scala/src/library/scala/collection/mutable/ArrayOps.scala
+../scala-scala/src/library/scala/collection/mutable/ArraySeq.scala
+../scala-scala/src/library/scala/collection/mutable/ArrayStack.scala
+../scala-scala/src/library/scala/collection/mutable/AVLTree.scala
+../scala-scala/src/library/scala/collection/mutable/BitSet.scala
+../scala-scala/src/library/scala/collection/mutable/Buffer.scala
+../scala-scala/src/library/scala/collection/mutable/BufferProxy.scala
+../scala-scala/src/library/scala/collection/mutable/Cloneable.scala
+../scala-scala/src/library/scala/collection/mutable/DefaultMapModel.scala
+../scala-scala/src/library/scala/collection/mutable/DoubleLinkedList.scala
+../scala-scala/src/library/scala/collection/mutable/DoubleLinkedListLike.scala
+../scala-scala/src/library/scala/collection/mutable/FlatHashTable.scala
+../scala-scala/src/library/scala/collection/mutable/HashEntry.scala
+../scala-scala/src/library/scala/collection/mutable/HashMap.scala
+../scala-scala/src/library/scala/collection/mutable/HashSet.scala
+../scala-scala/src/library/scala/collection/mutable/HashTable.scala
+../scala-scala/src/library/scala/collection/mutable/History.scala
+../scala-scala/src/library/scala/collection/mutable/ImmutableSetAdaptor.scala
+../scala-scala/src/library/scala/collection/mutable/IndexedSeqLike.scala
+../scala-scala/src/library/scala/collection/mutable/IndexedSeqOptimized.scala
+../scala-scala/src/library/scala/collection/mutable/Iterable.scala
+../scala-scala/src/library/scala/collection/mutable/LazyBuilder.scala
+../scala-scala/src/library/scala/collection/mutable/LinearSeq.scala
+../scala-scala/src/library/scala/collection/mutable/LinkedEntry.scala
+../scala-scala/src/library/scala/collection/mutable/LinkedHashSet.scala
+../scala-scala/src/library/scala/collection/mutable/LinkedList.scala
+../scala-scala/src/library/scala/collection/mutable/LinkedListLike.scala
+../scala-scala/src/library/scala/collection/mutable/ListMap.scala
+../scala-scala/src/library/scala/collection/mutable/LongMap.scala
+../scala-scala/src/library/scala/collection/mutable/Map.scala
+../scala-scala/src/library/scala/collection/mutable/MapBuilder.scala
+../scala-scala/src/library/scala/collection/mutable/MapLike.scala
+../scala-scala/src/library/scala/collection/mutable/MapProxy.scala
+../scala-scala/src/library/scala/collection/mutable/MultiMap.scala
+../scala-scala/src/library/scala/collection/mutable/MutableList.scala
+../scala-scala/src/library/scala/collection/mutable/OpenHashMap.scala
+../scala-scala/src/library/scala/collection/mutable/PriorityQueue.scala
+../scala-scala/src/library/scala/collection/mutable/PriorityQueueProxy.scala
+../scala-scala/src/library/scala/collection/mutable/Publisher.scala
+../scala-scala/src/library/scala/collection/mutable/Queue.scala
+../scala-scala/src/library/scala/collection/mutable/QueueProxy.scala
+../scala-scala/src/library/scala/collection/mutable/ResizableArray.scala
+../scala-scala/src/library/scala/collection/mutable/RevertibleHistory.scala
+../scala-scala/src/library/scala/collection/mutable/Seq.scala
+../scala-scala/src/library/scala/collection/mutable/SeqLike.scala
+../scala-scala/src/library/scala/collection/mutable/Set.scala
+../scala-scala/src/library/scala/collection/mutable/SetBuilder.scala
+../scala-scala/src/library/scala/collection/mutable/SetLike.scala
+../scala-scala/src/library/scala/collection/mutable/SetProxy.scala
+../scala-scala/src/library/scala/collection/mutable/SortedSet.scala
+../scala-scala/src/library/scala/collection/mutable/Stack.scala
+../scala-scala/src/library/scala/collection/mutable/StackProxy.scala
+../scala-scala/src/library/scala/collection/mutable/StringBuilder.scala
+../scala-scala/src/library/scala/collection/mutable/Subscriber.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedMap.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedPriorityQueue.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedSet.scala
+../scala-scala/src/library/scala/collection/mutable/SynchronizedStack.scala
+../scala-scala/src/library/scala/collection/mutable/Traversable.scala
+../scala-scala/src/library/scala/collection/mutable/TreeSet.scala
+../scala-scala/src/library/scala/collection/mutable/Undoable.scala
+../scala-scala/src/library/scala/collection/mutable/WeakHashMap.scala
+../scala-scala/src/library/scala/collection/mutable/ImmutableMapAdaptor.scala
+
+../scala-scala/src/library/scala/collection/convert/DecorateAsJava.scala
+../scala-scala/src/library/scala/collection/convert/DecorateAsScala.scala
+../scala-scala/src/library/scala/collection/convert/Decorators.scala
+../scala-scala/src/library/scala/collection/convert/package.scala
+../scala-scala/src/library/scala/collection/convert/WrapAsJava.scala
+../scala-scala/src/library/scala/collection/convert/WrapAsScala.scala
+../scala-scala/src/library/scala/collection/convert/Wrappers.scala
+
+../scala-scala/src/library/scala/collection/concurrent/Map.scala
+../scala-scala/src/library/scala/collection/concurrent/TrieMap.scala
+
+../scala-scala/src/library/scala/collection/parallel/immutable/package.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParHashMap.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParHashSet.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParIterable.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParMap.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParRange.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParSeq.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParSet.scala
+../scala-scala/src/library/scala/collection/parallel/immutable/ParVector.scala
+
+../scala-scala/src/library/scala/compat/Platform.scala
+
+../scala-scala/src/library/scala/sys/package.scala
+../scala-scala/src/library/scala/sys/SystemProperties.scala
+../scala-scala/src/library/scala/sys/Prop.scala
+../scala-scala/src/library/scala/sys/PropImpl.scala
+../scala-scala/src/library/scala/sys/BooleanProp.scala
+../scala-scala/src/library/scala/sys/ShutdownHookThread.scala
+../scala-scala/src/library/scala/sys/process/BasicIO.scala
+../scala-scala/src/library/scala/sys/process/package.scala
+../scala-scala/src/library/scala/sys/process/Process.scala
+../scala-scala/src/library/scala/sys/process/ProcessBuilder.scala
+../scala-scala/src/library/scala/sys/process/ProcessBuilderImpl.scala
+../scala-scala/src/library/scala/sys/process/ProcessImpl.scala
+../scala-scala/src/library/scala/sys/process/ProcessIO.scala
+../scala-scala/src/library/scala/sys/process/ProcessLogger.scala
+
+../scala-scala/src/library/scala/beans/BeanDescription.scala
+../scala-scala/src/library/scala/beans/BeanDisplayName.scala
+../scala-scala/src/library/scala/beans/BeanInfo.scala
+../scala-scala/src/library/scala/beans/BeanInfoSkip.scala
+../scala-scala/src/library/scala/beans/BeanProperty.scala
+../scala-scala/src/library/scala/beans/BooleanBeanProperty.scala
+../scala-scala/src/library/scala/beans/ScalaBeanInfo.scala
+
+../scala-scala/src/library/scala/io/AnsiColor.scala
+../scala-scala/src/library/scala/io/Codec.scala
+../scala-scala/src/library/scala/io/Position.scala
+../scala-scala/src/library/scala/io/StdIn.scala
+../scala-scala/src/library/scala/io/BufferedSource.scala
+../scala-scala/src/library/scala/io/Source.scala
+
+../scala-scala/src/library/scala/math/BigDecimal.scala
+../scala-scala/src/library/scala/math/BigInt.scala
+../scala-scala/src/library/scala/math/PartiallyOrdered.scala
+
+../scala-scala/src/library/scala/ref/PhantomReference.scala
+../scala-scala/src/library/scala/ref/Reference.scala
+../scala-scala/src/library/scala/ref/ReferenceQueue.scala
+../scala-scala/src/library/scala/ref/ReferenceWrapper.scala
+../scala-scala/src/library/scala/ref/SoftReference.scala
+../scala-scala/src/library/scala/ref/WeakReference.scala
+
+../scala-scala/src/library/scala/reflect/macros/internal/macroImpl.scala
+../scala-scala/src/library/scala/reflect/NoManifest.scala
+../scala-scala/src/library/scala/reflect/OptManifest.scala
+../scala-scala/src/library/scala/reflect/NameTransformer.scala
+#../scala-scala/src/library/scala/reflect/package.scala
+
+../scala-scala/src/library/scala/Responder.scala
+
+../scala-scala/src/library/scala/collection/script/Location.scala
+../scala-scala/src/library/scala/collection/script/Message.scala
+../scala-scala/src/library/scala/collection/script/Scriptable.scala
+
+../scala-scala/src/library/scala/concurrent/package.scala
+../scala-scala/src/library/scala/concurrent/Future.scala
+../scala-scala/src/library/scala/concurrent/Awaitable.scala
+../scala-scala/src/library/scala/concurrent/BatchingExecutor.scala
+../scala-scala/src/library/scala/concurrent/BlockContext.scala
+../scala-scala/src/library/scala/concurrent/Channel.scala
+../scala-scala/src/library/scala/concurrent/DelayedLazyVal.scala
+../scala-scala/src/library/scala/concurrent/duration/Deadline.scala
+../scala-scala/src/library/scala/concurrent/duration/Duration.scala
+../scala-scala/src/library/scala/concurrent/duration/DurationConversions.scala
+../scala-scala/src/library/scala/concurrent/duration/package.scala
+../scala-scala/src/library/scala/concurrent/ExecutionContext.scala
+../scala-scala/src/library/scala/concurrent/FutureTaskRunner.scala
+../scala-scala/src/library/scala/concurrent/impl/Future.scala
+../scala-scala/src/library/scala/concurrent/impl/Promise.scala
+../scala-scala/src/library/scala/concurrent/JavaConversions.scala
+../scala-scala/src/library/scala/concurrent/Lock.scala
+../scala-scala/src/library/scala/concurrent/ManagedBlocker.scala
+../scala-scala/src/library/scala/concurrent/Promise.scala
+../scala-scala/src/library/scala/concurrent/SyncVar.scala
+../scala-scala/src/library/scala/concurrent/TaskRunner.scala
+../scala-scala/src/library/scala/concurrent/ThreadPoolRunner.scala
+../scala-scala/src/library/scala/concurrent/SyncChannel.scala
+../scala-scala/src/library/scala/concurrent/impl/ExecutionContextImpl.scala
+
+../scala-scala/src/library/scala/collection/parallel/package.scala
+../scala-scala/src/library/scala/collection/parallel/ParIterable.scala
+#../scala-scala/src/library/scala/collection/parallel/ParMap.scala
+#../scala-scala/src/library/scala/collection/parallel/ParMapLike.scala
+#../scala-scala/src/library/scala/collection/parallel/ParIterableLike.scala
+#../scala-scala/src/library/scala/collection/parallel/ParSeqLike.scala
+../scala-scala/src/library/scala/collection/parallel/Combiner.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/LazyCombiner.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ResizableParArrayCombiner.scala
+../scala-scala/src/library/scala/collection/parallel/RemainsIterator.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/package.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParFlatHashTable.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParHashMap.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParHashSet.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParHashTable.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParIterable.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParMapLike.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParSeq.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParSet.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParSetLike.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParTrieMap.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/UnrolledParArrayCombiner.scala
+../scala-scala/src/library/scala/collection/parallel/mutable/ParArray.scala
+#../scala-scala/src/library/scala/collection/parallel/mutable/ParMap.scala
+../scala-scala/src/library/scala/collection/parallel/ParSeq.scala
+../scala-scala/src/library/scala/collection/parallel/ParSet.scala
+../scala-scala/src/library/scala/collection/parallel/ParSetLike.scala
+../scala-scala/src/library/scala/collection/parallel/PreciseSplitter.scala
+../scala-scala/src/library/scala/collection/parallel/Splitter.scala
+../scala-scala/src/library/scala/collection/parallel/TaskSupport.scala
+#../scala-scala/src/library/scala/collection/parallel/Tasks.scala
+
+../scala-scala/src/library/scala/Console.scala
+../scala-scala/src/library/scala/Enumeration.scala
+
+../scala-scala/src/library/scala/annotation/Annotation.scala
+../scala-scala/src/library/scala/annotation/bridge.scala
+../scala-scala/src/library/scala/annotation/ClassfileAnnotation.scala
+../scala-scala/src/library/scala/annotation/compileTimeOnly.scala
+../scala-scala/src/library/scala/annotation/elidable.scala
+../scala-scala/src/library/scala/annotation/implicitNotFound.scala
+../scala-scala/src/library/scala/annotation/meta/beanGetter.scala
+../scala-scala/src/library/scala/annotation/meta/beanSetter.scala
+../scala-scala/src/library/scala/annotation/meta/companionClass.scala
+../scala-scala/src/library/scala/annotation/meta/companionMethod.scala
+../scala-scala/src/library/scala/annotation/meta/companionObject.scala
+../scala-scala/src/library/scala/annotation/meta/field.scala
+../scala-scala/src/library/scala/annotation/meta/getter.scala
+../scala-scala/src/library/scala/annotation/meta/languageFeature.scala
+../scala-scala/src/library/scala/annotation/meta/package.scala
+../scala-scala/src/library/scala/annotation/meta/param.scala
+../scala-scala/src/library/scala/annotation/meta/setter.scala
+../scala-scala/src/library/scala/annotation/migration.scala
+../scala-scala/src/library/scala/annotation/StaticAnnotation.scala
+../scala-scala/src/library/scala/annotation/strictfp.scala
+../scala-scala/src/library/scala/annotation/switch.scala
+../scala-scala/src/library/scala/annotation/tailrec.scala
+../scala-scala/src/library/scala/annotation/TypeConstraint.scala
+../scala-scala/src/library/scala/annotation/unchecked/uncheckedStable.scala
+../scala-scala/src/library/scala/annotation/unchecked/uncheckedVariance.scala
+../scala-scala/src/library/scala/annotation/unspecialized.scala
+../scala-scala/src/library/scala/annotation/varargs.scala
+
+../scala-scala/src/library/scala/runtime/AbstractFunction0.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction1.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction10.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction11.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction12.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction13.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction14.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction15.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction16.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction17.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction18.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction19.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction2.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction20.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction21.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction22.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction3.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction4.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction5.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction6.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction7.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction8.scala
+../scala-scala/src/library/scala/runtime/AbstractFunction9.scala
+../scala-scala/src/library/scala/runtime/AbstractPartialFunction.scala
+../scala-scala/src/library/scala/runtime/Boxed.scala
+../scala-scala/src/library/scala/runtime/MethodCache.scala
+../scala-scala/src/library/scala/runtime/NonLocalReturnControl.scala
+../scala-scala/src/library/scala/runtime/Nothing$.scala
+../scala-scala/src/library/scala/runtime/Null$.scala
+../scala-scala/src/library/scala/runtime/package.scala
+../scala-scala/src/library/scala/runtime/ScalaNumberProxy.scala
+../scala-scala/src/library/scala/runtime/ScalaRunTime.scala
+../scala-scala/src/library/scala/runtime/SeqCharSequence.scala
+../scala-scala/src/library/scala/runtime/StringAdd.scala
+../scala-scala/src/library/scala/runtime/StringFormat.scala
+
+../scala-scala/src/library/scala/App.scala
+
+../scala-scala/src/library/scala/Function.scala
+../scala-scala/src/library/scala/Function0.scala
+#../scala-scala/src/library/scala/Function1.scala
+#../scala-scala/src/library/scala/Function2.scala
+../scala-scala/src/library/scala/Function3.scala
+../scala-scala/src/library/scala/Function4.scala
+../scala-scala/src/library/scala/Function5.scala
+../scala-scala/src/library/scala/Function6.scala
+../scala-scala/src/library/scala/Function7.scala
+../scala-scala/src/library/scala/Function8.scala
+../scala-scala/src/library/scala/Function9.scala
+../scala-scala/src/library/scala/Function10.scala
+../scala-scala/src/library/scala/Function11.scala
+../scala-scala/src/library/scala/Function12.scala
+../scala-scala/src/library/scala/Function13.scala
+../scala-scala/src/library/scala/Function14.scala
+../scala-scala/src/library/scala/Function15.scala
+../scala-scala/src/library/scala/Function16.scala
+../scala-scala/src/library/scala/Function17.scala
+../scala-scala/src/library/scala/Function18.scala
+../scala-scala/src/library/scala/Function19.scala
+../scala-scala/src/library/scala/Function20.scala
+../scala-scala/src/library/scala/Function21.scala
+../scala-scala/src/library/scala/Function22.scala
+
+../scala-scala/src/library/scala/Tuple1.scala
+../scala-scala/src/library/scala/Tuple2.scala
+../scala-scala/src/library/scala/Tuple3.scala
+../scala-scala/src/library/scala/Tuple4.scala
+../scala-scala/src/library/scala/Tuple5.scala
+../scala-scala/src/library/scala/Tuple6.scala
+../scala-scala/src/library/scala/Tuple7.scala
+../scala-scala/src/library/scala/Tuple8.scala
+../scala-scala/src/library/scala/Tuple9.scala
+../scala-scala/src/library/scala/Tuple10.scala
+../scala-scala/src/library/scala/Tuple11.scala
+../scala-scala/src/library/scala/Tuple12.scala
+../scala-scala/src/library/scala/Tuple13.scala
+../scala-scala/src/library/scala/Tuple14.scala
+../scala-scala/src/library/scala/Tuple15.scala
+../scala-scala/src/library/scala/Tuple16.scala
+../scala-scala/src/library/scala/Tuple17.scala
+../scala-scala/src/library/scala/Tuple18.scala
+../scala-scala/src/library/scala/Tuple19.scala
+../scala-scala/src/library/scala/Tuple20.scala
+../scala-scala/src/library/scala/Tuple21.scala
+../scala-scala/src/library/scala/Tuple22.scala
diff --git a/compiler/test/dotc/tests.scala b/compiler/test/dotc/tests.scala
index b389c6ae9..a7961d937 100644
--- a/compiler/test/dotc/tests.scala
+++ b/compiler/test/dotc/tests.scala
@@ -3,6 +3,7 @@ package dotc
import dotty.Jars
import dotty.tools.dotc.CompilerTest
import org.junit.{Before, Test}
+import org.junit.Assert._
import java.io.{ File => JFile }
import scala.reflect.io.Directory
@@ -84,6 +85,7 @@ class tests extends CompilerTest {
val runDir = testsDir + "run/"
val newDir = testsDir + "new/"
val replDir = testsDir + "repl/"
+ val javaDir = testsDir + "pos-java-interop/"
val sourceDir = "./src/"
val dottyDir = sourceDir + "dotty/"
@@ -96,6 +98,9 @@ class tests extends CompilerTest {
val typerDir = dotcDir + "typer/"
val libDir = "../library/src/"
+ def dottyBootedLib = compileDir(libDir, ".", List("-deep", "-Ycheck-reentrant", "-strict") ::: defaultOptions)(allowDeepSubtypes) // note the -deep argument
+ def dottyDependsOnBootedLib = compileDir(dottyDir, ".", List("-deep", "-Ycheck-reentrant", "-strict") ::: defaultOptions)(allowDeepSubtypes) // note the -deep argument
+
@Before def cleanup(): Unit = {
// remove class files from stdlib and tests compilation
Directory(defaultOutputDir + "scala").deleteRecursively()
@@ -196,12 +201,49 @@ class tests extends CompilerTest {
@Test def run_all = runFiles(runDir)
- val stdlibFiles = Source.fromFile("./test/dotc/scala-collections.whitelist", "UTF8").getLines()
- .map(_.trim) // allow identation
- .filter(!_.startsWith("#")) // allow comment lines prefixed by #
- .map(_.takeWhile(_ != '#').trim) // allow comments in the end of line
- .filter(_.nonEmpty)
- .toList
+ def loadList(path: String) = Source.fromFile(path, "UTF8").getLines()
+ .map(_.trim) // allow identation
+ .filter(!_.startsWith("#")) // allow comment lines prefixed by #
+ .map(_.takeWhile(_ != '#').trim) // allow comments in the end of line
+ .filter(_.nonEmpty)
+ .toList
+
+ private def stdlibWhitelistFile = "./test/dotc/scala-collections.whitelist"
+ private def stdlibBlackFile = "./test/dotc/scala-collections.blacklist"
+
+ private val stdlibFiles: List[String] = loadList(stdlibWhitelistFile)
+
+ @Test def checkWBLists = {
+ val stdlibFilesBlackListed = loadList(stdlibBlackFile)
+
+ def checkForRepeated(list: List[String], listFile: String) = {
+ val duplicates = list.groupBy(x => x).filter(_._2.size > 1).filter(_._2.size > 1)
+ val msg = duplicates.map(x => s"'${x._1}' appears ${x._2.size} times").mkString(s"Duplicate entries in $listFile:\n", "\n", "\n")
+ assertTrue(msg, duplicates.isEmpty)
+ }
+ checkForRepeated(stdlibFiles, stdlibWhitelistFile)
+ checkForRepeated(stdlibFilesBlackListed, stdlibBlackFile)
+
+ val whitelistSet = stdlibFiles.toSet
+ val blacklistSet = stdlibFilesBlackListed.toSet
+
+ val intersection = whitelistSet.intersect(blacklistSet)
+ val msgIntersection =
+ intersection.map(x => s"'$x'").mkString(s"Entries where found in both $stdlibWhitelistFile and $stdlibBlackFile:\n", "\n", "\n")
+ assertTrue(msgIntersection, intersection.isEmpty)
+
+ def collectAllFilesInDir(dir: JFile, acc: List[String]): List[String] = {
+ val files = dir.listFiles()
+ val acc2 = files.foldLeft(acc)((acc1, file) => if (file.isFile && file.getPath.endsWith(".scala")) file.getPath :: acc1 else acc1)
+ files.foldLeft(acc2)((acc3, file) => if (file.isDirectory) collectAllFilesInDir(file, acc3) else acc3)
+ }
+ val filesInStdLib = collectAllFilesInDir(new JFile("../scala-scala/src/library/"), Nil)
+ val missingFiles = filesInStdLib.toSet -- whitelistSet -- blacklistSet
+ val msgMissing =
+ missingFiles.map(x => s"'$x'").mkString(s"Entries are missing in $stdlibWhitelistFile or $stdlibBlackFile:\n", "\n", "\n")
+ assertTrue(msgMissing, missingFiles.isEmpty)
+ }
+
@Test def compileStdLib = compileList("compileStdLib", stdlibFiles, "-migration" :: "-Yno-inline" :: scala2mode)
@Test def compileMixed = compileLine(
@@ -214,11 +256,10 @@ class tests extends CompilerTest {
|../scala-scala/src/library/scala/collection/generic/GenSeqFactory.scala""".stripMargin)
@Test def compileIndexedSeq = compileLine("../scala-scala/src/library/scala/collection/immutable/IndexedSeq.scala")
- // Not a junit test anymore since it is order dependent
- def dottyBootedLib = compileDir(libDir, ".")(allowDeepSubtypes) // note the -deep argument
-
- // Not a junit test anymore since it is order dependent
- def dottyDependsOnBootedLib = compileDir(dottyDir, ".")(allowDeepSubtypes) // note the -deep argument
+ @Test def dotty = {
+ dottyBootedLib
+ dottyDependsOnBootedLib
+ }
@Test def dotc_ast = compileDir(dotcDir, "ast")
@Test def dotc_config = compileDir(dotcDir, "config")
@@ -238,7 +279,7 @@ class tests extends CompilerTest {
@Test def dotc_typer = compileDir(dotcDir, "typer")// twice omitted to make tests run faster
// error: error while loading Checking$$anon$2$,
- // class file 'target/scala-2.11/dotty_2.11-0.1-SNAPSHOT.jar(dotty/tools/dotc/typer/Checking$$anon$2.class)'
+ // class file 'target/scala-2.11/dotty_2.11-0.1.1-SNAPSHOT.jar(dotty/tools/dotc/typer/Checking$$anon$2.class)'
// has location not matching its contents: contains class $anon
@Test def dotc_util = compileDir(dotcDir, "util") // twice omitted to make tests run faster
@@ -260,7 +301,6 @@ class tests extends CompilerTest {
dotcDir + "config/PathResolver.scala"
), List(/* "-Ylog:frontend", */ "-Xprompt") ++ staleSymbolError ++ twice)
- val javaDir = "./tests/pos-java-interop/"
@Test def java_all = compileFiles(javaDir, twice)
//@Test def dotc_compilercommand = compileFile(dotcDir + "config/", "CompilerCommand")
@@ -349,9 +389,10 @@ class tests extends CompilerTest {
@Test def tasty_tests = compileDir(testsDir, "tasty", testPickling)
@Test def tasty_bootstrap = {
- val opt = List("-priorityclasspath", defaultOutputDir, "-Ylog-classpath")
+ val logging = if (false) List("-Ylog-classpath", "-verbose") else Nil
+ val opt = List("-priorityclasspath", defaultOutputDir) ++ logging
// first compile dotty
- compileDir(dottyDir, ".", List("-deep", "-Ycheck-reentrant", "-strict"))(allowDeepSubtypes)
+ compileDir(dottyDir, ".", List("-deep", "-Ycheck-reentrant", "-strict") ++ logging)(allowDeepSubtypes)
compileDir(libDir, "dotty", "-deep" :: opt)
compileDir(libDir, "scala", "-deep" :: opt)