summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3986 from som-snytt/issue/6502-no-cpGrzegorz Kossakowski2014-10-075-71/+74
|\ | | | | SI-6502 Repl reset/replay take settings args
| * SI-6502 Repl reset/replay take settings argsSom Snytt2014-09-225-70/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reset and replay commands take arbitrary command line args. When settings args are supplied, the compiler is recreated. For uniformity, the settings command performs only the usual arg parsing: use -flag:true instead of +flag, and clearing a setting is promoted to the command line, so that -Xlint: is not an error but clears the flags. ``` scala> maqicode.Test main null <console>:8: error: not found: value maqicode maqicode.Test main null ^ scala> :reset -classpath/a target/scala-2.11/sample_2.11-1.0.jar Resetting interpreter state. Forgetting all expression results and named terms: $intp scala> maqicode.Test main null Hello, world. scala> val i = 42 i: Int = 42 scala> s"$i is the loneliest numbah." res1: String = 42 is the loneliest numbah. scala> :replay -classpath "" Replaying: maqicode.Test main null Hello, world. Replaying: val i = 42 i: Int = 42 Replaying: s"$i is the loneliest numbah." res1: String = 42 is the loneliest numbah. scala> :replay -classpath/a "" Replaying: maqicode.Test main null <console>:8: error: not found: value maqicode maqicode.Test main null ^ Replaying: val i = 42 i: Int = 42 Replaying: s"$i is the loneliest numbah." res1: String = 42 is the loneliest numbah. ``` Clearing a clearable setting: ``` scala> :reset -Xlint:missing-interpolator Resetting interpreter state. scala> { val i = 42 ; "$i is the loneliest numbah." } <console>:8: warning: possible missing interpolator: detected interpolated identifier `$i` { val i = 42 ; "$i is the loneliest numbah." } ^ res0: String = $i is the loneliest numbah. scala> :reset -Xlint: Resetting interpreter state. Forgetting this session history: { val i = 42 ; "$i is the loneliest numbah." } scala> { val i = 42 ; "$i is the loneliest numbah." } res0: String = $i is the loneliest numbah. ```
| * SI-6502 Remove cp command as unworkableSom Snytt2014-09-211-1/+5
| | | | | | | | | | | | | | | | People expect to change the class path midstream. Let's disabuse them by removing the broken command. The internals are deprecated.
* | Merge pull request #4016 from lrytz/t8731Grzegorz Kossakowski2014-10-0712-19/+93
|\ \ | | | | | | SI-8731 warning if @switch is ignored
| * | SI-8731 warning if @switch is ignoredLukas Rytz2014-10-0612-19/+93
| | | | | | | | | | | | | | | For matches with two or fewer cases, @switch is ignored. This should not happen silently.
* | | Merge pull request #4033 from retronym/ticket/8888Lukas Rytz2014-10-073-1/+14
|\ \ \ | | | | | | | | SI-8888 Avoid ClassFormatError under -Ydelambdafy:method
| * | | SI-8888 Avoid ClassFormatError under -Ydelambdafy:methodJason Zaugg2014-10-073-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The pattern matcher phase (conceivably, among others) can generate code that binds local `Ident`s symbolically, rather than according to the lexical scope. This means that a lambda can capture more than one local of the same name. In the enclosed test case, this ends up creating the following tree after delambdafy [[syntax trees at end of delambdafy]] // delambday-patmat-path-dep.scala matchEnd4({ case <synthetic> val x1: Object = (x2: Object); case5(){ if (x1.$isInstanceOf[C]()) { <synthetic> val x2#19598: C = (x1.$asInstanceOf[C](): C); matchEnd4({ { (new resume$1(x2#19598, x2#19639): runtime.AbstractFunction0) }; scala.runtime.BoxedUnit.UNIT }) } else case6() }; ... }) ... <synthetic> class resume$1 extends AbstractFunction0 { <synthetic> var x2: C = null; <synthetic> var x2: C = null; ... } After this commit, the var members of `resume$1` are given fresh names, rather than directly using the name of the captured var: <synthetic> var x2$3: C = null; <synthetic> var x2$4: C = null;
* | | | Merge pull request #3954 from gbasler/ticket/7746-2.11Grzegorz Kossakowski2014-10-0611-63/+129
|\ \ \ \ | | | | | | | | | | SI-7746 fix unspecifc non-exhaustiveness warnings and non-determinism in pattern matcher (2.11)
| * | | | Cleanup `LinkedHashSet` fixes and replace them with `Set` (i.e., backGerard Basler2014-10-052-22/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | to initial implementation). Assuming that the DPLL procedure does not run into max recursion depth, that workaround is not needed anymore, since the non- determinism has been fixed.
| * | | | SI-7746 patmat: fix non-determinism, infeasible counter examplesGerard Basler2014-10-0511-41/+115
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes non-determinism within the DPLL algorithm and disallows infeasible counter examples directly in the formula. The function to compute all solutions was flawed and thus only returned a subset of the solutions. The algorithm would stop too soon and thus depending on the ordering of the symbols return more or less solutions. I also added printing a warning when the search was stopped because the max recursion depth was reached. This is very useful as an explanation of spuriously failing regression tests, since less counter examples might be reported. In such a case the recursion depth should be set to infinite by adding `-Ypatmat-exhaust-depth off`. The mapping of the solutions of the DPLL algorithm to counter examples has been adapted to take the additional solutions from the solver into account: Consider for example `t8430.scala`: ```Scala sealed trait CL3Literal case object IntLit extends CL3Literal case object CharLit extends CL3Literal case object BooleanLit extends CL3Literal case object UnitLit extends CL3Literal sealed trait Tree case class LetL(value: CL3Literal) extends Tree case object LetP extends Tree case object LetC extends Tree case object LetF extends Tree object Test { (tree: Tree) => tree match {case LetL(CharLit) => ??? } } ``` This test contains 2 domains, `IntLit, CharLit, ...` and `LetL, LetP, ...`, the corresponding formula to check exhaustivity looks like: ``` V1=LetC.type#13 \/ V1=LetF.type#14 \/ V1=LetL#11 \/ V1=LetP.type#15 /\ V2=BooleanLit.type#16 \/ V2=CharLit#12 \/ V2=IntLit.type#17 \/ V2=UnitLit.type#18 /\ -V1=LetL#11 \/ -V2=CharLit#12 \/ \/ ``` The first two lines assign a value of the domain to the scrutinee (and the correponding member in case of `LetL`) and prohibit the counter example `LetL(CharLit)` since it's covered by the pattern match. The used Boolean encoding allows that scrutinee `V1` can be equal to `LetC` and `LetF` at the same time and thus, during enumeration of all possible solutions of the formula, such a solution will be found, since only one literal needs to be set to true, to satisfy that clause. That means, if at least one of the literals of such a clause was in the `unassigned` list of the DPLL procedure, we will get solutions where the scrutinee is equal to more than one element of the domain. A remedy would be to add constraints that forbid both literals to be true at the same time. His is infeasible for big domains (see `pos/t8531.scala`), since we would have to add a quadratic number of clauses (one clause for each pair in the domain). A much simpler solution is to just filter the invalid results. Since both values for `unassigned` literals are explored, we will eventually find a valid counter example.
* | | | | Merge pull request #4023 from retronym/topic/time-me-outGrzegorz Kossakowski2014-10-061-1/+1
|\ \ \ \ \ | | | | | | | | | | | | Increase REPL startup timeout to avoid test failures
| * | | | | Increase REPL startup timeout to avoid test failuresJason Zaugg2014-10-011-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Under load on Jenkins, we've been seeing: ``` % diff /localhome/jenkins/a/workspace/scala-nightly-auxjvm-2.12.x/jdk/jdk7/label/auxjvm/test/files/run/t4542-run.log /localhome/jenkins/a/workspace/scala-nightly-auxjvm-2.12.x/jdk/jdk7/label/auxjvm/test/files/run/t4542.check @@ -2,75 +2,14 @@ Type in expressions to have them evaluated. Type :help for more information. scala> @deprecated("foooo", "ReplTest version 1.0-FINAL") class Foo() { java.util.concurrent.TimeoutException: Futures timed out after [60 seconds] at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:219) at scala.concurrent.impl.Promise$DefaultPromise.ready(Promise.scala:153) at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95) at scala.concurrent.Await$$anonfun$ready$1.apply(package.scala:95) at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53) at scala.concurrent.Await$.ready(package.scala:95) at scala.tools.nsc.interpreter.ILoop.processLine(ILoop.scala:431) at scala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:457) at scala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:875) ``` This commit bumps the timeout up be a factor of ten to try to restore that comforting green glow to https://scala-webapps.epfl.ch/jenkins/view/2.N.x
* | | | | | Merge pull request #4019 from Ichoran/issue/6192Lukas Rytz2014-10-061-1/+7
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-6192 Range: to, until and end are confusing
| * | | | | | SI-6192 Range: to, until and end are confusingRex Kerr2014-09-301-1/+7
| |/ / / / / | | | | | | | | | | | | | | | | | | Added some documentation explaining what the role of `end` is.
* | | | | | Merge pull request #4027 from dragos/doc/reinstate-testLukas Rytz2014-10-065-0/+0
|\ \ \ \ \ \ | | | | | | | | | | | | | | Revert "Disable flaky presentation compiler test."
| * | | | | | Revert "Disable flaky presentation compiler test."Iulian Dragos2014-10-035-0/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 8986ee4fd56c53d563165d992185c6c532f35790. Scaladoc seems to work reliably for 2.11.x. We are using it in the IDE builds and haven't noticed any flakiness, so we'd like to get reinstate this test.
* | | | | | | Merge pull request #4029 from retronym/ticket/8291Lukas Rytz2014-10-063-1/+17
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8291 Fix implicitNotFound message with type aliases
| * | | | | | | SI-8291 Fix implicitNotFound message with type aliasesJason Zaugg2014-10-053-1/+17
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This pattern of code is typically a bug: if (f(tp.typeSymbol)) { g(tp.typeArgs) } Intead, one needs to take the base type of `tp` wrt `tp.typeSymbol`. This commit does exactly that when formatting the `@implicitNotFound` custom error message. Patch found on the back of an envelope in the handwriting of @adriaanm
* | | | | | | Merge pull request #3982 from retronym/ticket/8845Lukas Rytz2014-10-062-0/+18
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | SI-8845 Control flow pot-pourri crashes GenASM, but not -BCode
| * | | | | | SI-8845 Control flow pot-pourri crashes GenASM, but not -BCodeJason Zaugg2014-10-012-0/+18
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Given that we'll switch to GenBCode in 2.12, the test case showing the bug is fixed under that option is all I plan to offer for this bug. The flags file contains `-Ynooptimize` to stay locked into `GenBCode`.
* | | | | | Merge pull request #3995 from retronym/ticket/8267Grzegorz Kossakowski2014-10-042-5/+55
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-8267 Avoid existentials after polymorphic overload resolution
| * | | | | | SI-8267 Avoid existentials after polymorphic overload resolutionJason Zaugg2014-10-022-5/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ... which can be introduced by `memberType` for methods with parameter types dependent on class type parameters. Here's an example of such a type: ``` scala> class Bippy { trait Foo[A] } defined class Bippy scala> final class RichBippy[C <: Bippy with Singleton](val c1: C) { | def g[A](x: A)(ev: c1.Foo[A]): Int = 2 | } defined class RichBippy scala> :power ** Power User mode enabled - BEEP WHIR GYVE ** ** :phase has been set to 'typer'. ** ** scala.tools.nsc._ has been imported ** ** global._, definitions._ also imported ** ** Try :help, :vals, power.<tab> ** scala> val g = typeOf[RichBippy[_]].member(TermName("g")) g: $r.intp.global.Symbol = method g scala> val c = new Bippy c: Bippy = Bippy@92e2c93 scala> val memberType = typeOf[RichBippy[c.type]].memberType(g) memberType: $r.intp.global.Type = ([A](x: A)(ev: _7.c1.Foo[A])Int) forSome { val _7: RichBippy[c.type] } ``` In this example, if we were to typecheck the selection `new RichBippy[c.type].g` that existential type would be short lived. Consider this approximation of `Typer#typedInternal`: ```scala val tree1: Tree = typed1(tree, mode, ptWild) val result = adapt(tree1, mode, ptPlugins, tree) ``` Given that `tree1.tpe` is not an overloaded, adapt will find its way to: ``` case tp if mode.typingExprNotLhs && isExistentialType(tp) => adapt(tree setType tp.dealias.skolemizeExistential(context.owner, tree), mode, pt, original) ``` Which would open the existential as per: ``` scala> memberType.skolemizeExistential res2: $r.intp.global.Type = [A](x: A)(ev: _7.c1.Foo[A])Int ``` However, if do have overloaded alternatives, as in the test case, we have to remember to call `adapt` again *after* we have picked the winning alternative. We actually don't have a centralised place where overload resolution occurs, as the process differs depending on the context of the selection. (Are there explicit type arguments? Inferred type arguments? Do we need to use the expected type to pick a winner?) This commit finds the existing places that call adapt after overloade resolution and routes those calls through a marker method. It then adds one more call to this in `inferPolyAlternatives`, which fixes the bug.
* | | | | | | Merge pull request #4024 from retronym/ticket/8217Grzegorz Kossakowski2014-10-047-8/+26
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | SI-8217 allow abstract type members in objects
| * | | | | | SI-8217 allow abstract type members in objectsPaolo G. Giarrusso2014-10-017-8/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, abstract type members were allowed in objects only when inherited, but not when declared directly. This inconsistency was not intended. In dotty, abstract type members are allowed in values and represent existentials; so upon discussion, it was decided to fix things to conform to dotty and allow such type members. Adriaan also asked to keep rejecting abstract type members in methods even though they would conceivably make sense. Discussions happened on #3407, scala/scala-dist#127. This code is improved from #3442, keeps closer to the current logic, and passes tests. Existing tests that have been converted to `pos` tests show that this works, and a new test has been added to show that local aliases (ie term-owned) without a RHS are still rejected.
* | | | | | | Merge pull request #4021 from retronym/ticket/8869Jason Zaugg2014-10-023-0/+19
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8869 Prevent ill-kindedness in type lambdas
| * | | | | | | SI-8869 Prevent ill-kindedness in type lambdasJason Zaugg2014-10-013-0/+19
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When type checking an type application, the arguments are allowed to be of kinds other than *. This leniency is controlled by the `ContextMode` bit `TypeConstructorAllowed`. (More fine grained checking of matching arity a bounds of type constructors is deferred until the refchecks phase to avoid cycles during typechecking.) However, this bit is propagated to child contexts, which means that we fail to report this error in the lexical context marked here: T[({type x = Option}#x)] `-------------' This commit resets this bit to false in any child context relates to a different tree from its parent.
* | | | | | | Merge pull request #4022 from retronym/ticket/8870Jason Zaugg2014-10-021-5/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8870 Fix markup errors in the Types section of the spec
| * | | | | | | SI-8870 Fix markup errors in the Types section of the specJason Zaugg2014-10-011-5/+5
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bad: `T'_n` Good: `T_n'`
* | | | | | | Merge pull request #4020 from Ichoran/issue/8624Jason Zaugg2014-10-011-0/+5
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8624 PriorityQueue documentation is not clear enough
| * | | | | | | SI-8624 PriorityQueue documentation is not clear enoughRex Kerr2014-09-301-0/+5
| | |_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | Added a paragraph explaining that dequeue is the only way to get your elements in priority order.
* | | | | | | Merge pull request #4008 from gourlaysama/wip/junit-2Jason Zaugg2014-10-0113-7/+4
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Better ant / junit interaction
| * | | | | | | Better ant / junit interactionAntoine Gourlay2014-09-2913-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently junit test sources are always rebuilt, that's wasteful. The second dependency on the junit task is there so that the first can be skipped if sources haven't changed. Also normalize package names versus location in the `test/junit` folder: ant isn't very clever when it comes to selectively recompiling tests, so now editing a test will only cause that one to be recompiled (instead of ~13 files every time). This makes TDD with junit even faster.
* | | | | | | | Merge pull request #4010 from lrytz/t8087Jason Zaugg2014-10-012-5/+24
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | SI-8087 keep annotations on mixed-in private[this] fields
| * | | | | | | SI-8087 keep annotations on mixed-in private[this] fieldsLukas Rytz2014-09-302-5/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Related to SI-2511 / eea7956, which fixed the same issue for non `private[this]` fields. If you have trait T { private[this] val f = 0 } class C extends T Mixin geneartes an accessor method `T.f` with owner `T`. When generating the field in `C`, the Mixin.mixinTraitMembers calls `fAccessor.accessed`. The implementation of `accessed` does a lookup for a member named `"f "` (note the space). The bug is that `private[this]` fields are not renamed to have space (`LOCAL_SUFFIX_STRING`) in their name, so the accessed was not found, and no annotations were copied from it.
* | | | | | | | Merge pull request #4018 from retronym/ticket/8774-concurrent-modificationLukas Rytz2014-09-301-2/+4
|\ \ \ \ \ \ \ \ | |_|_|/ / / / / |/| | | | | | | Don't remove elements from a map during iteration.
| * | | | | | | Don't remove elements from a map during iteration.Jason Zaugg2014-09-301-2/+4
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Doing so relies on implementation details which might change. See #3911 / SI-8774.
* | | | | | | Merge pull request #4011 from lrytz/t8445-6622Jason Zaugg2014-09-304-0/+72
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8445, SI-6622 test cases, already fixed
| * | | | | | | SI-8445, SI-6622 test cases, already fixedLukas Rytz2014-09-294-0/+72
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | They were most likely fixed in #3931 / e3107465c3. The test case for SI-6622 is taken from Jason's PR #2654. I adjusted the EnclosingMethod to be `null` in two places in the check file, for the classes that are owned by fields (not methods).
* | | | | | | Merge pull request #4013 from retronym/ticket/8868Lukas Rytz2014-09-307-2/+34
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8868 Fix unpickling of local dummy symbols
| * | | | | | | SI-8868 Fix unpickling of local dummy symbolsJason Zaugg2014-09-307-2/+34
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These pop up as the owner of symbols in annotation arguments, such as the ones introduced by the names/defaults desugaring. The first two test cases here motivate the two patches to Unpicker. The third requires both fixes, but exploits the problem directly, without using `@deprecated` and named arguments. See also 14fa7be / SI-8708 for a recently remedied kindred bug.
* | | | | | | Merge pull request #3996 from gourlaysama/wip/specJason Zaugg2014-09-2914-11/+690
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | spec: generated TOC, with linkable headers and return to top links
| * | | | | | | spec: a header that links to the index, with a scala logoAntoine Gourlay2014-09-236-5/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ...and a Scala favicon.
| * | | | | | | spec: a print stylesheet to remove the TOC when printingAntoine Gourlay2014-09-232-0/+16
| | | | | | | |
| * | | | | | | spec: generated TOC with linkable headersAntoine Gourlay2014-09-229-7/+615
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a table of contents to the spec, with a way to get the link of a header on hover (like on GitHub) and a "return to top" small icon at the end of each section. Jekyll generates the H1-level table of contents, and then the current one is expended using jQuery all the way down to H5 titles. Examples and H6 headers are ignored. GitHub's (MIT licensed) octicons are used for nice "link" and "up" icons.
* | | | | | | Merge pull request #4009 from gourlaysama/wip/test-flagsJason Zaugg2014-09-294-4/+0
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Cleanup a few compiler flags in test/files/
| * | | | | | | Cleanup a few flags in test/files/Antoine Gourlay2014-09-294-4/+0
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * String interpolation isn't Xexperimental anymore A few useless Xexperimental flags in tests were left behind by 6917cca, after string interpolation was made non-experimental in 983f414. * things added under -Xfuture in 2.10 are very much Xpresent now, the flag isn't needed anymore.
* | | | | | | Merge pull request #4007 from retronym/topic/bump-timeoutGrzegorz Kossakowski2014-09-291-1/+1
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | Bump timeout in interactive tests from 10s -> 30s.
| * | | | | | Bump timeout in interactive tests from 10s -> 30s.Jason Zaugg2014-09-291-1/+1
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Seeing too many of these failures on our build servers. https://scala-webapps.epfl.ch/jenkins/view/2.N.x/job/scala-nightly-auxjvm-2.11.x/148/jdk=jdk8,label=auxjvm/console This is most likely due to load on the machines.
* | | | | | Merge pull request #4006 from retronym/topic/defragilityJason Zaugg2014-09-282-3/+2
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Avoid test fragility to changes in Predef
| * | | | | Avoid test fragility to changes in PredefJason Zaugg2014-09-282-3/+2
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | The check file used to contain a stack trace entry from Predef with a line number. I've made the macro fail in a different manner that avoids this fragility.