summaryrefslogtreecommitdiff
path: root/test/files/run
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #2725 from som-snytt/topic/repl-paste-fileAdriaan Moors2013-07-124-0/+52
|\ | | | | SI-4684 Repl supports whole-file paste (rebased)
| * SI-4684 Repl supports raw pasteSom Snytt2013-07-112-0/+28
| | | | | | | | | | | | | | | | By special request, :paste -raw simply compiles the pasted code to the repl output dir. The -raw flag means no wrapping; the pasted code must be ordinary top level Scala code, not script.
| * SI-4684 Repl supports whole-file pasteSom Snytt2013-07-112-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a file argument to the :paste command which loads the file's contents as though entered in :paste mode. The :paste command is replayable. Samples, including companions defined together: ``` scala> :paste junk.scala File contains no code: junk.scala scala> :paste no-file.scala That file does not exist scala> :paste obj-repl.scala Pasting file obj-repl.scala... <console>:2: error: expected start of definition private foo = 7 ^ scala> :paste hw-repl.scala Pasting file hw-repl.scala... The pasted code is incomplete! <pastie>:5: error: illegal start of simple expression } ^ scala> :replay Replaying: :paste junk.scala File contains no code: junk.scala Replaying: :paste obj-repl.scala Pasting file obj-repl.scala... defined trait Foo defined object Foo Replaying: Foo(new Foo{}) res0: Int = 7 ```
* | Fix repl-save testSom Snytt2013-07-112-24/+18
|/ | | | | | | | Make the test a SessionTest, where the file name appears just once, in the transcript, and is trivially compared against itself. The contents of the saved file are still output and compared with the check file.
* Merge pull request #2697 from som-snytt/issue/6419-repl-saveAdriaan Moors2013-07-102-0/+34
|\ | | | | SI-6419 Repl save session command
| * SI-6419 Repl save session commandSom Snytt2013-07-012-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A simple save command to write out the current replay stack. ``` scala> val i = 7 i: Int = 7 scala> val j= 8 j: Int = 8 scala> i * j res0: Int = 56 scala> :save multy.script scala> :q apm@mara:~/tmp$ cat multy.script val i = 7 val j= 8 i * j apm@mara:~/tmp$ skala Welcome to Scala version 2.11.0-20130626-204845-a83ca5bdf7 (OpenJDK 64-Bit Server VM, Java 1.7.0_21). Type in expressions to have them evaluated. Type :help for more information. scala> :load multy.script Loading multy.script... i: Int = 7 j: Int = 8 res0: Int = 56 scala> :load multy.script Loading multy.script... i: Int = 7 j: Int = 8 res1: Int = 56 ```
* | Merge pull request #2701 from som-snytt/issue/4594-repl-settingsAdriaan Moors2013-07-101-0/+26
|\ \ | | | | | | SI-4594 Repl settings command
| * | SI-4594 Repl settings commandSom Snytt2013-07-041-0/+26
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A settings command for the rest of us. The usual command line options are used, except that boolean flags are enabled with +flag and disabled with -flag. ``` scala> :settings +deprecation scala> new BigInt(java.math.BigInteger.TEN) { } <console>:8: warning: inheritance from class BigInt in package math is deprecated: This class will me made final. new BigInt(java.math.BigInteger.TEN) { } ^ res0: BigInt = 10 scala> :settings -deprecation scala> new BigInt(java.math.BigInteger.TEN) { } res1: BigInt = 10 ``` Multivalue "colon" options can be reset by supplying no values after the colon. This behavior is different from the command line. ``` scala> 1 toString warning: there were 1 feature warning(s); re-run with -feature for details res0: String = 1 scala> :settings -language:postfixOps scala> 1 toString res1: String = 1 scala> :settings -d = . -encoding = UTF-8 -explaintypes = false -language = List(postfixOps) -nowarn = false scala> :settings -language: scala> :settings -d = . -encoding = UTF-8 -explaintypes = false -language = List() -nowarn = false ```
* | Merge pull request #2714 from scalamacros/topic/quasiquotesAdriaan Moors2013-07-103-0/+24
|\ \ | | | | | | Quasiquotes
| * | macro impls can now return subtypes of c.TreeEugene Burmako2013-07-103-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | 10229316db allowed macro impls to take and return values of type c.Tree in addition to the usual c.Expr. However it didn't take into account that it is often useful to return subtypes of trees (e.g. with quasiquotes that expand into expressions typed as precisely as possible). This patch fixes that oversight.
* | | Merge pull request #2717 from retronym/ticket/6574Adriaan Moors2013-07-102-0/+8
|\ \ \ | | | | | | | | SI-6574 Support @tailrec for extension methods.
| * | | SI-6574 Support @tailrec for extension methods.Jason Zaugg2013-07-102-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, when the body of an extension method is transplanted to the companion object, recursive calls point back to the original instance method. That changes during erasure, but this is too late for tail call analysis/elimination. This commit eagerly updates the recursive calls to point to the extension method in the companion. It also removes the @tailrec annotation from the original method.
* | | | Merge pull request #2650 from paulp/issue/6221Adriaan Moors2013-07-083-0/+33
|\ \ \ \ | |_|/ / |/| | | SI-6221 inference with Function1 subtypes.
| * | | SI-6221 inference with Function1 subtypes.Paul Phillips2013-06-133-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There appears to be no upper bound on the number of places we have to remove calls to typeSymbol and introduce calls to baseType. This one was type inference for function parameter types: worked when expected type was A => B, but not if there was an implicit conversion from A => B to the expected type.
* | | | Merge pull request #2660 from retronym/ticket/7582Adriaan Moors2013-07-0311-0/+92
|\ \ \ \ | | | | | | | | | | SI-7582 Only inline accessible calls to package-private Java code
| * | | | SI-7582 Only inline accessible calls to package-private Java codeJason Zaugg2013-06-198-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two problems here. The inliner was using `isPrivate` / `isProtected` to determine access. The fallthrough considered things to be (bytecode) public. This is okay in practice for Scala code, which never emits package private code. Secondly, we must check accessibility of the called symbol *and* its owner. This case is tested in `run/t7582b`. This commit tightens the check for Java defined symbols: a) check the owner, and b) don't assume that `! isPrivate` is accessible.
| * | | | SI-7582 ClassfileParser: populate privateWithin of Java module classJason Zaugg2013-06-163-0/+42
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | The `privateWithin` attribute of Java companion module classes was correctly set under joint compilation (ie, when using JavaParser), but not under separate compilation. This commit remedies this. The test covers variety of Java symbols.
* | | | Merge pull request #2699 from adriaanm/fix-2637-windowsJason Zaugg2013-07-021-1/+2
|\ \ \ \ | | | | | | | | | | Use forward slash in #2637's test on windows
| * | | | Use forward slash in #2637's test on windowsAdriaan Moors2013-07-011-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Don't use toString to output file names in tests, its output is platform dependent -- use `testIdent` instead.
* | | | | Merge pull request #2694 from adriaanm/masterGrzegorz Kossakowski2013-07-011-0/+12
|\ \ \ \ \ | | | | | | | | | | | | Merge 2.10.x into master
| * \ \ \ \ Merge 2.10.x into masterAdriaan Moors2013-06-281-0/+12
| |\ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/compiler/scala/tools/nsc/typechecker/Duplicators.scala src/library/scala/concurrent/Future.scala test/files/jvm/scala-concurrent-tck.scala
| | * | | | SI-7571 Allow nesting of anonymous classes in value classesJason Zaugg2013-06-191-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 5d9cde105e added deep prohibition of nested classes within a value class. This has the undesirable side effect of prohibiting partial functions literals in method bodies of a value class. The intention of that prohibition was to avoid problems in code using Type Tests, such as: class C(val inner: A) extends AnyVal { class D } def foo(a: Any, other: C) = a match { case _ : other.D } Here, the pattern usually checks that `a.$outer == other`. But that is incongruent with the way that `other` is erased to `A`. However, not all nested classes could lead us into this trap. This commit slightly relaxes the restriction to allow anonymous classes, which can't appear in a type test. The test shows that the translation generates working code.
| | * | | | [backport] SI-7498 ParTrieMap.foreach no longer crashesAleksandar Prokopec2013-06-091-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the `split` method of the `ParTrieMap` iterator threw an exception when splitting a splitter that iterated over nodes whose hash codes collide. This was due to reusing the iterator of the list of colliding keys rather than creating a new splitter. This commit changes the `subdivide` method to create a new iterator using the factory method of the current trie map iterator rather than returning a `LinearSeqLike` iterator.
* | | | | | Merge pull request #2692 from soc/SI-7591Adriaan Moors2013-07-013-15/+2
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | SI-7591 Migrate command-line parsing to s.t.cmd
| * | | | | SI-7591 Minor cleanupsSimon Ochsenreither2013-07-013-15/+2
| |/ / / /
* | | | | Merge pull request #2620 from magarciaEPFL/backendish33Adriaan Moors2013-07-011-0/+1
|\ \ \ \ \ | |/ / / / |/| | | | new bytecode emitter, GenBCode (11th attempt)
| * | | | more informative name for backend-selection via command-lineMiguel Garcia2013-06-271-1/+1
| | | | |
| * | | | new bytecode emitter, GenBCode, for now under a flagMiguel Garcia2013-06-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GenBCode is a drop-in replacement for GenASM with several advantages: - faster: ICode isn't necessary anymore. Instead, the ASTs delivered by CleanUp (an expression language) are translated directly into a stack-language (ASM Tree nodes) - future-proofing for Java 8 (MethodHandles, invokedynamic). - documentation included, shared mutable state kept to a minimum, all contributing to making GenBCode more maintainable than its counterpart (its counterpart being GenICode + GenASM). A few tests are modified in this commit, for reasons given below. (1) files/neg/case-collision Just like GenASM, GenBCode also detects output classfiles differing only in case. However the error message differs from that of GenASM (collisions may be show in different order). Thus the original test now has a flags file containing -neo:GenASM and a new test (files/neg/case-collision2) has been added for GenBCode. The .check files in each case show expected output. (2) files/pos/t5031_3 Currently the test above doesn't work with GenBCode (try with -neo:GenBCode in the flags file) The root cause lies in the fix to https://issues.scala-lang.org/browse/SI-5031 which weakened an assertion in GenASM (GenBCode keeps the original assertion). Actually that ticket mentions the fix is a "workaround" (3) files/run/t7008-scala-defined This test also passes only under GenASM and not GenBCode, thus the flags file. GenASM turns a bling eye to: An AbstractTypeSymbol (SI-7122) has reached the bytecode emitter, for which no JVM-level internal name can be found: ScalaClassWithCheckedExceptions_1.E1 The error message above (shown by GenBCode) highlights there's no ScalaClassWithCheckedExceptions_1.E1 class, thus shouldn't show up in the emitted bytecode (GenASM emits bytecode that mentions the inexistent class).
* | | | | Merge pull request #2678 from soc/SI-7600Adriaan Moors2013-06-273-2/+16
|\ \ \ \ \ | | | | | | | | | | | | SI-7600 [Avian] Skip tests r/stream_length and r/t4294
| * | | | | SI-7600 [Avian] Skip tests r/stream_length and r/t4294Simon Ochsenreither2013-06-233-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The issue is that Avian's GC is currently not precise enough to determine the exact lifetime of each local/stack reference, and therefore considers the this reference to be reachable in situations where it could have been collected. This can cause issues (as seen in run/stream_length and run/t4294: `java.lang.OutOfMemoryError`) if code relies on the garbage collection of these values to keep memory consumption constant. This commit simply skips these two tests on Avian until the GC implementation is fixed.
* | | | | | Merge pull request #2669 from adriaanm/modularize-parsingAdriaan Moors2013-06-275-5/+5
|\ \ \ \ \ \ | | | | | | | | | | | | | | Modularize parsing
| * | | | | | Remove dependency on combinators from CommandLinerParser.Adriaan Moors2013-06-255-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tools.cmd.CommandLineParser uses a small hand-rolled parser TODO: replace partest's usage of scala.tools.nsc.util.CommandLine by scala.tools.cmd.CommandLine
* | | | | | | Merge pull request #2675 from soc/SI-7599Adriaan Moors2013-06-261-8/+12
|\ \ \ \ \ \ \ | |_|_|_|_|_|/ |/| | | | | | SI-7599 Modify methods to be non-tail-callable ...
| * | | | | | SI-7599 [Avian] Prevent TCO in test to inspect stackSimon Ochsenreither2013-06-261-8/+12
| | |/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | This commit modifies methods in the test to be non-tail-callable to prevent Avian from eliding the stack frames we want to inspect.
* | | | | | Merge pull request #2659 from retronym/ticket/7584Adriaan Moors2013-06-253-0/+21
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | SI-7584 Fix typer regression with by-name parameter types
| * | | | | SI-7584 Test and spurious warning fix for by-name closuresJason Zaugg2013-06-163-0/+21
| | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | The enclosed test case exercises by-name closures, which were the subject of the previous commit. In the process, a spurious warning was eliminated.
* | | | | SI-7569 Fix end position in PostfixSelect treeFrançois Garillot2013-06-242-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | introduced in 5b54681: the end position of Postfix operators should take the operator length into account. review by @som-snytt
* | | | | Merge pull request #2637 from retronym/ticket/7439Paul Phillips2013-06-234-0/+40
|\ \ \ \ \ | |_|/ / / |/| | | | SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols. …
| * | | | SI-7439 Avoid NPE in `isMonomorphicType` with stub symbols.Jason Zaugg2013-06-134-0/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | `originalInfo` can return null for stub symbols; deal with that as we used to before a regression in 016bc3db. After this change, we can once again delete A_1.class and still compile code instantiating B_1. (A_1 is only referred to in a method signature of B_1 which is not called from our code.) scala> new B_1 warning: Class A_1 not found - continuing with a stub. res0: B_1 = B_1@5284b8f9 In practice, this situation arises when someone uses a third party class that was compiled against other libraries not avaialable on the current compilation classpath.
* | | | | SI-7292 Fixes test failures by updating *.check filesSimon Ochsenreither2013-06-212-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Looks like partest's confusion about / vs. \ was fixed between the original Jenkins run of the fix for SI-7292 and its merge.
* | | | | Merge pull request #2635 from retronym/ticket/7151Grzegorz Kossakowski2013-06-192-0/+30
|\ \ \ \ \ | | | | | | | | | | | | SI-7151 Emit final in bytecode for final inner classes.
| * | | | | SI-7151 Emit final in bytecode for final inner classes.Jason Zaugg2013-06-072-0/+30
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As we did before a regression in 18efdedfb / SI-5676. This commit tightens up the condition in which the FINAL modifier is omitted; it now *only* does this for the module classes of nested objects.
* | | | | Merge pull request #2657 from gkossakowski/junit-masterGrzegorz Kossakowski2013-06-191-174/+0
|\ \ \ \ \ | | | | | | | | | | | | Merge JUnit support into master
| * | | | | Move WeakHashSetTest to junit tests.Grzegorz Kossakowski2013-06-161-174/+0
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | The WeakHashSetTest was written as unit test but put into partest's `run` category as we were missing direct unit testing support. That got fixed so moving the test now.
* | | | | Merge pull request #2602 from t3hnar/Duration.toCoarsestAdriaan Moors2013-06-181-0/+28
|\ \ \ \ \ | | | | | | | | | | | | Add Duration.toCoarsest method
| * | | | | Add Duration.toCoarsest methodYaroslav Klymko2013-06-101-0/+28
| | | | | |
* | | | | | Merge pull request #2561 from soc/SI-7479Adriaan Moors2013-06-183-2/+58
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | SI-7479 Make test/files/run/tailcalls.scala pass on Avian
| * | | | | SI-7479 Make test/files/run/tailcalls.scala pass on AvianSimon Ochsenreither2013-06-102-1/+57
| | | | | | | | | | | | | | | | | | | | | | | | This commit modifies the test and check file to use the new diff filter.
| * | | | | SI-7479 Add avian option to partest's diff filter...Simon Ochsenreither2013-06-061-1/+1
| | |/ / / | |/| | | | | | | | | | | | | | | | | | ... so that the different results of the test on Avian can be specified in the check file.
* | | | | Merge branch '2.10.x' into topic/merge-v2.10.2-RC1-35-ga54d86b-to-masterJason Zaugg2013-06-1010-11/+3128
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | Conflicts: src/partest/scala/tools/partest/DirectTest.scala