Created
November 28, 2011 16:08
-
-
Save adriaanm/1400910 to your computer and use it in GitHub Desktop.
virtpatmat compilation of a match and various hand-coded optimizations
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import improving.benchmark.Benchmark.Race | |
| val list = List(1, 3, 4, 7) | |
| val race = Race(() => fastMatch(list), () => virtMatch_no_option(list))(100000).converge() | |
| def fastMatch(x1: List[Int]) = { | |
| x1 match { | |
| case 1 :: 3 :: 4 :: 5 :: x => println("nope") | |
| case 1 :: 3 :: 4 :: 6 :: x => println("nope") // only need to test whether the previous case failed due to the third element not being 5, and whether third element is 6 | |
| case 1 :: 3 :: 4 :: 7 :: x => 1 | |
| } | |
| } | |
| // getting rid of Option, as suggested by Tiark | |
| def virtMatch_no_option(x1: List[Int]) = { | |
| val zero49: Option[Nothing] = MatchingStrategy.OptionMatchingStrategy.zero; | |
| var matchRes13: Any = null; | |
| var keepGoing14: Boolean = true; | |
| { | |
| { | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x4: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x4.ne(null)) | |
| if (1.==(x4.hd$1)) | |
| { | |
| val x37: Int = x4.hd$1; | |
| if (x4.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x7: collection.immutable.::[Int] = x4.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x7.ne(null)) | |
| if (3.==(x7.hd$1)) | |
| { | |
| val x38: Int = x7.hd$1; | |
| if (x7.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x10: collection.immutable.::[Int] = x7.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x10.ne(null)) | |
| if (4.==(x10.hd$1)) | |
| { | |
| val x39: Int = x10.hd$1; | |
| if (x10.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x12: collection.immutable.::[Int] = x10.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x12.ne(null)) | |
| if (5.==(x12.hd$1)) | |
| { | |
| val x40: Int = x12.hd$1; | |
| { | |
| matchRes13 = Predef.println("nope").asInstanceOf[Unit]; | |
| keepGoing14 = false | |
| } | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49; | |
| if (keepGoing14) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x17: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x17.ne(null)) | |
| if (1.==(x17.hd$1)) | |
| { | |
| val x41: Int = x17.hd$1; | |
| if (x17.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x20: collection.immutable.::[Int] = x17.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x20.ne(null)) | |
| if (3.==(x20.hd$1)) | |
| { | |
| val x42: Int = x20.hd$1; | |
| if (x20.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x23: collection.immutable.::[Int] = x20.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x23.ne(null)) | |
| if (4.==(x23.hd$1)) | |
| { | |
| val x43: Int = x23.hd$1; | |
| if (x23.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x25: collection.immutable.::[Int] = x23.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x25.ne(null)) | |
| if (6.==(x25.hd$1)) | |
| { | |
| val x44: Int = x25.hd$1; | |
| { | |
| matchRes13 = Predef.println("nope").asInstanceOf[Unit]; | |
| keepGoing14 = false | |
| } | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| }; | |
| if (keepGoing14) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x28: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x28.ne(null)) | |
| if (1.==(x28.hd$1)) | |
| { | |
| val x45: Int = x28.hd$1; | |
| if (x28.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x31: collection.immutable.::[Int] = x28.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x31.ne(null)) | |
| if (3.==(x31.hd$1)) | |
| { | |
| val x46: Int = x31.hd$1; | |
| if (x31.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x34: collection.immutable.::[Int] = x31.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x34.ne(null)) | |
| if (4.==(x34.hd$1)) | |
| { | |
| val x47: Int = x34.hd$1; | |
| if (x34.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x36: collection.immutable.::[Int] = x34.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x36.ne(null)) | |
| if (7.==(x36.hd$1)) | |
| { | |
| val x48: Int = x36.hd$1; | |
| { | |
| matchRes13 = 1.asInstanceOf[Int]; | |
| keepGoing14 = false | |
| } | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| } | |
| else | |
| zero49 | |
| else | |
| zero49 | |
| }; | |
| if (keepGoing14) | |
| throw new MatchError(x1) | |
| else | |
| matchRes13 | |
| } | |
| // hand-coded sharing | |
| def virtMatch_sharing(x1: List[Int]) = { | |
| var sharing = false | |
| var shared1: Int = 0 | |
| var res: Any = null | |
| var keepGoing = true | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x4: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (1.==(x4.hd$1)) { | |
| if (x4.tl$1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x7: collection.immutable.::[Int] = x4.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (3.==(x7.hd$1)) { | |
| if (x7.tl$1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x10: collection.immutable.::[Int] = x7.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (4.==(x10.hd$1)) { | |
| if (x10.tl$1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x12: collection.immutable.::[Int] = x10.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| sharing = true // the nested if's need not be repeated for the following cases since they test exactly the same thing | |
| shared1 = (x12.hd$1) // save captured variables (by the conceptual closure of the dependent sub-patterns) | |
| if (5 == shared1) { | |
| res = println("nope") | |
| keepGoing = false | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if(keepGoing && sharing && 6 == shared1 ) { | |
| res = println("nope") | |
| keepGoing = false | |
| } | |
| if (keepGoing && sharing && 7 == shared1) { | |
| res = 1 | |
| keepGoing = false | |
| } | |
| if (keepGoing) {throw new MatchError("meh")} | |
| else res | |
| } | |
| // hand-coded inlined runOrElse | |
| def virtMatch_inline_runOrElse(x1: List[Int]) = { | |
| import MatchingStrategy.OptionMatchingStrategy._ | |
| val res = { | |
| val o48: Option[AnyVal] = { | |
| val o47: Option[AnyVal] = if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x4: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x4.ne(null)) | |
| if (1.==(x4.hd$1)) | |
| { | |
| val x35: Int = x4.hd$1; | |
| if (x4.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x7: collection.immutable.::[Int] = x4.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x7.ne(null)) | |
| if (3.==(x7.hd$1)) | |
| { | |
| val x36: Int = x7.hd$1; | |
| if (x7.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x10: collection.immutable.::[Int] = x7.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x10.ne(null)) | |
| if (4.==(x10.hd$1)) | |
| { | |
| val x37: Int = x10.hd$1; | |
| if (x10.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x12: collection.immutable.::[Int] = x10.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x12.ne(null)) | |
| if (5.==(x12.hd$1)) | |
| { | |
| val x38: Int = x12.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](println("nope")) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero; | |
| if (o47.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x15: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x15.ne(null)) | |
| if (1.==(x15.hd$1)) | |
| { | |
| val x39: Int = x15.hd$1; | |
| if (x15.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x18: collection.immutable.::[Int] = x15.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x18.ne(null)) | |
| if (3.==(x18.hd$1)) | |
| { | |
| val x40: Int = x18.hd$1; | |
| if (x18.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x21: collection.immutable.::[Int] = x18.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x21.ne(null)) | |
| if (4.==(x21.hd$1)) | |
| { | |
| val x41: Int = x21.hd$1; | |
| if (x21.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x23: collection.immutable.::[Int] = x21.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x23.ne(null)) | |
| if (6.==(x23.hd$1)) | |
| { | |
| val x42: Int = x23.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](println("nope")) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| o47 | |
| }; | |
| if (o48.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x26: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x26.ne(null)) | |
| if (1.==(x26.hd$1)) | |
| { | |
| val x43: Int = x26.hd$1; | |
| if (x26.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x29: collection.immutable.::[Int] = x26.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x29.ne(null)) | |
| if (3.==(x29.hd$1)) | |
| { | |
| val x44: Int = x29.hd$1; | |
| if (x29.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x32: collection.immutable.::[Int] = x29.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x32.ne(null)) | |
| if (4.==(x32.hd$1)) | |
| { | |
| val x45: Int = x32.hd$1; | |
| if (x32.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x34: collection.immutable.::[Int] = x32.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x34.ne(null)) | |
| if (7.==(x34.hd$1)) | |
| { | |
| val x46: Int = x34.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Int](1) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| o48 | |
| } | |
| res.getOrElse {throw new MatchError("meh")} | |
| } | |
| // hand-coded mutable var for orElse | |
| def virtMatch_var_orElse(x1: List[Int]) = { | |
| import MatchingStrategy.OptionMatchingStrategy._ | |
| var res: Option[AnyVal] = None | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x4: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x4.ne(null)) | |
| if (1.==(x4.hd$1)) | |
| { | |
| val x35: Int = x4.hd$1; | |
| if (x4.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x7: collection.immutable.::[Int] = x4.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x7.ne(null)) | |
| if (3.==(x7.hd$1)) | |
| { | |
| val x36: Int = x7.hd$1; | |
| if (x7.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x10: collection.immutable.::[Int] = x7.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x10.ne(null)) | |
| if (4.==(x10.hd$1)) | |
| { | |
| val x37: Int = x10.hd$1; | |
| if (x10.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x12: collection.immutable.::[Int] = x10.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x12.ne(null)) | |
| if (5.==(x12.hd$1)) | |
| { | |
| val x38: Int = x12.hd$1; | |
| res = MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](println("nope")) | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| if (res.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x15: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x15.ne(null)) | |
| if (1.==(x15.hd$1)) | |
| { | |
| val x39: Int = x15.hd$1; | |
| if (x15.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x18: collection.immutable.::[Int] = x15.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x18.ne(null)) | |
| if (3.==(x18.hd$1)) | |
| { | |
| val x40: Int = x18.hd$1; | |
| if (x18.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x21: collection.immutable.::[Int] = x18.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x21.ne(null)) | |
| if (4.==(x21.hd$1)) | |
| { | |
| val x41: Int = x21.hd$1; | |
| if (x21.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x23: collection.immutable.::[Int] = x21.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x23.ne(null)) | |
| if (6.==(x23.hd$1)) | |
| { | |
| val x42: Int = x23.hd$1; | |
| res = MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](println("nope")) | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| if (res.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) { | |
| val x26: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x26.ne(null)) | |
| if (1.==(x26.hd$1)) | |
| { | |
| val x43: Int = x26.hd$1; | |
| if (x26.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x29: collection.immutable.::[Int] = x26.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x29.ne(null)) | |
| if (3.==(x29.hd$1)) | |
| { | |
| val x44: Int = x29.hd$1; | |
| if (x29.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x32: collection.immutable.::[Int] = x29.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x32.ne(null)) | |
| if (4.==(x32.hd$1)) | |
| { | |
| val x45: Int = x32.hd$1; | |
| if (x32.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x34: collection.immutable.::[Int] = x32.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x34.ne(null)) | |
| if (7.==(x34.hd$1)) | |
| { | |
| val x46: Int = x34.hd$1; | |
| res = MatchingStrategy.OptionMatchingStrategy.caseResult[Int](1) | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| res.getOrElse {throw new MatchError("meh")} | |
| } | |
| // what -Yvirtpatmat generates with scalac compiled from http://github.com/adriaanm/scala-dev/commit/7068e28f6ccaa14d87677c3329e096c0a7ed55b5 | |
| def virtMatch(x1: List[Int]): AnyVal = MatchingStrategy.OptionMatchingStrategy.runOrElse[List[Int], AnyVal](x1)(((x1: List[Int]) => { | |
| val o48: Option[AnyVal] = { | |
| val o47: Option[AnyVal] = if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x4: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x4.ne(null)) | |
| if (1.==(x4.hd$1)) | |
| { | |
| val x35: Int = x4.hd$1; | |
| if (x4.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x7: collection.immutable.::[Int] = x4.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x7.ne(null)) | |
| if (3.==(x7.hd$1)) | |
| { | |
| val x36: Int = x7.hd$1; | |
| if (x7.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x10: collection.immutable.::[Int] = x7.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x10.ne(null)) | |
| if (4.==(x10.hd$1)) | |
| { | |
| val x37: Int = x10.hd$1; | |
| if (x10.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x12: collection.immutable.::[Int] = x10.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x12.ne(null)) | |
| if (5.==(x12.hd$1)) | |
| { | |
| val x38: Int = x12.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](Predef.println("nope").asInstanceOf[Unit]) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero; | |
| if (o47.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x15: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x15.ne(null)) | |
| if (1.==(x15.hd$1)) | |
| { | |
| val x39: Int = x15.hd$1; | |
| if (x15.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x18: collection.immutable.::[Int] = x15.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x18.ne(null)) | |
| if (3.==(x18.hd$1)) | |
| { | |
| val x40: Int = x18.hd$1; | |
| if (x18.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x21: collection.immutable.::[Int] = x18.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x21.ne(null)) | |
| if (4.==(x21.hd$1)) | |
| { | |
| val x41: Int = x21.hd$1; | |
| if (x21.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x23: collection.immutable.::[Int] = x21.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x23.ne(null)) | |
| if (6.==(x23.hd$1)) | |
| { | |
| val x42: Int = x23.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Unit](Predef.println("nope").asInstanceOf[Unit]) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| o47 | |
| }; | |
| if (o48.isEmpty) | |
| if (x1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x26: collection.immutable.::[Int] = x1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x26.ne(null)) | |
| if (1.==(x26.hd$1)) | |
| { | |
| val x43: Int = x26.hd$1; | |
| if (x26.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x29: collection.immutable.::[Int] = x26.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x29.ne(null)) | |
| if (3.==(x29.hd$1)) | |
| { | |
| val x44: Int = x29.hd$1; | |
| if (x29.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x32: collection.immutable.::[Int] = x29.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x32.ne(null)) | |
| if (4.==(x32.hd$1)) | |
| { | |
| val x45: Int = x32.hd$1; | |
| if (x32.tl$1.isInstanceOf[collection.immutable.::[Int]]) | |
| { | |
| val x34: collection.immutable.::[Int] = x32.tl$1.asInstanceOf[collection.immutable.::[Int]]; | |
| if (x34.ne(null)) | |
| if (7.==(x34.hd$1)) | |
| { | |
| val x46: Int = x34.hd$1; | |
| MatchingStrategy.OptionMatchingStrategy.caseResult[Int](1) | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| } | |
| else | |
| MatchingStrategy.OptionMatchingStrategy.zero | |
| else | |
| o48 | |
| })) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment