Skip to content
This repository
Browse code

runtime reflection: death from thousand threads

not anymore
  • Loading branch information...
commit 387b2590db6c4f16183ea309b7451ed1fe8365ab 1 parent 73d079f
Eugene Burmako xeno-by authored
1,000 test/files/run/reflection-sync-potpourri.check
1,000 additions, 0 deletions not shown
31 test/files/run/reflection-sync-potpourri.scala
... ... @@ -0,0 +1,31 @@
  1 +import scala.reflect.runtime.universe._
  2 +
  3 +// this test checks that under heavily multithreaded conditions:
  4 +// 1) scala.reflect.runtime.universe, its rootMirror and definitions are initialized correctly
  5 +// 2) symbols are correctly materialized into PackageScopes (no dupes)
  6 +// 3) unpickling works okay even we unpickle the same symbol a lot of times
  7 +
  8 +object Test extends App {
  9 + def foo[T: TypeTag](x: T) = typeOf[T].toString
  10 + val n = 1000
  11 + val rng = new scala.util.Random()
  12 + val types = List(
  13 + () => typeOf[java.lang.reflect.Method],
  14 + () => typeOf[java.lang.annotation.Annotation],
  15 + () => typeOf[scala.io.BufferedSource],
  16 + () => typeOf[scala.io.Codec])
  17 + val perms = types.permutations.toList
  18 + def force(lazytpe: () => Type): String = {
  19 + lazytpe().typeSymbol.typeSignature
  20 + lazytpe().toString
  21 + }
  22 + val diceRolls = List.fill(n)(rng.nextInt(perms.length))
  23 + val threads = (1 to n) map (i => new Thread(s"Reflector-$i") {
  24 + override def run(): Unit = {
  25 + val s1 = foo("42")
  26 + val s2 = perms(diceRolls(i - 1)).map(x => force(x)).sorted.mkString(", ")
  27 + println(s"s1 = $s1, s2 = $s2")
  28 + }
  29 + })
  30 + threads foreach (_.start)
  31 +}
1,000 test/files/run/reflection-sync-subtypes.check
... ... @@ -0,0 +1,1000 @@
  1 +false, false, true, true
  2 +false, false, true, true
  3 +false, false, true, true
  4 +false, false, true, true
  5 +false, false, true, true
  6 +false, false, true, true
  7 +false, false, true, true
  8 +false, false, true, true
  9 +false, false, true, true
  10 +false, false, true, true
  11 +false, false, true, true
  12 +false, false, true, true
  13 +false, false, true, true
  14 +false, false, true, true
  15 +false, false, true, true
  16 +false, false, true, true
  17 +false, false, true, true
  18 +false, false, true, true
  19 +false, false, true, true
  20 +false, false, true, true
  21 +false, false, true, true
  22 +false, false, true, true
  23 +false, false, true, true
  24 +false, false, true, true
  25 +false, false, true, true
  26 +false, false, true, true
  27 +false, false, true, true
  28 +false, false, true, true
  29 +false, false, true, true
  30 +false, false, true, true
  31 +false, false, true, true
  32 +false, false, true, true
  33 +false, false, true, true
  34 +false, false, true, true
  35 +false, false, true, true
  36 +false, false, true, true
  37 +false, false, true, true
  38 +false, false, true, true
  39 +false, false, true, true
  40 +false, false, true, true
  41 +false, false, true, true
  42 +false, false, true, true
  43 +false, false, true, true
  44 +false, false, true, true
  45 +false, false, true, true
  46 +false, false, true, true
  47 +false, false, true, true
  48 +false, false, true, true
  49 +false, false, true, true
  50 +false, false, true, true
  51 +false, false, true, true
  52 +false, false, true, true
  53 +false, false, true, true
  54 +false, false, true, true
  55 +false, false, true, true
  56 +false, false, true, true
  57 +false, false, true, true
  58 +false, false, true, true
  59 +false, false, true, true
  60 +false, false, true, true
  61 +false, false, true, true
  62 +false, false, true, true
  63 +false, false, true, true
  64 +false, false, true, true
  65 +false, false, true, true
  66 +false, false, true, true
  67 +false, false, true, true
  68 +false, false, true, true
  69 +false, false, true, true
  70 +false, false, true, true
  71 +false, false, true, true
  72 +false, false, true, true
  73 +false, false, true, true
  74 +false, false, true, true
  75 +false, false, true, true
  76 +false, false, true, true
  77 +false, false, true, true
  78 +false, false, true, true
  79 +false, false, true, true
  80 +false, false, true, true
  81 +false, false, true, true
  82 +false, false, true, true
  83 +false, false, true, true
  84 +false, false, true, true
  85 +false, false, true, true
  86 +false, false, true, true
  87 +false, false, true, true
  88 +false, false, true, true
  89 +false, false, true, true
  90 +false, false, true, true
  91 +false, false, true, true
  92 +false, false, true, true
  93 +false, false, true, true
  94 +false, false, true, true
  95 +false, false, true, true
  96 +false, false, true, true
  97 +false, false, true, true
  98 +false, false, true, true
  99 +false, false, true, true
  100 +false, false, true, true
  101 +false, false, true, true
  102 +false, false, true, true
  103 +false, false, true, true
  104 +false, false, true, true
  105 +false, false, true, true
  106 +false, false, true, true
  107 +false, false, true, true
  108 +false, false, true, true
  109 +false, false, true, true
  110 +false, false, true, true
  111 +false, false, true, true
  112 +false, false, true, true
  113 +false, false, true, true
  114 +false, false, true, true
  115 +false, false, true, true
  116 +false, false, true, true
  117 +false, false, true, true
  118 +false, false, true, true
  119 +false, false, true, true
  120 +false, false, true, true
  121 +false, false, true, true
  122 +false, false, true, true
  123 +false, false, true, true
  124 +false, false, true, true
  125 +false, false, true, true
  126 +false, false, true, true
  127 +false, false, true, true
  128 +false, false, true, true
  129 +false, false, true, true
  130 +false, false, true, true
  131 +false, false, true, true
  132 +false, false, true, true
  133 +false, false, true, true
  134 +false, false, true, true
  135 +false, false, true, true
  136 +false, false, true, true
  137 +false, false, true, true
  138 +false, false, true, true
  139 +false, false, true, true
  140 +false, false, true, true
  141 +false, false, true, true
  142 +false, false, true, true
  143 +false, false, true, true
  144 +false, false, true, true
  145 +false, false, true, true
  146 +false, false, true, true
  147 +false, false, true, true
  148 +false, false, true, true
  149 +false, false, true, true
  150 +false, false, true, true
  151 +false, false, true, true
  152 +false, false, true, true
  153 +false, false, true, true
  154 +false, false, true, true
  155 +false, false, true, true
  156 +false, false, true, true
  157 +false, false, true, true
  158 +false, false, true, true
  159 +false, false, true, true
  160 +false, false, true, true
  161 +false, false, true, true
  162 +false, false, true, true
  163 +false, false, true, true
  164 +false, false, true, true
  165 +false, false, true, true
  166 +false, false, true, true
  167 +false, false, true, true
  168 +false, false, true, true
  169 +false, false, true, true
  170 +false, false, true, true
  171 +false, false, true, true
  172 +false, false, true, true
  173 +false, false, true, true
  174 +false, false, true, true
  175 +false, false, true, true
  176 +false, false, true, true
  177 +false, false, true, true
  178 +false, false, true, true
  179 +false, false, true, true
  180 +false, false, true, true
  181 +false, false, true, true
  182 +false, false, true, true
  183 +false, false, true, true
  184 +false, false, true, true
  185 +false, false, true, true
  186 +false, false, true, true
  187 +false, false, true, true
  188 +false, false, true, true
  189 +false, false, true, true
  190 +false, false, true, true
  191 +false, false, true, true
  192 +false, false, true, true
  193 +false, false, true, true
  194 +false, false, true, true
  195 +false, false, true, true
  196 +false, false, true, true
  197 +false, false, true, true
  198 +false, false, true, true
  199 +false, false, true, true
  200 +false, false, true, true
  201 +false, false, true, true
  202 +false, false, true, true
  203 +false, false, true, true
  204 +false, false, true, true
  205 +false, false, true, true
  206 +false, false, true, true
  207 +false, false, true, true
  208 +false, false, true, true
  209 +false, false, true, true
  210 +false, false, true, true
  211 +false, false, true, true
  212 +false, false, true, true
  213 +false, false, true, true
  214 +false, false, true, true
  215 +false, false, true, true
  216 +false, false, true, true
  217 +false, false, true, true
  218 +false, false, true, true
  219 +false, false, true, true
  220 +false, false, true, true
  221 +false, false, true, true
  222 +false, false, true, true
  223 +false, false, true, true
  224 +false, false, true, true
  225 +false, false, true, true
  226 +false, false, true, true
  227 +false, false, true, true
  228 +false, false, true, true
  229 +false, false, true, true
  230 +false, false, true, true
  231 +false, false, true, true
  232 +false, false, true, true
  233 +false, false, true, true
  234 +false, false, true, true
  235 +false, false, true, true
  236 +false, false, true, true
  237 +false, false, true, true
  238 +false, false, true, true
  239 +false, false, true, true
  240 +false, false, true, true
  241 +false, false, true, true
  242 +false, false, true, true
  243 +false, false, true, true
  244 +false, false, true, true
  245 +false, false, true, true
  246 +false, false, true, true
  247 +false, false, true, true
  248 +false, false, true, true
  249 +false, false, true, true
  250 +false, false, true, true
  251 +false, false, true, true
  252 +false, false, true, true
  253 +false, false, true, true
  254 +false, false, true, true
  255 +false, false, true, true
  256 +false, false, true, true
  257 +false, false, true, true
  258 +false, false, true, true
  259 +false, false, true, true
  260 +false, false, true, true
  261 +false, false, true, true
  262 +false, false, true, true
  263 +false, false, true, true
  264 +false, false, true, true
  265 +false, false, true, true
  266 +false, false, true, true
  267 +false, false, true, true
  268 +false, false, true, true
  269 +false, false, true, true
  270 +false, false, true, true
  271 +false, false, true, true
  272 +false, false, true, true
  273 +false, false, true, true
  274 +false, false, true, true
  275 +false, false, true, true
  276 +false, false, true, true
  277 +false, false, true, true
  278 +false, false, true, true
  279 +false, false, true, true
  280 +false, false, true, true
  281 +false, false, true, true
  282 +false, false, true, true
  283 +false, false, true, true
  284 +false, false, true, true
  285 +false, false, true, true
  286 +false, false, true, true
  287 +false, false, true, true
  288 +false, false, true, true
  289 +false, false, true, true
  290 +false, false, true, true
  291 +false, false, true, true
  292 +false, false, true, true
  293 +false, false, true, true
  294 +false, false, true, true
  295 +false, false, true, true
  296 +false, false, true, true
  297 +false, false, true, true
  298 +false, false, true, true
  299 +false, false, true, true
  300 +false, false, true, true
  301 +false, false, true, true
  302 +false, false, true, true
  303 +false, false, true, true
  304 +false, false, true, true
  305 +false, false, true, true
  306 +false, false, true, true
  307 +false, false, true, true
  308 +false, false, true, true
  309 +false, false, true, true
  310 +false, false, true, true
  311 +false, false, true, true
  312 +false, false, true, true
  313 +false, false, true, true
  314 +false, false, true, true
  315 +false, false, true, true
  316 +false, false, true, true
  317 +false, false, true, true
  318 +false, false, true, true
  319 +false, false, true, true
  320 +false, false, true, true
  321 +false, false, true, true
  322 +false, false, true, true
  323 +false, false, true, true
  324 +false, false, true, true
  325 +false, false, true, true
  326 +false, false, true, true
  327 +false, false, true, true
  328 +false, false, true, true
  329 +false, false, true, true
  330 +false, false, true, true
  331 +false, false, true, true
  332 +false, false, true, true
  333 +false, false, true, true
  334 +false, false, true, true
  335 +false, false, true, true
  336 +false, false, true, true
  337 +false, false, true, true
  338 +false, false, true, true
  339 +false, false, true, true
  340 +false, false, true, true
  341 +false, false, true, true
  342 +false, false, true, true
  343 +false, false, true, true
  344 +false, false, true, true
  345 +false, false, true, true
  346 +false, false, true, true
  347 +false, false, true, true
  348 +false, false, true, true
  349 +false, false, true, true
  350 +false, false, true, true
  351 +false, false, true, true
  352 +false, false, true, true
  353 +false, false, true, true
  354 +false, false, true, true
  355 +false, false, true, true
  356 +false, false, true, true
  357 +false, false, true, true
  358 +false, false, true, true
  359 +false, false, true, true
  360 +false, false, true, true
  361 +false, false, true, true
  362 +false, false, true, true
  363 +false, false, true, true
  364 +false, false, true, true
  365 +false, false, true, true
  366 +false, false, true, true
  367 +false, false, true, true
  368 +false, false, true, true
  369 +false, false, true, true
  370 +false, false, true, true
  371 +false, false, true, true
  372 +false, false, true, true
  373 +false, false, true, true
  374 +false, false, true, true
  375 +false, false, true, true
  376 +false, false, true, true
  377 +false, false, true, true
  378 +false, false, true, true
  379 +false, false, true, true
  380 +false, false, true, true
  381 +false, false, true, true
  382 +false, false, true, true
  383 +false, false, true, true
  384 +false, false, true, true
  385 +false, false, true, true
  386 +false, false, true, true
  387 +false, false, true, true
  388 +false, false, true, true
  389 +false, false, true, true
  390 +false, false, true, true
  391 +false, false, true, true
  392 +false, false, true, true
  393 +false, false, true, true
  394 +false, false, true, true
  395 +false, false, true, true
  396 +false, false, true, true
  397 +false, false, true, true
  398 +false, false, true, true
  399 +false, false, true, true
  400 +false, false, true, true
  401 +false, false, true, true
  402 +false, false, true, true
  403 +false, false, true, true
  404 +false, false, true, true
  405 +false, false, true, true
  406 +false, false, true, true
  407 +false, false, true, true
  408 +false, false, true, true
  409 +false, false, true, true
  410 +false, false, true, true
  411 +false, false, true, true
  412 +false, false, true, true
  413 +false, false, true, true
  414 +false, false, true, true
  415 +false, false, true, true
  416 +false, false, true, true
  417 +false, false, true, true
  418 +false, false, true, true
  419 +false, false, true, true
  420 +false, false, true, true
  421 +false, false, true, true
  422 +false, false, true, true
  423 +false, false, true, true
  424 +false, false, true, true
  425 +false, false, true, true
  426 +false, false, true, true
  427 +false, false, true, true
  428 +false, false, true, true
  429 +false, false, true, true
  430 +false, false, true, true
  431 +false, false, true, true
  432 +false, false, true, true
  433 +false, false, true, true
  434 +false, false, true, true
  435 +false, false, true, true
  436 +false, false, true, true
  437 +false, false, true, true
  438 +false, false, true, true
  439 +false, false, true, true
  440 +false, false, true, true
  441 +false, false, true, true
  442 +false, false, true, true
  443 +false, false, true, true
  444 +false, false, true, true
  445 +false, false, true, true
  446 +false, false, true, true
  447 +false, false, true, true
  448 +false, false, true, true
  449 +false, false, true, true
  450 +false, false, true, true
  451 +false, false, true, true
  452 +false, false, true, true
  453 +false, false, true, true
  454 +false, false, true, true
  455 +false, false, true, true
  456 +false, false, true, true
  457 +false, false, true, true
  458 +false, false, true, true
  459 +false, false, true, true
  460 +false, false, true, true
  461 +false, false, true, true
  462 +false, false, true, true
  463 +false, false, true, true
  464 +false, false, true, true
  465 +false, false, true, true
  466 +false, false, true, true
  467 +false, false, true, true
  468 +false, false, true, true
  469 +false, false, true, true
  470 +false, false, true, true
  471 +false, false, true, true
  472 +false, false, true, true
  473 +false, false, true, true
  474 +false, false, true, true
  475 +false, false, true, true
  476 +false, false, true, true
  477 +false, false, true, true
  478 +false, false, true, true
  479 +false, false, true, true
  480 +false, false, true, true
  481 +false, false, true, true
  482 +false, false, true, true
  483 +false, false, true, true
  484 +false, false, true, true
  485 +false, false, true, true
  486 +false, false, true, true
  487 +false, false, true, true
  488 +false, false, true, true
  489 +false, false, true, true
  490 +false, false, true, true
  491 +false, false, true, true
  492 +false, false, true, true
  493 +false, false, true, true
  494 +false, false, true, true
  495 +false, false, true, true
  496 +false, false, true, true
  497 +false, false, true, true
  498 +false, false, true, true
  499 +false, false, true, true
  500 +false, false, true, true
  501 +false, false, true, true
  502 +false, false, true, true
  503 +false, false, true, true
  504 +false, false, true, true
  505 +false, false, true, true
  506 +false, false, true, true
  507 +false, false, true, true
  508 +false, false, true, true
  509 +false, false, true, true
  510 +false, false, true, true
  511 +false, false, true, true
  512 +false, false, true, true
  513 +false, false, true, true
  514 +false, false, true, true
  515 +false, false, true, true
  516 +false, false, true, true
  517 +false, false, true, true
  518 +false, false, true, true
  519 +false, false, true, true
  520 +false, false, true, true
  521 +false, false, true, true
  522 +false, false, true, true
  523 +false, false, true, true
  524 +false, false, true, true
  525 +false, false, true, true
  526 +false, false, true, true
  527 +false, false, true, true
  528 +false, false, true, true
  529 +false, false, true, true
  530 +false, false, true, true
  531 +false, false, true, true
  532 +false, false, true, true
  533 +false, false, true, true
  534 +false, false, true, true
  535 +false, false, true, true
  536 +false, false, true, true
  537 +false, false, true, true
  538 +false, false, true, true
  539 +false, false, true, true
  540 +false, false, true, true
  541 +false, false, true, true
  542 +false, false, true, true
  543 +false, false, true, true
  544 +false, false, true, true
  545 +false, false, true, true
  546 +false, false, true, true
  547 +false, false, true, true
  548 +false, false, true, true
  549 +false, false, true, true
  550 +false, false, true, true
  551 +false, false, true, true
  552 +false, false, true, true
  553 +false, false, true, true
  554 +false, false, true, true
  555 +false, false, true, true
  556 +false, false, true, true
  557 +false, false, true, true
  558 +false, false, true, true
  559 +false, false, true, true
  560 +false, false, true, true
  561 +false, false, true, true
  562 +false, false, true, true
  563 +false, false, true, true
  564 +false, false, true, true
  565 +false, false, true, true
  566 +false, false, true, true
  567 +false, false, true, true
  568 +false, false, true, true
  569 +false, false, true, true
  570 +false, false, true, true
  571 +false, false, true, true
  572 +false, false, true, true
  573 +false, false, true, true
  574 +false, false, true, true
  575 +false, false, true, true
  576 +false, false, true, true
  577 +false, false, true, true
  578 +false, false, true, true
  579 +false, false, true, true
  580 +false, false, true, true
  581 +false, false, true, true
  582 +false, false, true, true
  583 +false, false, true, true
  584 +false, false, true, true
  585 +false, false, true, true
  586 +false, false, true, true
  587 +false, false, true, true
  588 +false, false, true, true
  589 +false, false, true, true
  590 +false, false, true, true
  591 +false, false, true, true
  592 +false, false, true, true
  593 +false, false, true, true
  594 +false, false, true, true
  595 +false, false, true, true
  596 +false, false, true, true
  597 +false, false, true, true
  598 +false, false, true, true
  599 +false, false, true, true
  600 +false, false, true, true
  601 +false, false, true, true
  602 +false, false, true, true
  603 +false, false, true, true
  604 +false, false, true, true
  605 +false, false, true, true
  606 +false, false, true, true
  607 +false, false, true, true
  608 +false, false, true, true
  609 +false, false, true, true
  610 +false, false, true, true
  611 +false, false, true, true
  612 +false, false, true, true
  613 +false, false, true, true
  614 +false, false, true, true
  615 +false, false, true, true
  616 +false, false, true, true
  617 +false, false, true, true
  618 +false, false, true, true
  619 +false, false, true, true
  620 +false, false, true, true
  621 +false, false, true, true
  622 +false, false, true, true
  623 +false, false, true, true
  624 +false, false, true, true
  625 +false, false, true, true
  626 +false, false, true, true
  627 +false, false, true, true
  628 +false, false, true, true
  629 +false, false, true, true
  630 +false, false, true, true
  631 +false, false, true, true
  632 +false, false, true, true
  633 +false, false, true, true
  634 +false, false, true, true
  635 +false, false, true, true
  636 +false, false, true, true
  637 +false, false, true, true
  638 +false, false, true, true
  639 +false, false, true, true
  640 +false, false, true, true
  641 +false, false, true, true
  642 +false, false, true, true
  643 +false, false, true, true
  644 +false, false, true, true
  645 +false, false, true, true
  646 +false, false, true, true
  647 +false, false, true, true
  648 +false, false, true, true
  649 +false, false, true, true
  650 +false, false, true, true
  651 +false, false, true, true
  652 +false, false, true, true
  653 +false, false, true, true
  654 +false, false, true, true
  655 +false, false, true, true
  656 +false, false, true, true
  657 +false, false, true, true
  658 +false, false, true, true
  659 +false, false, true, true
  660 +false, false, true, true
  661 +false, false, true, true
  662 +false, false, true, true
  663 +false, false, true, true
  664 +false, false, true, true
  665 +false, false, true, true
  666 +false, false, true, true
  667 +false, false, true, true
  668 +false, false, true, true
  669 +false, false, true, true
  670 +false, false, true, true
  671 +false, false, true, true
  672 +false, false, true, true
  673 +false, false, true, true
  674 +false, false, true, true
  675 +false, false, true, true
  676 +false, false, true, true
  677 +false, false, true, true
  678 +false, false, true, true
  679 +false, false, true, true
  680 +false, false, true, true
  681 +false, false, true, true
  682 +false, false, true, true
  683 +false, false, true, true
  684 +false, false, true, true
  685 +false, false, true, true
  686 +false, false, true, true
  687 +false, false, true, true
  688 +false, false, true, true
  689 +false, false, true, true
  690 +false, false, true, true
  691 +false, false, true, true
  692 +false, false, true, true
  693 +false, false, true, true
  694 +false, false, true, true
  695 +false, false, true, true
  696 +false, false, true, true
  697 +false, false, true, true
  698 +false, false, true, true
  699 +false, false, true, true
  700 +false, false, true, true
  701 +false, false, true, true
  702 +false, false, true, true
  703 +false, false, true, true
  704 +false, false, true, true
  705 +false, false, true, true
  706 +false, false, true, true
  707 +false, false, true, true
  708 +false, false, true, true
  709 +false, false, true, true
  710 +false, false, true, true
  711 +false, false, true, true
  712 +false, false, true, true
  713 +false, false, true, true
  714 +false, false, true, true
  715 +false, false, true, true
  716 +false, false, true, true
  717 +false, false, true, true
  718 +false, false, true, true
  719 +false, false, true, true
  720 +false, false, true, true
  721 +false, false, true, true
  722 +false, false, true, true
  723 +false, false, true, true
  724 +false, false, true, true
  725 +false, false, true, true
  726 +false, false, true, true
  727 +false, false, true, true
  728 +false, false, true, true
  729 +false, false, true, true
  730 +false, false, true, true
  731 +false, false, true, true
  732 +false, false, true, true
  733 +false, false, true, true
  734 +false, false, true, true
  735 +false, false, true, true
  736 +false, false, true, true
  737 +false, false, true, true
  738 +false, false, true, true
  739 +false, false, true, true
  740 +false, false, true, true
  741 +false, false, true, true
  742 +false, false, true, true
  743 +false, false, true, true
  744 +false, false, true, true
  745 +false, false, true, true
  746 +false, false, true, true
  747 +false, false, true, true
  748 +false, false, true, true
  749 +false, false, true, true
  750 +false, false, true, true
  751 +false, false, true, true
  752 +false, false, true, true
  753 +false, false, true, true
  754 +false, false, true, true
  755 +false, false, true, true
  756 +false, false, true, true
  757 +false, false, true, true
  758 +false, false, true, true
  759 +false, false, true, true
  760 +false, false, true, true
  761 +false, false, true, true
  762 +false, false, true, true
  763 +false, false, true, true
  764 +false, false, true, true
  765 +false, false, true, true
  766 +false, false, true, true
  767 +false, false, true, true
  768 +false, false, true, true
  769 +false, false, true, true
  770 +false, false, true, true
  771 +false, false, true, true
  772 +false, false, true, true
  773 +false, false, true, true
  774 +false, false, true, true
  775 +false, false, true, true
  776 +false, false, true, true
  777 +false, false, true, true
  778 +false, false, true, true
  779 +false, false, true, true
  780 +false, false, true, true
  781 +false, false, true, true
  782 +false, false, true, true
  783 +false, false, true, true
  784 +false, false, true, true
  785 +false, false, true, true
  786 +false, false, true, true
  787 +false, false, true, true
  788 +false, false, true, true
  789 +false, false, true, true
  790 +false, false, true, true
  791 +false, false, true, true
  792 +false, false, true, true
  793 +false, false, true, true
  794 +false, false, true, true
  795 +false, false, true, true
  796 +false, false, true, true
  797 +false, false, true, true
  798 +false, false, true, true
  799 +false, false, true, true
  800 +false, false, true, true
  801 +false, false, true, true
  802 +false, false, true, true
  803 +false, false, true, true
  804 +false, false, true, true
  805 +false, false, true, true
  806 +false, false, true, true
  807 +false, false, true, true
  808 +false, false, true, true
  809 +false, false, true, true
  810 +false, false, true, true
  811 +false, false, true, true
  812 +false, false, true, true
  813 +false, false, true, true
  814 +false, false, true, true
  815 +false, false, true, true
  816 +false, false, true, true
  817 +false, false, true, true
  818 +false, false, true, true
  819 +false, false, true, true
  820 +false, false, true, true
  821 +false, false, true, true
  822 +false, false, true, true
  823 +false, false, true, true
  824 +false, false, true, true
  825 +false, false, true, true
  826 +false, false, true, true
  827 +false, false, true, true
  828 +false, false, true, true
  829 +false, false, true, true
  830 +false, false, true, true
  831 +false, false, true, true
  832 +false, false, true, true
  833 +false, false, true, true
  834 +false, false, true, true
  835 +false, false, true, true
  836 +false, false, true, true
  837 +false, false, true, true
  838 +false, false, true, true
  839 +false, false, true, true
  840 +false, false, true, true
  841 +false, false, true, true
  842 +false, false, true, true
  843 +false, false, true, true
  844 +false, false, true, true
  845 +false, false, true, true
  846 +false, false, true, true
  847 +false, false, true, true
  848 +false, false, true, true
  849 +false, false, true, true
  850 +false, false, true, true
  851 +false, false, true, true
  852 +false, false, true, true
  853 +false, false, true, true
  854 +false, false, true, true
  855 +false, false, true, true
  856 +false, false, true, true
  857 +false, false, true, true
  858 +false, false, true, true
  859 +false, false, true, true
  860 +false, false, true, true
  861 +false, false, true, true
  862 +false, false, true, true
  863 +false, false, true, true
  864 +false, false, true, true
  865 +false, false, true, true
  866 +false, false, true, true
  867 +false, false, true, true
  868 +false, false, true, true
  869 +false, false, true, true
  870 +false, false, true, true
  871 +false, false, true, true
  872 +false, false, true, true
  873 +false, false, true, true
  874 +false, false, true, true
  875 +false, false, true, true
  876 +false, false, true, true
  877 +false, false, true, true
  878 +false, false, true, true
  879 +false, false, true, true
  880 +false, false, true, true
  881 +false, false, true, true
  882 +false, false, true, true
  883 +false, false, true, true
  884 +false, false, true, true
  885 +false, false, true, true
  886 +false, false, true, true
  887 +false, false, true, true
  888 +false, false, true, true
  889 +false, false, true, true
  890 +false, false, true, true
  891 +false, false, true, true
  892 +false, false, true, true
  893 +false, false, true, true
  894 +false, false, true, true
  895 +false, false, true, true
  896 +false, false, true, true
  897 +false, false, true, true
  898 +false, false, true, true
  899 +false, false, true, true
  900 +false, false, true, true
  901 +false, false, true, true
  902 +false, false, true, true
  903 +false, false, true, true
  904 +false, false, true, true
  905 +false, false, true, true
  906 +false, false, true, true
  907 +false, false, true, true
  908 +false, false, true, true
  909 +false, false, true, true
  910 +false, false, true, true
  911 +false, false, true, true
  912 +false, false, true, true
  913 +false, false, true, true
  914 +false, false, true, true
  915 +false, false, true, true
  916 +false, false, true, true
  917 +false, false, true, true
  918 +false, false, true, true
  919 +false, false, true, true
  920 +false, false, true, true
  921 +false, false, true, true
  922 +false, false, true, true
  923 +false, false, true, true
  924 +false, false, true, true
  925 +false, false, true, true
  926 +false, false, true, true
  927 +false, false, true, true
  928 +false, false, true, true
  929 +false, false, true, true
  930 +false, false, true, true
  931 +false, false, true, true
  932 +false, false, true, true
  933 +false, false, true, true
  934 +false, false, true, true
  935 +false, false, true, true
  936 +false, false, true, true
  937 +false, false, true, true
  938 +false, false, true, true
  939 +false, false, true, true
  940 +false, false, true, true
  941 +false, false, true, true
  942 +false, false, true, true
  943 +false, false, true, true
  944 +false, false, true, true
  945 +false, false, true, true
  946 +false, false, true, true
  947 +false, false, true, true
  948 +false, false, true, true
  949 +false, false, true, true
  950 +false, false, true, true
  951 +false, false, true, true
  952 +false, false, true, true
  953 +false, false, true, true
  954 +false, false, true, true
  955 +false, false, true, true
  956 +false, false, true, true
  957 +false, false, true, true
  958 +false, false, true, true
  959 +false, false, true, true
  960 +false, false, true, true
  961 +false, false, true, true
  962 +false, false, true, true
  963 +false, false, true, true
  964 +false, false, true, true
  965 +false, false, true, true
  966 +false, false, true, true
  967 +false, false, true, true
  968 +false, false, true, true
  969 +false, false, true, true
  970 +false, false, true, true
  971 +false, false, true, true
  972 +false, false, true, true
  973 +false, false, true, true
  974 +false, false, true, true
  975 +false, false, true, true
  976 +false, false, true, true
  977 +false, false, true, true
  978 +false, false, true, true
  979 +false, false, true, true
  980 +false, false, true, true
  981 +false, false, true, true
  982 +false, false, true, true
  983 +false, false, true, true
  984 +false, false, true, true
  985 +false, false, true, true
  986 +false, false, true, true
  987 +false, false, true, true
  988 +false, false, true, true
  989 +false, false, true, true
  990 +false, false, true, true
  991 +false, false, true, true
  992 +false, false, true, true
  993 +false, false, true, true
  994 +false, false, true, true
  995 +false, false, true, true
  996 +false, false, true, true
  997 +false, false, true, true
  998 +false, false, true, true
  999 +false, false, true, true
  1000 +false, false, true, true
20 test/files/run/reflection-sync-subtypes.scala
... ... @@ -0,0 +1,20 @@
  1 +import scala.reflect.runtime.universe._
  2 +
  3 +object Test extends App {
  4 + val n = 1000
  5 + val rng = new scala.util.Random()
  6 + val tasks = List(
  7 + () => typeOf[List[Int]] <:< typeOf[List[T] forSome { type T }],
  8 + () => typeOf[List[T] forSome { type T }] <:< typeOf[List[Any]],
  9 + () => typeOf[Map[Int, Object]] <:< typeOf[Iterable[(Int, String)]],
  10 + () => typeOf[Expr[Any] { val mirror: rootMirror.type }] <:< typeOf[Expr[List[List[List[Int]]]]{ val mirror: rootMirror.type }])
  11 + val perms = tasks.permutations.toList
  12 + val diceRolls = List.fill(n)(rng.nextInt(perms.length))
  13 + val threads = (1 to n) map (i => new Thread(s"Reflector-$i") {
  14 + override def run(): Unit = {
  15 + val result = perms(diceRolls(i - 1)).map(_())
  16 + println(result.sorted.mkString(", "))
  17 + }
  18 + })
  19 + threads foreach (_.start)
  20 +}

1 comment on commit 387b259

scala-jenkins
Collaborator

Job pr-rangepos-per-commit failed for 387b259 (results):


Took 27 s.
sad kitty
to rebuild, comment "PLS REBUILD/pr-rangepos-per-commit@387b259"on PR #2083

Please sign in to comment.
Something went wrong with that request. Please try again.