diff --git a/compiler/src/dotty/tools/dotc/ast/Desugar.scala b/compiler/src/dotty/tools/dotc/ast/Desugar.scala index b266166745de..3c5292fc8840 100644 --- a/compiler/src/dotty/tools/dotc/ast/Desugar.scala +++ b/compiler/src/dotty/tools/dotc/ast/Desugar.scala @@ -211,6 +211,19 @@ object desugar { case _ => rhs } + + def dropContextBounds(tparam: TypeDef): TypeDef = { + def dropInRhs(rhs: Tree): Tree = rhs match { + case ContextBounds(tbounds, _) => + tbounds + case rhs @ LambdaTypeTree(tparams, body) => + cpy.LambdaTypeTree(rhs)(tparams, dropInRhs(body)) + case _ => + rhs + } + cpy.TypeDef(tparam)(rhs = dropInRhs(tparam.rhs)) + } + val tparams1 = tparams mapConserve { tparam => cpy.TypeDef(tparam)(rhs = desugarContextBounds(tparam.rhs)) } @@ -239,17 +252,12 @@ object desugar { def normalizedVparamss = meth1.vparamss map (_ map (vparam => cpy.ValDef(vparam)(rhs = EmptyTree))) - def dropContextBound(tparam: TypeDef) = tparam.rhs match { - case ContextBounds(tbounds, _) => cpy.TypeDef(tparam)(rhs = tbounds) - case _ => tparam - } - def defaultGetters(vparamss: List[List[ValDef]], n: Int): List[DefDef] = vparamss match { case (vparam :: vparams) :: vparamss1 => def defaultGetter: DefDef = DefDef( name = DefaultGetterName(methName, n), - tparams = meth.tparams.map(tparam => dropContextBound(toDefParam(tparam))), + tparams = meth.tparams.map(tparam => dropContextBounds(toDefParam(tparam))), vparamss = takeUpTo(normalizedVparamss.nestedMap(toDefParam), n), tpt = TypeTree(), rhs = vparam.rhs diff --git a/tests/pending/fuzzy/0f12f42d878dcd4cb8b8ab62dbfb6b41861989b1.scala b/tests/fuzzy/0f12f42d878dcd4cb8b8ab62dbfb6b41861989b1.scala similarity index 100% rename from tests/pending/fuzzy/0f12f42d878dcd4cb8b8ab62dbfb6b41861989b1.scala rename to tests/fuzzy/0f12f42d878dcd4cb8b8ab62dbfb6b41861989b1.scala diff --git a/tests/pending/fuzzy/9baccf94095f1bd680e9bb75cc552d0784b8b9c2.scala b/tests/fuzzy/9baccf94095f1bd680e9bb75cc552d0784b8b9c2.scala similarity index 100% rename from tests/pending/fuzzy/9baccf94095f1bd680e9bb75cc552d0784b8b9c2.scala rename to tests/fuzzy/9baccf94095f1bd680e9bb75cc552d0784b8b9c2.scala diff --git a/tests/pending/fuzzy/AE-0226ee1e434532ec3de3137beba3853f20d0989c.scala b/tests/fuzzy/AE-0226ee1e434532ec3de3137beba3853f20d0989c.scala similarity index 100% rename from tests/pending/fuzzy/AE-0226ee1e434532ec3de3137beba3853f20d0989c.scala rename to tests/fuzzy/AE-0226ee1e434532ec3de3137beba3853f20d0989c.scala diff --git a/tests/pending/fuzzy/AE-1269a5ff86175ddf4edabf6ad706cb136a9003f1.scala b/tests/fuzzy/AE-1269a5ff86175ddf4edabf6ad706cb136a9003f1.scala similarity index 100% rename from tests/pending/fuzzy/AE-1269a5ff86175ddf4edabf6ad706cb136a9003f1.scala rename to tests/fuzzy/AE-1269a5ff86175ddf4edabf6ad706cb136a9003f1.scala diff --git a/tests/pending/fuzzy/AE-4f7e66f7ee706c59e8d8ba100db9d2bf0152b119.scala b/tests/fuzzy/AE-4f7e66f7ee706c59e8d8ba100db9d2bf0152b119.scala similarity index 100% rename from tests/pending/fuzzy/AE-4f7e66f7ee706c59e8d8ba100db9d2bf0152b119.scala rename to tests/fuzzy/AE-4f7e66f7ee706c59e8d8ba100db9d2bf0152b119.scala diff --git a/tests/pending/fuzzy/AE-589637d1f97047c051c4adc3142cfe97f620b471.scala b/tests/fuzzy/AE-589637d1f97047c051c4adc3142cfe97f620b471.scala similarity index 100% rename from tests/pending/fuzzy/AE-589637d1f97047c051c4adc3142cfe97f620b471.scala rename to tests/fuzzy/AE-589637d1f97047c051c4adc3142cfe97f620b471.scala diff --git a/tests/pending/fuzzy/AE-854cfacb52282336bde0799f1ddbb5bbef974b59.scala b/tests/fuzzy/AE-854cfacb52282336bde0799f1ddbb5bbef974b59.scala similarity index 100% rename from tests/pending/fuzzy/AE-854cfacb52282336bde0799f1ddbb5bbef974b59.scala rename to tests/fuzzy/AE-854cfacb52282336bde0799f1ddbb5bbef974b59.scala diff --git a/tests/pending/fuzzy/AE-9a131723f09b9f77c99c52b709965e580a61706e.scala b/tests/fuzzy/AE-9a131723f09b9f77c99c52b709965e580a61706e.scala similarity index 100% rename from tests/pending/fuzzy/AE-9a131723f09b9f77c99c52b709965e580a61706e.scala rename to tests/fuzzy/AE-9a131723f09b9f77c99c52b709965e580a61706e.scala diff --git a/tests/pending/fuzzy/AE-9fea5208d12255332071a58be4afc5275b9e8d64.scala b/tests/fuzzy/AE-9fea5208d12255332071a58be4afc5275b9e8d64.scala similarity index 100% rename from tests/pending/fuzzy/AE-9fea5208d12255332071a58be4afc5275b9e8d64.scala rename to tests/fuzzy/AE-9fea5208d12255332071a58be4afc5275b9e8d64.scala diff --git a/tests/pending/fuzzy/AE-a0a760f3522486caf279b74367aaaa1ff0085b35.scala b/tests/fuzzy/AE-a0a760f3522486caf279b74367aaaa1ff0085b35.scala similarity index 100% rename from tests/pending/fuzzy/AE-a0a760f3522486caf279b74367aaaa1ff0085b35.scala rename to tests/fuzzy/AE-a0a760f3522486caf279b74367aaaa1ff0085b35.scala diff --git a/tests/pending/fuzzy/AE-ac9906c65ae7b715ce547b314cfb5b55a5bd899e.scala b/tests/fuzzy/AE-ac9906c65ae7b715ce547b314cfb5b55a5bd899e.scala similarity index 100% rename from tests/pending/fuzzy/AE-ac9906c65ae7b715ce547b314cfb5b55a5bd899e.scala rename to tests/fuzzy/AE-ac9906c65ae7b715ce547b314cfb5b55a5bd899e.scala diff --git a/tests/pending/fuzzy/AE-b70cbd6d6d8cbfacc4b6c3c7ffc98675c069bcfd.scala b/tests/fuzzy/AE-b70cbd6d6d8cbfacc4b6c3c7ffc98675c069bcfd.scala similarity index 100% rename from tests/pending/fuzzy/AE-b70cbd6d6d8cbfacc4b6c3c7ffc98675c069bcfd.scala rename to tests/fuzzy/AE-b70cbd6d6d8cbfacc4b6c3c7ffc98675c069bcfd.scala diff --git a/tests/pending/fuzzy/AE-f709fa7523d8627f29080fcedae9cd2b19f3bfc3.scala b/tests/fuzzy/AE-f709fa7523d8627f29080fcedae9cd2b19f3bfc3.scala similarity index 100% rename from tests/pending/fuzzy/AE-f709fa7523d8627f29080fcedae9cd2b19f3bfc3.scala rename to tests/fuzzy/AE-f709fa7523d8627f29080fcedae9cd2b19f3bfc3.scala diff --git a/tests/pending/fuzzy/CCE-13ba8b92d3fe05412fd9d58c7318ca5e60210aab.scala b/tests/fuzzy/CCE-13ba8b92d3fe05412fd9d58c7318ca5e60210aab.scala similarity index 100% rename from tests/pending/fuzzy/CCE-13ba8b92d3fe05412fd9d58c7318ca5e60210aab.scala rename to tests/fuzzy/CCE-13ba8b92d3fe05412fd9d58c7318ca5e60210aab.scala diff --git a/tests/pending/fuzzy/CCE-3f31ba00cea30842028ab580e5be0270046c682d.scala b/tests/fuzzy/CCE-3f31ba00cea30842028ab580e5be0270046c682d.scala similarity index 100% rename from tests/pending/fuzzy/CCE-3f31ba00cea30842028ab580e5be0270046c682d.scala rename to tests/fuzzy/CCE-3f31ba00cea30842028ab580e5be0270046c682d.scala diff --git a/tests/pending/fuzzy/CCE-4f5e36de0aad3bdbbf48a7ef0a99ffed2ea2937d.scala b/tests/fuzzy/CCE-4f5e36de0aad3bdbbf48a7ef0a99ffed2ea2937d.scala similarity index 100% rename from tests/pending/fuzzy/CCE-4f5e36de0aad3bdbbf48a7ef0a99ffed2ea2937d.scala rename to tests/fuzzy/CCE-4f5e36de0aad3bdbbf48a7ef0a99ffed2ea2937d.scala diff --git a/tests/pending/fuzzy/CCE-aafcaa9cd2611d22f63273738d637f5bec6e7152.scala b/tests/fuzzy/CCE-aafcaa9cd2611d22f63273738d637f5bec6e7152.scala similarity index 100% rename from tests/pending/fuzzy/CCE-aafcaa9cd2611d22f63273738d637f5bec6e7152.scala rename to tests/fuzzy/CCE-aafcaa9cd2611d22f63273738d637f5bec6e7152.scala diff --git a/tests/pending/fuzzy/CCE-c0c12d6037a2e677360dcddf572e8051fc8011cc.scala b/tests/fuzzy/CCE-c0c12d6037a2e677360dcddf572e8051fc8011cc.scala similarity index 100% rename from tests/pending/fuzzy/CCE-c0c12d6037a2e677360dcddf572e8051fc8011cc.scala rename to tests/fuzzy/CCE-c0c12d6037a2e677360dcddf572e8051fc8011cc.scala diff --git a/tests/pending/fuzzy/E-6cfc2bdeca4ea50004eafb57de18c7e149e70182.scala b/tests/fuzzy/E-6cfc2bdeca4ea50004eafb57de18c7e149e70182.scala similarity index 100% rename from tests/pending/fuzzy/E-6cfc2bdeca4ea50004eafb57de18c7e149e70182.scala rename to tests/fuzzy/E-6cfc2bdeca4ea50004eafb57de18c7e149e70182.scala diff --git a/tests/pending/fuzzy/ME-9962a2476fa4f8fbc5eec3eb3b67cb4dd206a68b.scala b/tests/fuzzy/ME-9962a2476fa4f8fbc5eec3eb3b67cb4dd206a68b.scala similarity index 100% rename from tests/pending/fuzzy/ME-9962a2476fa4f8fbc5eec3eb3b67cb4dd206a68b.scala rename to tests/fuzzy/ME-9962a2476fa4f8fbc5eec3eb3b67cb4dd206a68b.scala diff --git a/tests/pending/fuzzy/ME-ccf4e5b52f25c385e914f38d85fcede4e058d736.scala b/tests/fuzzy/ME-ccf4e5b52f25c385e914f38d85fcede4e058d736.scala similarity index 100% rename from tests/pending/fuzzy/ME-ccf4e5b52f25c385e914f38d85fcede4e058d736.scala rename to tests/fuzzy/ME-ccf4e5b52f25c385e914f38d85fcede4e058d736.scala diff --git a/tests/pending/fuzzy/NSEE-40b3c6d9467b2b62a334a0115d7900e78c52d2b6.scala b/tests/fuzzy/NSEE-40b3c6d9467b2b62a334a0115d7900e78c52d2b6.scala similarity index 100% rename from tests/pending/fuzzy/NSEE-40b3c6d9467b2b62a334a0115d7900e78c52d2b6.scala rename to tests/fuzzy/NSEE-40b3c6d9467b2b62a334a0115d7900e78c52d2b6.scala diff --git a/tests/pending/fuzzy/NSEE-d80fd1aafed9bbbd31b90a5ad3189cf20ce4aef8.scala b/tests/fuzzy/NSEE-d80fd1aafed9bbbd31b90a5ad3189cf20ce4aef8.scala similarity index 100% rename from tests/pending/fuzzy/NSEE-d80fd1aafed9bbbd31b90a5ad3189cf20ce4aef8.scala rename to tests/fuzzy/NSEE-d80fd1aafed9bbbd31b90a5ad3189cf20ce4aef8.scala diff --git a/tests/pending/fuzzy/SOE-1b4c828f532c6ebf8594c5f4c8eb625805fd98a7.scala b/tests/fuzzy/SOE-1b4c828f532c6ebf8594c5f4c8eb625805fd98a7.scala similarity index 100% rename from tests/pending/fuzzy/SOE-1b4c828f532c6ebf8594c5f4c8eb625805fd98a7.scala rename to tests/fuzzy/SOE-1b4c828f532c6ebf8594c5f4c8eb625805fd98a7.scala diff --git a/tests/pending/fuzzy/TUATE-3726d5a31a39f8226142c03a1037a37dd02b1809.scala b/tests/fuzzy/TUATE-3726d5a31a39f8226142c03a1037a37dd02b1809.scala similarity index 100% rename from tests/pending/fuzzy/TUATE-3726d5a31a39f8226142c03a1037a37dd02b1809.scala rename to tests/fuzzy/TUATE-3726d5a31a39f8226142c03a1037a37dd02b1809.scala diff --git a/tests/pending/fuzzy/UOE-abff262a5e36afa8450fd485c28178c43f0e765a.scala b/tests/fuzzy/UOE-abff262a5e36afa8450fd485c28178c43f0e765a.scala similarity index 100% rename from tests/pending/fuzzy/UOE-abff262a5e36afa8450fd485c28178c43f0e765a.scala rename to tests/fuzzy/UOE-abff262a5e36afa8450fd485c28178c43f0e765a.scala diff --git a/tests/pos/i4996.scala b/tests/pos/i4996.scala new file mode 100644 index 000000000000..e9d3acf915af --- /dev/null +++ b/tests/pos/i4996.scala @@ -0,0 +1,4 @@ +class Foo { + trait M[A[_]] + def foo[i0[_] : M](a: List[String] = ???) = ??? +} diff --git a/tests/run/module-serialization-proxy-class-unload.scala b/tests/run/module-serialization-proxy-class-unload.scala index ec47e92298be..5227c6ae2819 100644 --- a/tests/run/module-serialization-proxy-class-unload.scala +++ b/tests/run/module-serialization-proxy-class-unload.scala @@ -14,6 +14,7 @@ object Test { // This would "java.lang.OutOfMemoryError: Java heap space" if ModuleSerializationProxy // prevented class unloading. deserializeDynamicLoadedClass() + System.gc() } }