diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-08 13:15:45 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-01-08 14:47:14 -0800 |
commit | fc386675692bfaa1d2eb7a96c2bc92b3ad471327 (patch) | |
tree | 7d48f0ad3854f83bbe7543f130e67ce59cdc51d5 /test | |
parent | a03e77b8670faa133c76f4d7b29bf362246d20b5 (diff) | |
parent | 1381cda86ddeca1b9829a9c53ff9372cfd816735 (diff) | |
download | scala-fc386675692bfaa1d2eb7a96c2bc92b3ad471327.tar.gz scala-fc386675692bfaa1d2eb7a96c2bc92b3ad471327.tar.bz2 scala-fc386675692bfaa1d2eb7a96c2bc92b3ad471327.zip |
Merge branch '2.10.x'
Patches applied:
- rename of `dropRepeatedParamType` to `dropIllegalStarTypes` -- required since 8886d22cd6
- fixed test/files/neg/t6406-regextract.flags -- how could this have worked before?
Conflicts:
src/compiler/scala/tools/nsc/interpreter/TypeStrings.scala
src/library/scala/collection/LinearSeqOptimized.scala
src/library/scala/util/Properties.scala
test/files/run/streams.check
test/files/run/streams.scala
Diffstat (limited to 'test')
26 files changed, 314 insertions, 87 deletions
diff --git a/test/files/neg/classmanifests_new_deprecations.flags b/test/files/neg/classmanifests_new_deprecations.flags index e8fb65d50c..c6bfaf1f64 100644 --- a/test/files/neg/classmanifests_new_deprecations.flags +++ b/test/files/neg/classmanifests_new_deprecations.flags @@ -1 +1 @@ --Xfatal-warnings
\ No newline at end of file +-deprecation -Xfatal-warnings diff --git a/test/files/neg/for-comprehension-old.flags b/test/files/neg/for-comprehension-old.flags new file mode 100644 index 0000000000..dcc59ebe32 --- /dev/null +++ b/test/files/neg/for-comprehension-old.flags @@ -0,0 +1 @@ +-deprecation diff --git a/test/files/neg/macro-deprecate-idents.flags b/test/files/neg/macro-deprecate-idents.flags index e8fb65d50c..c6bfaf1f64 100644 --- a/test/files/neg/macro-deprecate-idents.flags +++ b/test/files/neg/macro-deprecate-idents.flags @@ -1 +1 @@ --Xfatal-warnings
\ No newline at end of file +-deprecation -Xfatal-warnings diff --git a/test/files/neg/macro-invalidshape-d.flags b/test/files/neg/macro-invalidshape-d.flags index cd66464f2f..83b7265eb9 100644 --- a/test/files/neg/macro-invalidshape-d.flags +++ b/test/files/neg/macro-invalidshape-d.flags @@ -1 +1 @@ --language:experimental.macros
\ No newline at end of file +-deprecation -language:experimental.macros diff --git a/test/files/neg/names-defaults-neg.flags b/test/files/neg/names-defaults-neg.flags new file mode 100644 index 0000000000..dcc59ebe32 --- /dev/null +++ b/test/files/neg/names-defaults-neg.flags @@ -0,0 +1 @@ +-deprecation diff --git a/test/files/neg/t5589neg.flags b/test/files/neg/t5589neg.flags new file mode 100644 index 0000000000..dcc59ebe32 --- /dev/null +++ b/test/files/neg/t5589neg.flags @@ -0,0 +1 @@ +-deprecation diff --git a/test/files/neg/t5956.flags b/test/files/neg/t5956.flags new file mode 100644 index 0000000000..dcc59ebe32 --- /dev/null +++ b/test/files/neg/t5956.flags @@ -0,0 +1 @@ +-deprecation diff --git a/test/files/neg/t6406-regextract.flags b/test/files/neg/t6406-regextract.flags index 85d8eb2ba2..7de3c0f3ee 100644 --- a/test/files/neg/t6406-regextract.flags +++ b/test/files/neg/t6406-regextract.flags @@ -1 +1 @@ --Xfatal-warnings +-Xfatal-warnings -deprecation diff --git a/test/files/neg/t6788.check b/test/files/neg/t6788.check new file mode 100644 index 0000000000..96a6f8b601 --- /dev/null +++ b/test/files/neg/t6788.check @@ -0,0 +1,5 @@ +t6788.scala:6: error: not found: value foo +Error occurred in an application involving default arguments. + s.copy(b = foo) + ^ +one error found diff --git a/test/files/neg/t6788.scala b/test/files/neg/t6788.scala new file mode 100644 index 0000000000..77949ed621 --- /dev/null +++ b/test/files/neg/t6788.scala @@ -0,0 +1,7 @@ +case class B[T](b: T, a: List[Int]) // need two args, B must be polymorphic + +class A { + var s: B[Int] = _ // has to be a var + + s.copy(b = foo) +} diff --git a/test/files/neg/t6829.check b/test/files/neg/t6829.check new file mode 100644 index 0000000000..8ee6d182eb --- /dev/null +++ b/test/files/neg/t6829.check @@ -0,0 +1,36 @@ +t6829.scala:35: error: type mismatch; + found : AgentSimulation.this.state.type (with underlying type G#State) + required: _10.State + lazy val actions: Map[G#Agent,G#Action] = agents.map(a => a -> a.chooseAction(state)).toMap + ^ +t6829.scala:45: error: trait AgentSimulation takes type parameters + pastHistory: List[G#State] = Nil) extends AgentSimulation + ^ +t6829.scala:47: error: class LearningSimulation takes type parameters + lazy val step: LearningSimulation = { + ^ +t6829.scala:49: error: not found: value actions + val (s,a,s2) = (state,actions(agent),nextState) + ^ +t6829.scala:49: error: not found: value nextState + val (s,a,s2) = (state,actions(agent),nextState) + ^ +t6829.scala:50: error: type mismatch; + found : s.type (with underlying type Any) + required: _54.State where val _54: G + val r = rewards(agent).r(s,a,s2) + ^ +t6829.scala:51: error: type mismatch; + found : s.type (with underlying type Any) + required: _51.State + agent.learn(s,a,s2,r): G#Agent + ^ +t6829.scala:53: error: not found: value nextState +Error occurred in an application involving default arguments. + copy(agents = updatedAgents, state = nextState, pastHistory = currentHistory) + ^ +t6829.scala:53: error: not found: value currentHistory +Error occurred in an application involving default arguments. + copy(agents = updatedAgents, state = nextState, pastHistory = currentHistory) + ^ +9 errors found diff --git a/test/files/neg/t6829.scala b/test/files/neg/t6829.scala new file mode 100644 index 0000000000..7cbe3c9542 --- /dev/null +++ b/test/files/neg/t6829.scala @@ -0,0 +1,64 @@ +package bugs + +/** + * Created with IntelliJ IDEA. + * User: arya + * Date: 12/18/12 + * Time: 4:17 PM + * To change this template use File | Settings | File Templates. + */ +object currenttype2 { + + type Reward = Double + + trait AbstractAgent[State,Action] { + type A = AbstractAgent[State,Action] + def chooseAction(s: State): Action + def startEpisode: A = this + def learn(s1: State, a: Action, s2: State, r: Reward): A + } + + case class RewardFunction[State,Action](r: (State,Action,State) => Reward) + + trait Rules[G<:GameDomain] { + def simulate(state: G#State, agentActions: List[(G#Agent,G#Action)]): G#State + } + + trait AgentSimulation[G<:GameDomain] { + val agents: List[G#Agent] + val state: G#State + val rewards: Map[G#Agent,G#Rewards] + val rules: Rules[G] + val pastHistory: List[G#State] + lazy val currentHistory = state :: pastHistory + + lazy val actions: Map[G#Agent,G#Action] = agents.map(a => a -> a.chooseAction(state)).toMap + lazy val nextState: G#State = rules.simulate(state, actions.toList) + + def step: AgentSimulation[G] + } + + case class LearningSimulation[G<:GameDomain](agents: List[G#Agent], + state: G#State, + rewards: Map[G#Agent,G#Rewards], + rules: Rules[G], + pastHistory: List[G#State] = Nil) extends AgentSimulation + { + lazy val step: LearningSimulation = { + val updatedAgents: List[G#Agent] = agents map { agent => + val (s,a,s2) = (state,actions(agent),nextState) + val r = rewards(agent).r(s,a,s2) + agent.learn(s,a,s2,r): G#Agent + } + copy(agents = updatedAgents, state = nextState, pastHistory = currentHistory) + } + } + + trait GameDomain { + domain => + type State + type Action + type Agent = AbstractAgent[State, Action] // agent supertype + type Rewards = RewardFunction[State,Action] + } + } diff --git a/test/files/pos/t6896.flags b/test/files/pos/t6896.flags new file mode 100644 index 0000000000..85d8eb2ba2 --- /dev/null +++ b/test/files/pos/t6896.flags @@ -0,0 +1 @@ +-Xfatal-warnings diff --git a/test/files/pos/t6896.scala b/test/files/pos/t6896.scala new file mode 100644 index 0000000000..ab527a804a --- /dev/null +++ b/test/files/pos/t6896.scala @@ -0,0 +1,7 @@ +object TooManyMains { + def main(args: Array[String]): Unit = { + println("Hello, World!") + } + def main(a: Int, b: Int) = ??? + def main(s: String, n: String) = ??? +} diff --git a/test/files/pos/t6897.scala b/test/files/pos/t6897.scala new file mode 100644 index 0000000000..a7a03a1d3a --- /dev/null +++ b/test/files/pos/t6897.scala @@ -0,0 +1,6 @@ +class A { + val html = (null: Any) match { + case 1 => <xml:group></xml:group> + case 2 => <p></p> + } +} diff --git a/test/files/run/array-addition.check b/test/files/run/array-addition.check new file mode 100644 index 0000000000..7bfbd9c711 --- /dev/null +++ b/test/files/run/array-addition.check @@ -0,0 +1,4 @@ +Array(1, 2, 3, 4) +Array(1, 2, 3, 4) +Array(1) +Array(1) diff --git a/test/files/run/array-addition.scala b/test/files/run/array-addition.scala new file mode 100644 index 0000000000..8def48e85c --- /dev/null +++ b/test/files/run/array-addition.scala @@ -0,0 +1,11 @@ +object Test { + def prettyPrintArray(x: Array[_]) = println("Array(" + x.mkString(", ") + ")") + + def main(args: Array[String]): Unit = { + prettyPrintArray(Array(1,2,3) :+ 4) + prettyPrintArray(1 +: Array(2,3,4)) + prettyPrintArray(Array() :+ 1) + prettyPrintArray(1 +: Array()) + } +} + diff --git a/test/files/run/idempotency-case-classes.check b/test/files/run/idempotency-case-classes.check index d2fb8169cb..700af3b81b 100644 --- a/test/files/run/idempotency-case-classes.check +++ b/test/files/run/idempotency-case-classes.check @@ -29,7 +29,10 @@ C(2,3) Statics.this.finalizeHash(acc, 2) }; override <synthetic> def toString(): String = ScalaRunTime.this._toString(C.this); - override <synthetic> def equals(x$1: Any): Boolean = C.this.eq(x$1.asInstanceOf[Object]).||(x$1.isInstanceOf[C].&&({ + override <synthetic> def equals(x$1: Any): Boolean = C.this.eq(x$1.asInstanceOf[Object]).||(x$1 match { + case (_: C) => true + case _ => false +}.&&({ <synthetic> val C$1: C = x$1.asInstanceOf[C]; C.this.x.==(C$1.x).&&(C.this.y.==(C$1.y)).&&(C$1.canEqual(C.this)) })) diff --git a/test/files/run/inline-ex-handlers.check b/test/files/run/inline-ex-handlers.check index 45db7c3a15..282542a732 100644 --- a/test/files/run/inline-ex-handlers.check +++ b/test/files/run/inline-ex-handlers.check @@ -13,15 +13,23 @@ < 92 JUMP 2 < < 2: -370c369 +247c246 +< blocks: [1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18] +--- +> blocks: [1,2,3,4,5,6,8,10,11,12,13,14,15,16,17,18] +258,260d256 +< 92 JUMP 7 +< +< 7: +395c391 < locals: value args, variable result, value ex6, value x4, value x5, value message, value x --- > locals: value args, variable result, value ex6, value x4, value x5, value x -372c371 +397c393 < blocks: [1,2,3,4,5,8,11,13,14,16] --- > blocks: [1,2,3,5,8,11,13,14,16,17] -396c395,404 +421c417,426 < 103 THROW(MyException) --- > ? STORE_LOCAL(value ex6) @@ -34,25 +42,25 @@ > 106 LOAD_LOCAL(value x4) > 106 IS_INSTANCE REF(class MyException) > 106 CZJUMP (BOOL)NE ? 5 : 11 -409,411d416 +434,436d438 < 101 JUMP 4 < < 4: -425,428d429 +450,453d451 < 106 LOAD_LOCAL(value x5) < 106 CALL_METHOD MyException.message (dynamic) < 106 STORE_LOCAL(value message) < 106 SCOPE_ENTER value message -430c431,432 +455c453,454 < 106 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 106 CALL_METHOD MyException.message (dynamic) -502c504 +527c526 < blocks: [1,2,3,4,6,7,8,9,10] --- > blocks: [1,2,3,4,6,7,8,9,10,11,12,13] -531c533,538 +556c555,560 < 306 THROW(MyException) --- > ? JUMP 11 @@ -61,11 +69,11 @@ > ? LOAD_LOCAL(variable monitor4) > 305 MONITOR_EXIT > ? JUMP 12 -537c544 +562c566 < ? THROW(Throwable) --- > ? JUMP 12 -543c550,557 +568c572,579 < ? THROW(Throwable) --- > ? STORE_LOCAL(value t) @@ -76,7 +84,7 @@ > 304 MONITOR_EXIT > ? STORE_LOCAL(value t) > ? JUMP 13 -558a573,584 +583a595,606 > 13: > 310 LOAD_MODULE object Predef > 310 CALL_PRIMITIVE(StartConcat) @@ -89,34 +97,35 @@ > 310 CALL_METHOD scala.Predef.println (dynamic) > 310 JUMP 2 > -567c593 +592c615 < catch (Throwable) in ArrayBuffer(7, 8, 9, 10) starting at: 6 --- > catch (Throwable) in ArrayBuffer(7, 8, 9, 10, 11) starting at: 6 -570c596 +595c618 < catch (Throwable) in ArrayBuffer(4, 6, 7, 8, 9, 10) starting at: 3 --- > catch (Throwable) in ArrayBuffer(4, 6, 7, 8, 9, 10, 11, 12) starting at: 3 -602c628 +627c650 < blocks: [1,2,3,4,5,6,7,9,10] --- > blocks: [1,2,3,4,5,6,7,9,10,11,12] -626c652,658 +651c674,675 < 78 THROW(IllegalArgumentException) --- > ? STORE_LOCAL(value e) > ? JUMP 11 -> +652a677,681 > 11: > 81 LOAD_LOCAL(value e) > ? STORE_LOCAL(variable exc1) > ? JUMP 12 -655c687,688 +> +680c709,710 < 81 THROW(Exception) --- > ? STORE_LOCAL(variable exc1) > ? JUMP 12 -671a705,717 +696a727,739 > 12: > 83 LOAD_MODULE object Predef > 83 CONSTANT("finally") @@ -130,19 +139,19 @@ > 84 LOAD_LOCAL(variable exc1) > 84 THROW(Throwable) > -677c723 +702c745 < catch (<none>) in ArrayBuffer(4, 6, 7, 9) starting at: 3 --- > catch (<none>) in ArrayBuffer(4, 6, 7, 9, 11) starting at: 3 -701c747 +726c769 < locals: value args, variable result, value ex6, variable exc2, value x4, value x5, value message, value x, value ex6, value x4, value x5, value message, value x --- > locals: value args, variable result, value ex6, variable exc2, value x4, value x5, value x, value ex6, value x4, value x5, value x -703c749 +728c771 < blocks: [1,2,3,4,5,6,9,12,14,17,18,19,22,25,27,28,30,31] --- > blocks: [1,2,3,4,5,6,9,12,14,17,18,19,22,25,27,28,30,31,32,33,34] -727c773,780 +752c795,802 < 172 THROW(MyException) --- > ? STORE_LOCAL(value ex6) @@ -153,64 +162,64 @@ > 170 STORE_LOCAL(value x4) > 170 SCOPE_ENTER value x4 > 170 JUMP 18 -774,777d826 +799,802d848 < 175 LOAD_LOCAL(value x5) < 175 CALL_METHOD MyException.message (dynamic) < 175 STORE_LOCAL(value message) < 175 SCOPE_ENTER value message -779c828,829 +804c850,851 < 176 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 176 CALL_METHOD MyException.message (dynamic) -783c833,834 +808c855,856 < 177 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 177 CALL_METHOD MyException.message (dynamic) -785c836,837 +810c858,859 < 177 THROW(MyException) --- > ? STORE_LOCAL(value ex6) > ? JUMP 33 -789c841,842 +814c863,864 < 170 THROW(Throwable) --- > ? STORE_LOCAL(value ex6) > ? JUMP 33 -798a852,857 +823a874,879 > 33: > 169 LOAD_LOCAL(value ex6) > 169 STORE_LOCAL(value x4) > 169 SCOPE_ENTER value x4 > 169 JUMP 5 > -813,816d871 +838,841d893 < 180 LOAD_LOCAL(value x5) < 180 CALL_METHOD MyException.message (dynamic) < 180 STORE_LOCAL(value message) < 180 SCOPE_ENTER value message -818c873,874 +843c895,896 < 181 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 181 CALL_METHOD MyException.message (dynamic) -822c878,879 +847c900,901 < 182 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 182 CALL_METHOD MyException.message (dynamic) -824c881,882 +849c903,904 < 182 THROW(MyException) --- > ? STORE_LOCAL(variable exc2) > ? JUMP 34 -828c886,887 +853c908,909 < 169 THROW(Throwable) --- > ? STORE_LOCAL(variable exc2) > ? JUMP 34 -844a904,916 +869a926,938 > 34: > 184 LOAD_MODULE object Predef > 184 CONSTANT("finally") @@ -224,23 +233,23 @@ > 185 LOAD_LOCAL(variable exc2) > 185 THROW(Throwable) > -850c922 +875c944 < catch (Throwable) in ArrayBuffer(17, 18, 19, 22, 25, 27, 28, 30) starting at: 4 --- > catch (Throwable) in ArrayBuffer(17, 18, 19, 22, 25, 27, 28, 30, 32) starting at: 4 -853c925 +878c947 < catch (<none>) in ArrayBuffer(4, 5, 6, 9, 12, 17, 18, 19, 22, 25, 27, 28, 30) starting at: 3 --- > catch (<none>) in ArrayBuffer(4, 5, 6, 9, 12, 17, 18, 19, 22, 25, 27, 28, 30, 32, 33) starting at: 3 -877c949 +902c971 < locals: value args, variable result, value e, value ex6, value x4, value x5, value message, value x --- > locals: value args, variable result, value e, value ex6, value x4, value x5, value x -879c951 +904c973 < blocks: [1,2,3,6,7,8,11,14,16,17,19] --- > blocks: [1,2,3,6,7,8,11,14,16,17,19,20] -903c975,982 +928c997,1004 < 124 THROW(MyException) --- > ? STORE_LOCAL(value ex6) @@ -251,29 +260,29 @@ > 122 STORE_LOCAL(value x4) > 122 SCOPE_ENTER value x4 > 122 JUMP 7 -932,935d1010 +957,960d1032 < 127 LOAD_LOCAL(value x5) < 127 CALL_METHOD MyException.message (dynamic) < 127 STORE_LOCAL(value message) < 127 SCOPE_ENTER value message -937c1012,1013 +962c1034,1035 < 127 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 127 CALL_METHOD MyException.message (dynamic) -966c1042 +991c1064 < catch (IllegalArgumentException) in ArrayBuffer(6, 7, 8, 11, 14, 16, 17, 19) starting at: 3 --- > catch (IllegalArgumentException) in ArrayBuffer(6, 7, 8, 11, 14, 16, 17, 19, 20) starting at: 3 -990c1066 +1015c1088 < locals: value args, variable result, value ex6, value x4, value x5, value message, value x, value e --- > locals: value args, variable result, value ex6, value x4, value x5, value x, value e -992c1068 +1017c1090 < blocks: [1,2,3,4,5,8,11,15,16,17,19] --- > blocks: [1,2,3,5,8,11,15,16,17,19,20] -1016c1092,1101 +1041c1114,1123 < 148 THROW(MyException) --- > ? STORE_LOCAL(value ex6) @@ -286,49 +295,50 @@ > 154 LOAD_LOCAL(value x4) > 154 IS_INSTANCE REF(class MyException) > 154 CZJUMP (BOOL)NE ? 5 : 11 -1037,1039d1121 +1062,1064d1143 < 145 JUMP 4 < < 4: -1053,1056d1134 +1078,1081d1156 < 154 LOAD_LOCAL(value x5) < 154 CALL_METHOD MyException.message (dynamic) < 154 STORE_LOCAL(value message) < 154 SCOPE_ENTER value message -1058c1136,1137 +1083c1158,1159 < 154 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 154 CALL_METHOD MyException.message (dynamic) -1275c1354 +1300c1376 < blocks: [1,2,3,4,5,7] --- > blocks: [1,2,3,4,5,7,8] -1299c1378,1385 +1324c1400,1401 < 38 THROW(IllegalArgumentException) --- > ? STORE_LOCAL(value e) > ? JUMP 8 -> +1325a1403,1408 > 8: > 42 LOAD_MODULE object Predef > 42 CONSTANT("IllegalArgumentException") > 42 CALL_METHOD scala.Predef.println (dynamic) > 42 JUMP 2 -1346c1432 +> +1371c1454 < locals: value args, variable result, value ex6, value x4, value x5, value message, value x --- > locals: value args, variable result, value ex6, value x4, value x5, value x -1348c1434 +1373c1456 < blocks: [1,2,3,4,5,8,11,13,14,16,17,19] --- > blocks: [1,2,3,5,8,11,13,14,16,17,19,20] -1372c1458,1459 +1397c1480,1481 < 203 THROW(MyException) --- > ? STORE_LOCAL(value ex6) > ? JUMP 20 -1392c1479,1488 +1417c1501,1510 < 209 THROW(MyException) --- > ? STORE_LOCAL(value ex6) @@ -341,41 +351,41 @@ > 212 LOAD_LOCAL(value x4) > 212 IS_INSTANCE REF(class MyException) > 212 CZJUMP (BOOL)NE ? 5 : 11 -1405,1407d1500 +1430,1432d1522 < 200 JUMP 4 < < 4: -1421,1424d1513 +1446,1449d1535 < 212 LOAD_LOCAL(value x5) < 212 CALL_METHOD MyException.message (dynamic) < 212 STORE_LOCAL(value message) < 212 SCOPE_ENTER value message -1426c1515,1516 +1451c1537,1538 < 213 LOAD_LOCAL(value message) --- > ? LOAD_LOCAL(value x5) > 213 CALL_METHOD MyException.message (dynamic) -1470c1560 +1495c1582 < blocks: [1,2,3,4,5,7] --- > blocks: [1,2,3,4,5,7,8] -1494c1584,1585 +1519c1606,1607 < 58 THROW(IllegalArgumentException) --- > ? STORE_LOCAL(value e) > ? JUMP 8 -1495a1587,1592 +1520a1609,1614 > 8: > 62 LOAD_MODULE object Predef > 62 CONSTANT("RuntimeException") > 62 CALL_METHOD scala.Predef.println (dynamic) > 62 JUMP 2 > -1543c1640 +1568c1662 < blocks: [1,2,3,4] --- > blocks: [1,2,3,4,5] -1563c1660,1665 +1588c1682,1687 < 229 THROW(MyException) --- > ? JUMP 5 @@ -384,19 +394,19 @@ > ? LOAD_LOCAL(variable monitor1) > 228 MONITOR_EXIT > 228 THROW(Throwable) -1569c1671 +1594c1693 < ? THROW(Throwable) --- > 228 THROW(Throwable) -1597c1699 +1622c1721 < locals: value args, variable result, variable monitor2, variable monitorResult1 --- > locals: value exception$1, value args, variable result, variable monitor2, variable monitorResult1 -1599c1701 +1624c1723 < blocks: [1,2,3,4] --- > blocks: [1,2,3,4,5] -1622c1724,1732 +1647c1746,1754 < 245 THROW(MyException) --- > ? STORE_LOCAL(value exception$1) @@ -408,7 +418,7 @@ > ? LOAD_LOCAL(variable monitor2) > 244 MONITOR_EXIT > 244 THROW(Throwable) -1628c1738 +1653c1760 < ? THROW(Throwable) --- > 244 THROW(Throwable) diff --git a/test/files/run/streams.check b/test/files/run/streams.check index 032057d4a1..db6d2eebab 100644 --- a/test/files/run/streams.check +++ b/test/files/run/streams.check @@ -1,5 +1,8 @@ Stream() Stream() +true +true +true Array(1) Stream(1, ?) @@ -8,12 +11,21 @@ Stream() Stream() Stream(1) Stream() +true +true +true +true Array(1, 2) Stream(2) Stream() Stream(1, 2) Stream() +true +true +true +true +true 999 512 @@ -23,4 +35,5 @@ Stream(100001, ?) true true 705082704 -6 + +true diff --git a/test/files/run/streams.scala b/test/files/run/streams.scala index dc5d0204ac..03b2622edd 100644 --- a/test/files/run/streams.scala +++ b/test/files/run/streams.scala @@ -2,6 +2,9 @@ object Test extends App { val s0: Stream[Int] = Stream.empty println(s0.take(1)) println(s0.takeWhile(_ > 0)) + println(s0.lengthCompare(-5) > 0) + println(s0.lengthCompare(0) == 0) + println(s0.lengthCompare(5) < 0) println val s1 = Stream.cons(1, Stream.empty) @@ -12,6 +15,10 @@ object Test extends App { println(s1.drop(2)) println(s1.drop(-1)) println(s1.dropWhile(_ > 0)) + println(s1.lengthCompare(-5) > 0) + println(s1.lengthCompare(0) > 0) + println(s1.lengthCompare(1) == 0) + println(s1.lengthCompare(5) < 0) println val s2 = s1.append(Stream.cons(2, Stream.empty)) @@ -20,6 +27,11 @@ object Test extends App { println(s2.drop(2)) println(s2.drop(-1)) println(s2.dropWhile(_ > 0)) + println(s2.lengthCompare(-5) > 0) + println(s2.lengthCompare(0) > 0) + println(s2.lengthCompare(1) > 0) + println(s2.lengthCompare(2) == 0) + println(s2.lengthCompare(5) < 0) println val s3 = Stream.range(1, 1000) //100000 (ticket #153: Stackoverflow) @@ -29,7 +41,7 @@ object Test extends App { def powers(x: Int) = if ((x&(x-1)) == 0) Some(x) else None println(s3.flatMap(powers).reverse.head) - // large enough to generate StackOverflows (on most systems) + // large enough to generate StackOverflows (on most systems) // unless the following methods are tail call optimized. val size = 100000 @@ -44,6 +56,11 @@ object Test extends App { val arr = new Array[Int](size) Stream.from(1).take(size).copyToArray(arr, 0) - // dropRight terminates - println(Stream from 1 dropRight 1000 take 3 sum) + println + + // ticket #6415 + lazy val x = { println("evaluated"); 1 } + val s4 = 0 #:: x #:: Stream.empty + + println(s4.isDefinedAt(0)) } diff --git a/test/files/run/t2544.check b/test/files/run/t2544.check index 716b146ac4..d19538dca3 100644 --- a/test/files/run/t2544.check +++ b/test/files/run/t2544.check @@ -2,8 +2,8 @@ 2 3 3 --2 --2 +-1 +-1 1 1 0 diff --git a/test/files/run/t2544.scala b/test/files/run/t2544.scala index 7e7cfeb357..6bee2f1082 100644 --- a/test/files/run/t2544.scala +++ b/test/files/run/t2544.scala @@ -1,19 +1,25 @@ object Test { object Foo extends Seq[Int] { def apply(i: Int) = i - def length = 4 + def length = 5 def iterator = Iterator(0,1,2,3,4) } + def lengthEquiv(result: Int) = println( + if (result < 0) -1 + else if (result == 0) 0 + else 1 + ) + def main(args: Array[String]) = { println(Foo indexWhere(_ >= 2,1)) println(Foo.toList indexWhere(_ >= 2,1)) println(Foo segmentLength(_ <= 3,1)) println(Foo.toList segmentLength(_ <= 3,1)) - println(Foo lengthCompare 7) - println(Foo.toList lengthCompare 7) - println(Foo lengthCompare 2) - println(Foo.toList lengthCompare 2) - println(Foo lengthCompare 5) - println(Foo.toList lengthCompare 5) + lengthEquiv(Foo lengthCompare 7) + lengthEquiv(Foo.toList lengthCompare 7) + lengthEquiv(Foo lengthCompare 2) + lengthEquiv(Foo.toList lengthCompare 2) + lengthEquiv(Foo lengthCompare 5) + lengthEquiv(Foo.toList lengthCompare 5) } -}
\ No newline at end of file +} diff --git a/test/files/run/t6194.check b/test/files/run/t6194.check new file mode 100644 index 0000000000..b325f479d7 --- /dev/null +++ b/test/files/run/t6194.check @@ -0,0 +1 @@ +C:\FooBar\Java\includes\*.jar diff --git a/test/files/run/t6194.scala b/test/files/run/t6194.scala new file mode 100644 index 0000000000..ced3259427 --- /dev/null +++ b/test/files/run/t6194.scala @@ -0,0 +1,8 @@ +import scala.tools.nsc.util._ + +object Test { + def main(args: Array[String]): Unit = { + val cp = ClassPath.expandPath("""C:\FooBar\Java\includes\*.jar""") mkString java.io.File.pathSeparator + println(cp) + } +} diff --git a/test/files/run/t6911.scala b/test/files/run/t6911.scala new file mode 100644 index 0000000000..dd81257a96 --- /dev/null +++ b/test/files/run/t6911.scala @@ -0,0 +1,24 @@ +trait K { + case class CC(name: String) + case class DD[+A1, A2](x1: A1, x2: A2) +} + +object Test { + object Foo extends K + object Bar extends K + + val b1 = Foo.CC("b") + val b2 = Bar.CC("b") + val b3 = Foo.CC("b") + + val c1 = Foo.DD("a", 5) + val c2 = Bar.DD("a", 5) + val c3 = Foo.DD("a", 5) + + def main(args: Array[String]): Unit = { + assert(b1 != b2, ((b1, b2))) // false under 2.9, true under 2.10-RC5 + assert(b1 == b3, ((b1, b3))) + assert(c1 != c2, ((c1, c2))) + assert(c1 == c3, ((c1, c3))) + } +} |