summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | | | * | | | | | | | SI-6666 Account for nesting in setting INCONSTRUCTORJason Zaugg2013-02-025-4/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This flag is calcualed in Namers, and assigned to class and module class symbols that are defined in self/super-calls, and in early definitions. For example, class D is INCONSTRUCTOR in each case below: class C extends Super({class D; ()}) class C(a: Any) { def this(a: Any) = this({class D; ()}) } new { val x = { class D; () } with Super(()) But, the calculation of this flag failed to account for nesting, so it was not set in cases like: class C(a: Any) { def this(a: Any) = this({val x = {class D; ()}; x}) } This patch searches the enclosing context chain, rather than just the immediate context. The search is terminated at the first non term-owned context. In the following example, this avoids marking `E` as INCONSTRUCTOR; only `D` should be. class C extends Super({class D { class E }; ()}) This closes SI-6259 and SI-6506, and fixes one problem in the recently reopened SI-6957.
| | | | * | | | | | | | Move a test from pos to run to highlight bytecode deficiencies.Jason Zaugg2013-01-281-5/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We'll address them in subsequent commits.
| | | * | | | | | | | | SI-6888 Loosen criteria for $outer search.Jason Zaugg2013-02-053-1/+25
| | | | |_|_|_|_|_|/ / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to cater for nested classes with names that end with '$', which lead to ambiguity when unmangling expanded names. In: class X { object $ } We end up with: orginalName(X$$$$$outer) = $$$outer This change modifies `outerSource` to consider that to be and outer accessor name. It is a piecemeal fix, and no doubt there are other nasty surprises in store for those inclined to flash their $$$ in identifier names, but the method changed is not used widely and this solves the reported problem. SI-2806 remains open to address the deeper problem.
| | * | | | | | | | | introduces an exhaustive java-to-scala testEugene Burmako2013-02-053-17/+262
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Originally composed to accommodate pull request feedback, this test has uncovered a handful of bugs in FromJavaClassCompleter, namely: * SI-7071 non-public ctors get lost * SI-7072 inner classes are read incorrectly I'm leaving the incorrect results of FromJavaClassCompleters in the check file, so that we get notified when something changes there.
| | * | | | | | | | | SI-6989 privateWithin is now populated in reflectEugene Burmako2013-02-047-17/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Runtime reflection in JavaMirrors previously forgot to fill in privateWithin when importing Java reflection artifacts. Now this is fixed.
| * | | | | | | | | | Merge commit '33608ffb28' into merge-210Paul Phillips2013-02-090-0/+0
| |\ \ \ \ \ \ \ \ \ \ | | | |_|_|_|/ / / / / | | |/| | | | | | | |
| | * | | | | | | | | Merge pull request #2068 from scalamacros/ticket/7064Adriaan Moors2013-02-0744-470/+333
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | [nomaster] SI-7064 Reflection: forward compat for 2.10.1
| | | * | | | | | | | | [nomaster] verifies compat with 2.10.0Eugene Burmako2013-02-052-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes sure that the compiler understands the 2.10.0 format of super constructor calls after the recent revert from the typemacro-compatible format.
| | | * | | | | | | | | [nomaster] Revert "refactors handling of parent types"Eugene Burmako2013-02-0521-400/+225
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 40063b0009d55ed527bf1625d99a168a8faa4124. Conflicts: src/compiler/scala/tools/nsc/ast/parser/Parsers.scala src/compiler/scala/tools/nsc/typechecker/Typers.scala
| | | * | | | | | | | | [nomaster] Revert "introduces global.pendingSuperCall"Eugene Burmako2013-02-0519-100/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 0ebf72b9498108e67c2133c6522c436af50a18e8. Conflicts: src/compiler/scala/tools/nsc/typechecker/Typers.scala src/reflect/scala/reflect/internal/Trees.scala
| | | * | | | | | | | | [nomaster] Revert "DummyTree => CannotHaveAttrs"Eugene Burmako2013-02-059-25/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 838cbe623c142b7005446793948097f679219fe3. Conflicts: src/reflect/scala/reflect/api/Trees.scala
| | | * | | | | | | | | [nomaster] Revert "more ListOfNil => Nil"Eugene Burmako2013-02-054-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit bb9adfbd76af0a0281912fcef4bcaca409a7c9a3.
| | | * | | | | | | | | [nomaster] Revert "s/SuperCallArgs/SuperArgs/"Eugene Burmako2013-02-052-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 2621918870e531b7a9bcccdf14bddea9b89804b2.
| | | * | | | | | | | | [nomaster] revives BuildUtils.emptyValDefEugene Burmako2013-02-052-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That method was unnecessary in the first place, because we already had emptyValDef in scala.reflect.api.Trees: https://github.com/scala/scala/blob/v2.10.0/src/reflect/scala/reflect/api/Trees.scala#L2367. That's a rudiment from the times when we were unsure what to put into scala.reflect.base and what goes into scala.reflect.api. Unfortunately, it's not just a harmless extraneous method. Reifier v2.10.0 emits `u.build.emptyValDef` when it needs to reify `emptyValDef`. Therefore we need to restore it to be forward compatible. However we don't need to rollback the changes to the reifier v2.10.1, which now simply calls `u.emptyValDef`, because, as mentioned above, that `emptyValDef` was already there in v2.10.0.
| | | * | | | | | | | | [nomaster] removes Tree.canHaveAttrsEugene Burmako2013-02-051-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This forward compatibility fix is very easy. Have a new method in 2.10.1? Don't expose it in the public API, and you won't have any problems.
| | | * | | | | | | | | [nomaster] doesn't touch NonemptyAttachmentsEugene Burmako2013-02-051-0/+2
| | | | |_|_|_|_|/ / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NonemptyAttachments in macro API used to be Attachments$NonemptyAttachments. However it's private, so noone outside scala.reflect.macros can access it, making it ineligible for the incompatibility criterion.
| | * | | | | | | | | Merge pull request #2080 from JamesIry/2.10.x_SI-5017James Iry2013-02-063-29/+0
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | [nomaster] Revert "SI-5017 Poor performance of :+ operator on Arrays"
| | | * | | | | | | | | [nomaster] Revert "SI-5017 Poor performance of :+ operator on Arrays"James Iry2013-02-063-29/+0
| | |/ / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 02b2da63409af6a28824cbb74d00d0ec04518c8d.
| | * | | | | | | | | Merge pull request #2064 from JamesIry/2.10.x_SI-6773James Iry2013-02-065-27/+19
| | |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | [nomaster] SI-6773 Makes the SI-6150 changes binary compatible with 2.10
| | | * | | | | | | | | [nomaster] SI-6773 Makes the SI-6150 changes binary compatible with 2.10James Iry2013-02-055-27/+19
| | | | |_|/ / / / / / | | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The back ported fix of SI-6150 1f0e4880ad7ad816fd82c04f6814c5b165f86981 broke binary compatibility. This commit fixes that by removing the IndexedSeqFactory class and copy/pasting its one method around to everything that extended it then re-adds some inner classes needed by the binary compatibility checker.
| * | | | | | | | | | Merge commit '558c059227' into merge-210Paul Phillips2013-02-093-13/+61
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * commit '558c059227': SI-7060 More conservative dead code elim marking Conflicts: src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala
| | * | | | | | | | | Merge pull request #2059 from VladUreche/issue/7060James Iry2013-02-063-31/+79
| | |\ \ \ \ \ \ \ \ \ | | | |/ / / / / / / / | | |/| | | | | | | | SI-7060 More conservative dead code elim marking
| | | * | | | | | | | SI-7060 More conservative dead code elim markingVlad Ureche2013-02-053-31/+79
| | | |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In dead code elimination, a DROP instruction that gets marked as useful and can be reached via several paths needs to also mark all the reaching definitions as useful, else we'll get unbalanced stacks on the two paths. A simplistic example: ``` BB1: CALL X // useful, leaves a LONG on the stack JUMP BB3 BB2: LOAD_FIELD Y // not useful JUMP BB3 BB3: DROP LONG // useful because "CALL X" is useful // but unless we mark "LOAD_FIELD Y" as useful too // we'll get unbalanced stacks when reaching BB3 ``` This patch addresses the unbalanced stack problem by adding all the reaching definitions of a useful DROP as useful instructions too.
| * | / / / / / / / Merge commit '81d8f9d3da' into merge-210Paul Phillips2013-02-0979-310/+1148
|/| | | | | | | | | | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * excluded from merge: [nomerge] SI-6667 Demote a new ambiguity error to a lint warning. Revert "SI-6422: add missing Fractional and Integral alias in scala package" [backport] SI-6482, lost bounds in extension methods. * commit '81d8f9d3da': (31 commits) reflecting @throws defined in Scala code pullrequest feedback SI-5833 Fixes tail-of-Nil problem in RefinedType#normalizeImpl SI-6017 Scaladoc: Show all letters without dangling links SI-6017 Generate Scaladoc's index links in Scala side SI-5313 Minor code cleanup for store clobbering SI-5313 Test clobbers on the back edge of a loop SI-7033 Be symful when creating factory methods. SI-7022 Additional test case for value class w. bounds SI-7039 unapplySeq result type independent of subpattern count evicts javac-artifacts.jar SI-7008 @throws annotations are now populated in reflect Fix SI-6578. Deprecated `askType` because of possible race conditions in type checker. SI-7029 - Make test more robust SI-7029 - Makes sure that uncaught exceptions are propagated to the UEH for the global ExecutionContext SI-6941 tests SI-6686 drop valdef unused in flatMapCond's block ... Conflicts: src/compiler/scala/tools/nsc/backend/opt/DeadCodeElimination.scala src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala src/reflect/scala/reflect/internal/Definitions.scala
| * | | | | | | | Merge pull request #2051 from adriaanm/ticket-7039Adriaan Moors2013-02-044-29/+55
| |\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-7039 unapplySeq result type independent of subpattern count
| | * | | | | | | | SI-7039 unapplySeq result type independent of subpattern countAdriaan Moors2013-02-014-29/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug in the implementation of the `unapplySeq` part of the spec below. An `unapply` method with result type `R` in an object `x` matches the pattern `x(p_1, ..., p_n)` if it takes exactly one argument and, either: - `n = 0` and `R =:= Boolean`, or - `n = 1` and `R <:< Option[T]`, for some type `T`. The argument pattern `p1` is typed in turn with expected type `T`. - Or, `n > 1` and `R <:< Option[Product_n[T_1, ..., T_n]]`, for some types `T_1, ..., T_n`. The argument patterns `p_1, ..., p_n` are typed with expected types `T_1, ..., T_n`. An `unapplySeq` method in an object `x` matches the pattern `x(p_1, ..., p_n)` if it takes exactly one argument and its result type is of the form `Option[S]`, where either: - `S` is a subtype of `Seq[U]` for some element type `U`, (set `m = 0`) - or `S` is a `ProductX[T_1, ..., T_m]` and `T_m <: Seq[U]` (`m <= n`). The argument patterns `p_1, ..., p_n` are typed with expected types `T_1, ..., T_m, U, ..., U`. Here, `U` is repeated `n-m` times.
| * | | | | | | | | Merge pull request #2062 from JamesIry/2.10.x_SI-5833Adriaan Moors2013-02-041-2/+2
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-5833 Fixes tail-of-Nil problem in RefinedType#normalizeImpl
| | * | | | | | | | | SI-5833 Fixes tail-of-Nil problem in RefinedType#normalizeImplJames Iry2013-02-041-2/+2
| | | |_|_|_|_|_|/ / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | RefinedType#normalizeImpl was checking to see if the flattened list of parents had an empty tail then pulling the head if so. But if the list was empty then boom. This fix makes it check if the whole list has length 1 instead. Empty lists will flow through to the rest the logic which has no problems with Nil.
| * | | | | | | | | Merge pull request #2063 from retronym/ticket/6667-2.10.x-revertAdriaan Moors2013-02-045-3/+12
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | [nomerge] SI-6667 Demote a new ambiguity error to a lint warning.
| | * | | | | | | | | [nomerge] SI-6667 Demote a new ambiguity error to a lint warning.Jason Zaugg2013-02-045-3/+12
| | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the interests of not breaking source compability. A few projects are relying on this bug. Should not be merged to master.
| * | | | | | | | | Merge pull request #2050 from kzys/jira-6017-v2Adriaan Moors2013-02-044-20/+30
| |\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-6017 Scaladoc: Fix dangling links on index.html
| | * | | | | | | | | SI-6017 Scaladoc: Show all letters without dangling linksKato Kazuyoshi2013-02-033-9/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use <span> instead of <a href="..."> if there is no page on the letter.
| | * | | | | | | | | SI-6017 Generate Scaladoc's index links in Scala sideKato Kazuyoshi2013-02-033-19/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is no reason to do it in JavaScript.
| * | | | | | | | | | Merge pull request #2048 from dragos/issue/fix-SI-6578Adriaan Moors2013-02-044-26/+6
| |\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Fix SI-6578. Deprecated `askType` because of possible race conditions in...
| | * | | | | | | | | | Fix SI-6578. Deprecated `askType` because of possible race conditions in ↵Iulian Dragos2013-02-014-26/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | type checker. AskType triggers type-checks the given source and returns a typed tree. If that source is already loaded (a precondition), the background compilation loop may actually be compiling that same source. The new type checker run may then get into an inconsistent state and try to add twice the same synthetic members, like `canEqual`. Most of the times, `askLoadedTyped` (that waits for the type checker to finish, and returns the most recent typed tree) *is* the right way to go. Removed occurrences of the deprecated method in tests and interactive.REPL. @reviewby @huitseeker,@odersky
| * | | | | | | | | | | Merge pull request #2040 from scalamacros/ticket/7008Adriaan Moors2013-02-0423-16/+227
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7008 @throws annotations are now populated in reflect
| | * | | | | | | | | | | reflecting @throws defined in Scala codeEugene Burmako2013-02-044-0/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per Jason's comment: How are Scala classes containing @throws annots treated? I can't figure out whether we pickle the annotation in addition to adding the exception to the signature. If we do, might we end up with duplicate annotations in runtime reflection? This warrants a test. See the context of the discussion here: https://github.com/scala/scala/pull/2040/files#r2874769. No, we won't end up with duplicates, because classes defined in Scala are loaded in a different completer. But I'll add a test - you can never have too many of those.
| | * | | | | | | | | | | pullrequest feedbackEugene Burmako2013-02-043-6/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | https://github.com/scala/scala/pull/2040
| | * | | | | | | | | | | evicts javac-artifacts.jarEugene Burmako2013-02-0115-8/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Apparently, the usual _1, _2, _3... naming scheme also works for java files, which need to be compiled together with partests. This allows us to get rid of javac-artifacts.jar.
| | * | | | | | | | | | | SI-7008 @throws annotations are now populated in reflectEugene Burmako2013-02-017-11/+54
| | |/ / / / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Runtime reflection in JavaMirrors previously forgot to fill in @throws when importing Java reflection artifacts. Now this is fixed. Note that generic exception types used in `throws` specifications will be garbled (i.e. erased), because we don't use `getGenericExceptionTypes` in favor of just `getExceptionTypes` to stay compatible with the behavior of ClassfileParser. That's a bug, but a separate one and should be fixed separately. Also note that this commit updated javac-artifacts.jar, because we need to test how reflection works with javac-produced classfiles. The sources that were used to produce those classfiles can be found in the jar next to the classfiles.
| * | | | | | | | | | | Merge pull request #1992 from retronym/ticket/7033Adriaan Moors2013-02-043-6/+22
| |\ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7033 Be symful when creating factory methods.
| | * | | | | | | | | | | SI-7033 Be symful when creating factory methods.Jason Zaugg2013-02-023-6/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Implicit class factory methods were synthesizing the reference to the class as `Ident(classDef.name)`, which was unhygienic in case of `implicit class X[X]`. To use symbols without causing a cycle, I switched from `REF(symbol)` to `Ident(symbol)`. The former calls into: at scala.reflect.internal.TreeGen.mkAttributedSelect(TreeGen.scala:184) at scala.reflect.internal.TreeGen.mkAttributedRef(TreeGen.scala:124) at scala.reflect.internal.TreeGen.mkAttributedRef(TreeGen.scala:130) at scala.tools.nsc.ast.TreeDSL$CODE$.REF(TreeDSL.scala:307) which forces the info of enclosing module and forms a cycle.
| * | | | | | | | | | | | Merge pull request #2060 from Blaisorblade/topic/2.10.x-fix-bcJames Iry2013-02-041-3/+0
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|_|/ / / / / / | |/| | | | | | | | | | | Revert "SI-6422: add missing Fractional and Integral alias in scala package"
| | * | | | | | | | | | | Revert "SI-6422: add missing Fractional and Integral alias in scala package"Paolo G. Giarrusso2013-02-041-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit c6866a28faf67cd2e455f9a0a829859a73e38819 because it adds two members to the API and so breaks forward binary compatibility. Attention: this is only intended for 2.10.x, not for 2.11.
| * | | | | | | | | | | | Merge pull request #2001 from JamesIry/2.10.x_SI-5313Grzegorz Kossakowski2013-02-043-13/+175
| |\ \ \ \ \ \ \ \ \ \ \ \ | | |_|_|_|_|/ / / / / / / | |/| | | | | | | | | | | SI-5313 Do not eliminate stores that potentially wipe referenes
| | * | | | | | | | | | | SI-5313 Minor code cleanup for store clobberingJames Iry2013-02-021-15/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Used withDefault on the localStores map to simplify the code. Added a type alias for the (BasicBlock, Int) tuple type that was used throughout the code to represent the location of an instruction.
| | * | | | | | | | | | | SI-5313 Test clobbers on the back edge of a loopJames Iry2013-02-022-2/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I realized I was missing a test case for a local store early in a loop that was unused but turned out to be a clobber of a store later in the loop.
| | * | | | | | | | | | | SI-5313 Eliminate more stores by replacing clobbers with null storesJames Iry2013-01-303-51/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an unused store clobbers a previous store, replace it with storing a null. Don't mark clobbers as "used" so that the original clobber and all following clobbers can still be eliminated.
| | * | | | | | | | | | | SI-5313 Do not eliminate stores that potentially wipe referenesJames Iry2013-01-283-7/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Storing to local variables of reference or array type is indirectly observable because it potentially allows gc to collect an object. So this commit makes DeadCodeElimination mark a store necessary if it assigns to a local that potentially stored by a previous necessary store.
| * | | | | | | | | | | | Merge pull request #2039 from scalamacros/ticket/7046Eugene Burmako2013-02-043-1/+20
| |\ \ \ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | SI-7046 reflection now auto-initializes knownDirectSubclasses