summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | | * | | | | resetAttrs now always erases This.tpeEugene Burmako2013-02-173-4/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The symbol of This, if it points to a package class, isn't touched, just as usual, so that our Select(Select(Select(...))) => This(...) optimization works fine with attr reset. However the tpe is now erased, so that subsequent reflective compilation doesn't spuriously fail when seeing that some subtrees of a tree being compiled are typed. Erasing the tpe doesn't pose even a tiniest problem, because, as it can be seen in typedThis, type is trivially reconstructed from the symbol.
| | * | | | | | Merge pull request #2117 from gkossakowski/issue/SI-7107Grzegorz Kossakowski2013-02-261-0/+3
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Fix SI-7107: scala now thinks every exception is polymorphic
| | | * | | | | | Fix SI-7107: scala now thinks every exception is polymorphicGrzegorz Kossakowski2013-02-251-0/+3
| | |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need to force info of the `cls` in `parseExceptions` because we pass `cls` to `addThrowsAnnotation` which in turn calls `Symbol.isMonomorphicType` that relies on a symbol being initialized to give right answers. In the future we should just clean up implementation of `isMonomorphicType` method to not rely on a symbol being initialized as there's no inherent reason for that in most cases. In cases where there's reason for that we should just force the initialization. This patch does not come with a test-case because it's hard to reproduce not initialized symbols in partest reliably.
| | * | | | | | Merge pull request #2149 from khernyo/issue/7074Grzegorz Kossakowski2013-02-253-1/+25
| | |\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-7074 Fix xml attribute sorting
| | | * | | | | | SI-7074 Fix xml attribute sortingSzabolcs Berecz2013-02-243-1/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sorting the attributes of an xml element could drop some of the attributes. It was caused by the incorrect use of MetaData#copy() to concatenate "smaller" with the rest of the attributes. The MetaData#copy() method is similar to the following hypothetical method on a List: def copy(other: List): List = head :: other The fix prepends all elements of "smaller" to the rest of the attributes in the proper order.
| | * | | | | | | Merge pull request #2159 from scalamacros/topic/7112-followup-210xJames Iry2013-02-241-1/+1
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | fixes the test for SI-7112
| | | * | | | | | | fixes the test for SI-7112Eugene Burmako2013-02-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Freshly released Java 1.6.0_41 for OSX fails with "IllegalAccessError: tried to access class JavaSimpleEnumeration_1 from class sun.proxy.$Proxy6", and rightfully so, because that class isn't public. I think I will avoid the usual "how could this even work before" in this commit message.
| * | | | | | | | | No-op merge of [nomaster] subset of 2.10.1.Adriaan Moors2013-02-270-0/+0
| |\ \ \ \ \ \ \ \ \ | | | |_|_|_|_|/ / / | | |/| | | | | | | | | | | | | | | | | These fixed binary compatibility issues that are out of scope for 2.11.
| | * | | | | | | | check scala-swing for binary compatibilityAdriaan Moors2013-02-121-0/+31
| | | | | | | | | |
| | * | | | | | | | [nomaster] Revert "Added a Swing ColorChooser wrapper"Adriaan Moors2013-02-123-120/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 08ab007c5c97f153902c4ac58f87e30fbf7cf99f. This is necessary to maintain binary compatibility with 2.10.0.
| | * | | | | | | | [nomaster] Revert "Added a Swing PopupMenu wrapper"Adriaan Moors2013-02-123-116/+0
| | | |_|_|_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bdff881f8a15d4de0c0ff2aa2427f0d8244d2d42. This is necessary to maintain binary compatibility with 2.10.0.
| | * | | | | | | Merge pull request #2103 from adriaanm/bin-compatv2.10.1-RC1Adriaan Moors2013-02-1120-236/+792
| | |\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Forward and backward binary compatibility between 2.10.0 and 2.10.1-RC1
| | | * | | | | | | [nomaster] Revert "SI-6548 reflection now correctly enters jinners"Adriaan Moors2013-02-107-64/+99
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 54a84a36d5b435a787d93ca48d45399136c7e162. This is necessary to maintain binary compatibility with 2.10.0. run/t6989.check had to be updated as it also (indirectly) tested SI-6548 Conflicts: test/files/lib/javac-artifacts.jar.desired.sha1 test/files/run/t6548.check test/files/run/t6548/Test_2.scala
| | | * | | | | | | [nomaster] inline importPrivateWithinFromJavaFlags into SymbolTableAdriaan Moors2013-02-093-28/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reworks 02ed5fb so that we don't change JavaUniverse's super classes. This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] Revert "cosmetic renamings in runtime reflection"Adriaan Moors2013-02-094-54/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0429f0fd9224499cd8b606490d04b1a8dcffbca8. This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] refactor AdaptedForkJoinTask, uncaughtExceptionHandlerAdriaan Moors2013-02-092-28/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inlined AdaptedForkJoinTask, made uncaughtExceptionHandler private[this]. This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] can't add new class BatchingExecutorAdriaan Moors2013-02-093-130/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] bring back SerializeStart from fa3b8040ebAdriaan Moors2013-02-092-10/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] duplicate tailImpl as a private methodAdriaan Moors2013-02-093-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reworks d526f8bd74. This is necessary to maintain binary compatibility with 2.10.0. matchName="scala.collection.mutable.MutableList.tailImpl" problemName=MissingMethodProblem
| | | * | | | | | | [nomaster] Revert "SI-4664 Make scala.util.Random Serializable"Adriaan Moors2013-02-093-25/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also revert "SI-4664 [Make scala.util.Random Serializable] Add test case" This reverts commit 0b92073a38f9d1823f051ac18173078bfcfafc8a. This reverts commit 2aa66bec86fd464712b0d15251cc400ff9d52821. This is necessary to maintain binary compatibility with 2.10.0.
| | | * | | | | | | [nomaster] Revert "Fixes SI-6521, overrides Range#head to be faster"Adriaan Moors2013-02-092-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit a557a973608a75c7a02f251bbcf49fe6f6b6655e. This is necessary to maintain binary compatibility with 2.10.0. Mima says: matchName="scala.collection.immutable.Range.head" problemName=IncompatibleResultTypeProblem The bridge method appeared because result is now Int, whereas the super-method's result type erases to Object
| | | * | | | | | | [nomaster] run mima both ways, filter out failuresAdriaan Moors2013-02-093-3/+557
| | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using @gkossakowski's contribution to mima (in 0.1.5-SNAPSHOT), make sure bc.run doesn't fail by filtering out all binary incompatibilities. Each subsequent commit will comment out the filters it makes irrelevant, until we only need to filter out permitted binary incompatibilities. We only allow binary incompatibilities in scala.reflect.internal.
* | | | | | | | | Merge pull request #2177 from JamesIry/master_SI-7159Grzegorz Kossakowski2013-02-287-38/+47
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | SI-7159 Distinguish between assignability and subtyping in TypeKinds
| * | | | | | | | SI-7159 Distinguish between assignability and sub typing in TypeKindsJames Iry2013-02-284-18/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TypeKinds said SHORT <:< INT. But that's not quite true on the JVM. You can assign SHORT to INT, but you can't assign an ARRAY[SHORT] to ARRAY[INT]. Since JVM arrays are covariant it's clear that assignability and subtyping are distinct on the JVM. This commit adds an isAssignable method and moves the rules about the int sized primitives there. ICodeCheckers, ICodeReader, and GenICode are all updated to use isAssignable instead of <:<.
| * | | | | | | | SI-7159 Remove erroneous INT <:< LONG in TypeKindsJames Iry2013-02-262-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TypeKinds said INT <:< LONG. But that's not true on the JVM, you need a coercion to move up. And GenICode#adapt was checking for just that special case. This commit removes the INT <:< LONG rule and then removes the special case from GenICode#adapt.
| * | | | | | | | SI-7159 Prepare to remove erroneous INT <:< LONG in TypeKindsJames Iry2013-02-265-28/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In preparation for dealing with a problem in TypeKinds, this commit does some cleanup of code related to doing coercions. * Comments are added to clarify. * A println when converting between BOOL and anything else is removed and the code is allowed to flow through to an assertion. * Assertions are refactored to use string interpolation. * A few pattern matches were reformulated to equivalent variants In addition, a test is created for SI-107, the bug that necessitated the special case in GenICode#adapt for LONG coercion
| * | | | | | | | SI-7159 Remove unreachable cases in GenICode#adaptJames Iry2013-02-261-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit removes some unreachable code in GenICode#adapt. It's hard to prove that these cases are unreachable, but they do appear to be and I wasn't able to find a way to get to them. Code archaeology was un-fruitful; they're very old. Which may mean they are legacies from a time when Null and Nothing types weren't fully baked.
* | | | | | | | | Merge pull request #2171 from paulp/pr/stabilityPaul Phillips2013-02-272-12/+5
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Reconcile definitions of stability.
| * | | | | | | | | Reconcile definitions of stability.Paul Phillips2013-02-262-12/+5
| | | | | | | | | |
* | | | | | | | | | Merge pull request #2170 from rkuhn/wip-duration-sleep-∂πJames Iry2013-02-261-2/+3
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | relax time constraint in duration-tck.scala (for Windows)
| * | | | | | | | | | relax time constraint in duration-tck.scala (for Windows VMs)Roland2013-02-261-2/+3
| |/ / / / / / / / /
* | | | | | | | | | Merge pull request #2169 from JamesIry/master_SI-7181Grzegorz Kossakowski2013-02-266-97/+279
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | SI-7181 Eliminate unnecessary duplicates of finally blocks
| * | | | | | | | | SI-7181 Eliminate unnecessary duplication of finally blocksJames Iry2013-02-264-83/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main body of a try and each exception handler were getting a copy of the finally block for the "normal" flow case (i.e. where they don't throw an uncaught exception or use "return" to exit early). But that's not necessary. With this commit the try body and each exception handler can all jump to the same copy of the finally block on a normal exit. A byte code test is included to ensure we're getting fewer copies of the finally block. inline-ex-handlers.check is updated because the icode is a bit different without the extra finally block copies.
| * | | | | | | | | SI-7181 Prepare to remove duplicated finally blocksJames Iry2013-02-253-21/+157
| |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As a first step towards fixing 7181, this commit improves the comments and variable names around generating try/catch/finally blocks in GenICode and adds a test verifying the current functionality of try/catch/finally blocks
* | | | | | | | | Merge pull request #2158 from JamesIry/master_7006Grzegorz Kossakowski2013-02-266-203/+223
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / |/| | | | | | | | SI-7006 Eliminate NOPs and unreachable code
| * | | | | | | | SI-7006 Simplify jump-only block destination determinationJames Iry2013-02-253-114/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With proper reachability analysis, the code for finding the final destination of jump-only blocks was more complicated than needed. This commit simplifies and speeds up that process using a standard Tortoise and Hare algorithm on a Map from jump-only blocks to their immediate destinations. Test t7006 is increased a bit to make sure we don't get stuck on infinite loops and to make sure we're deleting all but the essential jump.
| * | | | | | | | SI-7006 Eliminate unreachable blocksJames Iry2013-02-254-63/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GenASM was doing a bunch of stuff to eliminate unreachable exception handlers, but it was still leaving behind other unreachable blocks, for instance a finally block associated with an exception handler that got removed would still be left lying around. ASM would in turn turn those into a big pile of NOPs, which just take up space uselessly. This commit replaces all the logic for eliding exception handlers with a single unreachable block remover that catches unused exception handlers and a whole lot more.
| * | | | | | | | SI-7006 Recognize more jump only blocksJames Iry2013-02-252-26/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During ASM code emission we would recognize a block that consisted of ICode-only artifacts (ENTER_SCOPE, EXIT_SCOPE, and LOAD_EXCEPTION) followed by a jump. But we weren't using the same logic to recognize all jump-only blocks. So jump-elision wasn't removing them. And that in fact was why the ASM code emission had to do its special case. This commit makes all jump-only block recognition use the same logic: a jump-only block is one that has 0 or more ICode-only instructions followed by a JUMP. It does't necessarily have to start with a JUMP. There's now a debugWarning if the old NOP emitting code is triggered and test t6102 is enhanced to error if that warning occurs.
| * | | | | | | | SI-7006 Improve jump-elision code in GenASMJames Iry2013-02-252-40/+36
|/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | While working on SI-7006 I found a O(N*M) loop in jump-elision that should be O(N). This commit clean that up. It also improves the diagnostics in Members#removeBlock.
* | | | | | | | Merge pull request #2165 from retronym/topic/empty-parenPaul Phillips2013-02-25294-1613/+1612
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Spring cleaning
| * | | | | | | | Address some ScaladocrotJason Zaugg2013-02-2522-57/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - @param tags whose name drifted from the corresponding parameter - Remove or complete a few stray stub comments (@param foo ...) - Use @tparam where appropriate.
| * | | | | | | | Modernize legacy backquotes in comments.Jason Zaugg2013-02-2519-52/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Was: ``blah'' Now: `blah`
| * | | | | | | | Remove redundant explicit returns.Jason Zaugg2013-02-2511-16/+16
| | | | | | | | |
| * | | | | | | | Don't wrap an array just to get its length.Jason Zaugg2013-02-258-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use .length directly, avoiding the allocation of the WrappedArray.
| * | | | | | | | Remove redundant 'val' from case class params.Jason Zaugg2013-02-2519-33/+33
| | | | | | | | |
| * | | | | | | | Fix two malformed format strings.Jason Zaugg2013-02-242-2/+2
| | | | | | | | |
| * | | | | | | | More explicit empty paren lists in method calls.Jason Zaugg2013-02-24133-550/+552
| | | | | | | | |
| * | | | | | | | Reorder to avoid code appearing like a forward reference.Jason Zaugg2013-02-241-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It isn't, because LOOP_HEADER and friends are compile time constants. But I'd argue that its clearer not to rely on that here.
| * | | | | | | | Banish needless semicolons.Jason Zaugg2013-02-24104-519/+538
| | | | | | | | |
| * | | | | | | | Be explicit about empty param list calls.Jason Zaugg2013-02-2466-390/+390
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the exception of toString and the odd JavaBean getter.