summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #4784 from lrytz/merge-2.11-to-2.12-oct-5v2.12.0-M3Lukas Rytz2015-10-0534-69/+291
|\ | | | | Merge 2.11 to 2.12 oct 5
| * Merge commit '42cafa2' into merge-2.11-to-2.12-oct-5Lukas Rytz2015-10-050-0/+0
| |\
| | * Merge pull request #4782 from performantdata/issue/9502Lukas Rytz2015-10-051-3/+3
| | |\ | | | | | | | | SI-9502 Update Eclipse classpaths for scaladoc project.
| | | * SI-9502 Update Eclipse classpaths for scaladoc project.Michael2015-10-021-3/+3
| | | |
| * | | Merge commit 'bb3ded3' into merge-2.11-to-2.12-oct-5Lukas Rytz2015-10-0534-69/+291
|/| | | | |/ /
| * | Merge pull request #4770 from SethTisue/windows-testing-fixesLukas Rytz2015-10-055-17/+37
| |\ \ | | | | | | | | get test suite passing on Windows
| | * | add missing newline at eof in Scala sourceSeth Tisue2015-09-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | this was causing a mysterious compilation failure on Windows. (it may not have been a sufficient cause in itself -- which is why I say "mysterious" -- but in any case, adding the newline made the failure go away. and besides, the newline should be there. so here it is.) (it's tempting to make a big commit that fixes this in every source file. resisting for now)
| | * | fix bug in partest-extras causing test failures on WindowsSeth Tisue2015-09-251-2/+7
| | | | | | | | | | | | | | | | includes comment with full details
| | * | fix bug where -Xprint-icode leaked an InputStream and a file handleSeth Tisue2015-09-251-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | usually it hardly matters, but it's still a bug, and on Windows we can't delete an open file, so this can cause trouble for someone writing a test that relies on being able to generate icode files and then clean them up afterwards. (and in fact, two IcodeComparison-based tests were failing.)
| | * | add comments warning of InputStream leaks in scala.io.reflectSeth Tisue2015-09-251-0/+8
| | | |
| | * | SI-9472 make Git use LF line endings on WindowsSeth Tisue2015-09-251-13/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | this is mostly intended for .scala files, since because """ preserves line endings, so we get different results if source files have CRLF. this was making a few tests fail on Windows (because they used """ to enclose expected output)
| * | | Merge pull request #4776 from SethTisue/spec-8.3-tweakLukas Rytz2015-10-051-1/+1
| |\ \ \ | | | | | | | | | | tiny fix to spec (pattern matching section)
| | * | | tiny fix to spec (pattern matching section)Seth Tisue2015-09-301-1/+1
| | | | |
| * | | | Merge pull request #4777 from retronym/ticket/ide-1002552Lukas Rytz2015-10-051-1/+6
| |\ \ \ \ | | | | | | | | | | | | Improve implicits wildcard imports in the IDE
| | * | | | Improve implicits wildcard imports in the IDEJason Zaugg2015-09-301-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 451cab967a, I changed handling of selection of members from package objects so as to correctly use `somePackage.package.type` as the prefix, rather than `somePackage`. This fixed generic substitution for members inherited from superclasses of the package object. However, this has subtly changed the scope from which we collect implicits given a wildcard import. It seems that the IDE gets into a situation after a scaladoc lookup, which temporarily typechecks the sources of a package object of a third party library, in which the members of package object differ from the members of the enclosing package. The upshot of this was spurious type errors due to implicit search discarding an candidate implicit whose symbol is not matched by typechecking an identifier with the symbol's name at the implicit usage site (this is how we discard shadowed implicits.) I'd like to ge to the bottom of this, but in the meantime, I've found that we can fix the regression by looking up the implicit member symbols in the package, even while correctly using the package object as the prefix.
| * | | | | Merge pull request #4781 from pauldraper/pauldraper-future-sequence-2.11Lukas Rytz2015-10-051-1/+1
| |\ \ \ \ \ | | |_|_|_|/ | |/| | | | Avoid using ExecutionContext for Future.sequence of empty collection
| | * | | | Use InternalCallbackExecutor in Future.sequencePaul Draper2015-10-021-1/+1
| |/ / / / | | | | | | | | | | | | | | | | | | | | Previously _.result() was invoked in the "real" ExecutionContext, but this is an unnecessary use of the context.
| * | | | Merge pull request #4775 from SethTisue/issue/9495Jason Zaugg2015-09-301-0/+4
| |\ \ \ \ | | |/ / / | |/| | | SI-9495 Add note about configuring Ant for HTTP proxies
| | * | | SI-9495 Add note about configuring Ant for HTTP proxiesSeth Tisue2015-09-301-0/+4
| | |/ /
| * | | Merge pull request #4773 from ryanus/process-typoSeth Tisue2015-09-291-2/+2
| |\ \ \ | | | | | | | | | | Fix typo in Process.scala
| | * | | Fix typo in Process.scalaRyan Zhang2015-09-291-2/+2
| |/ / /
| * | | Merge pull request #4720 from retronym/ticket/9029Jason Zaugg2015-09-2915-36/+192
| |\ \ \ | | |/ / | |/| | SI-9029 Fix regression in extractor patterns
| | * | SI-9029 Remove unused methodJason Zaugg2015-09-221-5/+0
| | | |
| | * | SI-7850 Additional tests for name based patmatJason Zaugg2015-09-212-0/+28
| | | | | | | | | | | | | | | | Found these in an old review branch of mine.
| | * | SI-8127 Remove dead code in UncurryJason Zaugg2015-09-211-7/+0
| | | | | | | | | | | | | | | | | | | | It remains from the days of yore, when patterns survived this long in the compiler.
| | * | SI-8989 Better error message for invalid extractor patternJason Zaugg2015-09-216-8/+59
| | | |
| | * | SI-9029 Fix regression in extractor patternsJason Zaugg2015-09-217-16/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The unified treatment of classical and named-based pattern matching does not correctly handle the generalization of "tuple capture". By "tuple capture", I mean: ``` scala> object Extractor { def unapply(a: Any): Option[(Int, String)] = Some((1, "2")) } defined object Extractor scala> "" match { case Extractor(x: Int, y: String) => } scala> "" match { case Extractor(xy : (Int, String)) => } warning: there was one deprecation warning; re-run with -deprecation for details scala> :warnings <console>:9: warning: object Extractor expects 2 patterns to hold (Int, String) but crushing into 2-tuple to fit single pattern (SI-6675) "" match { case Extractor(xy : (Int, String)) => } ^ ``` Name based pattern matching, new in Scala 2.11, allows one to deconstruct the elements that structurally resembles `ProductN`: ``` scala> class P2(val _1: Int, val _2: String) defined class P2 scala> object Extractor { def unapply(a: Any): Option[P2] = Some(new P2(1, "2")) } defined object Extractor scala> "" match { case Extractor(x: Int, y: String) => } ``` However, attempting to extract the `P2` in its entirety leads to an internal error: ``` scala> "" match { case Extractor(p2: P2) => } <console>:10: warning: fruitless type test: a value of type (Int, String) cannot also be a P2 "" match { case Extractor(p2: P2) => } ^ <console>:10: error: error during expansion of this match (this is a scalac bug). The underlying error was: type mismatch; found : P2 required: (Int, String) "" match { case Extractor(p2: P2) => } ^ ``` Note that this match was legal and warning free in 2.10. This commit avoids the hard-coded assumption that the "tuple capture" results in a `TupleN`, and instead keeps track of the product-ish type from which we extracted the element types. I have also opted not to limit the deprecation warning to `TupleN` extractors.
| * | | Merge pull request #4674 from kirillkh/2.11.xSeth Tisue2015-09-251-4/+9
| |\ \ \ | | | | | | | | | | add support for MSys2 to bin/scala shell script
| | * | | tool-unix: support environments with TERM=cygwinkirillkh2015-08-091-1/+1
| | | | |
| | * | | add support for MSys2 to bin/scala shell scriptKirill Khazan2015-07-311-3/+8
| | | | |
| * | | | Merge pull request #4768 from SethTisue/fix-indentationSeth Tisue2015-09-241-1/+1
| |\ \ \ \ | | |_|_|/ | |/| | | fix indentation
| | * | | fix indentationSeth Tisue2015-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | this sneaked into 2d025fe2d0c9cd0e01e390055b0531166988f901
| * | | | Merge pull request #4766 from retronym/topic/completely-tweaksLukas Rytz2015-09-247-6/+38
| |\ \ \ \ | | |/ / / | |/| | | Improvements to REPL completion for annotations and string interpolation
| | * | | Improve presentation compilation of annotationsJason Zaugg2015-09-246-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A trio of problems were hampering autocompletion of annotations. First, given that that annotation is written before the annotated member, it is very common to end parse incomplete code that has a floating annotation without an anotatee. The parser was discarding the annotations (ie, the modifiers) and emitting an `EmptyTree`. Second, the presetation compiler was only looking for annotations in the Modifiers of a member def, but after typechecking annotations are moved into the symbol. Third, if an annotation failed to typecheck, it was being discarded in place of `ErroneousAnnotation`. This commit: - modifies the parser to uses a dummy class- or type-def tree, instead of EmptyTree, which can carry the annotations. - updates the locator to look in the symbol annotations of the modifiers contains no annotations. - uses a separate instance of `ErroneousAnnotation` for each erroneous annotation, and stores the original tree in its `original` tree.
| | * | | Support completion in erroneous string interpolation.Jason Zaugg2015-09-242-1/+9
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the code: ``` s"${fooo<CURSOR" ``` The parser treats `fooo` as a interpolator ID for the quote that we actually intend to end the interpolated string. Inserting a space (in addition to `__CURSOR__` that we already patch in to avoid parsing a partial identifier as a keyword), solves this problem.
* | | | Merge pull request #4769 from retronym/topic/anyrefmap-serializableLukas Rytz2015-10-052-2/+5
|\ \ \ \ | | | | | | | | | | Make AnyRefMap serializable
| * | | | Make AnyRefMap serializableJason Zaugg2015-09-252-2/+5
| | | | |
* | | | | Merge pull request #4772 from vjovanov/documentation/universalLukas Rytz2015-10-052-17/+8
|\ \ \ \ \ | | | | | | | | | | | | Fixing signatures of universal methods on `Any` and `AnyRef`.
| * | | | | Fixing signatures of universal methods on `Any` and `AnyRef`.Vojin Jovanovic2015-09-292-17/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Methods `getClass`, `isInstanceOf`, `asInstanceOf`, `notify`, `notifyAll`, and `wait` should be final. Method `getClass` should exist only on Any.
* | | | | | Merge pull request #4774 from retronym/ticket/9498Lukas Rytz2015-10-055-21/+88
|\ \ \ \ \ \ | | | | | | | | | | | | | | SI-9498 Avoid caching bug with pattern type variables
| * | | | | | SI-9498 Centralize and bolster TypeRef cache invalidationJason Zaugg2015-09-302-18/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I found another spot where I had previously needed to manually invalidate a TypeRef cache, and modified that to route through the newly added `invalidatedCaches`. `invalidatedCaches` now invalidates all the other caches I could find in our types of types. I opted for a non-OO approach here, as we've got a fairly intricate lattice of traits in place that define caches, and I didn't have the stomach for adding a polymorphic `Type::invalidatedCaches` with the the right sprinkling over overrides and super calls.
| * | | | | | SI-9498 Avoid caching bug with pattern type variablesJason Zaugg2015-09-304-15/+45
|/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Typechecking a pattern that defines a pattern type variable initially assigns abstract type symbol with open type bounds. Later on, pattern type inference kicks in to sharpen the type of the variable based on constraints imposed by the expected type (ie, the type of scrutinee of the pattern.) However, before inference does this, a `TypeRef` to the abstract type symbol can be queried for its base type with respect to some class, which leads to it populating an internal cache. This cache becomes stale when the underlying symbol has its type mutated. The repercussions of this meant that a subsequent call to `baseType` gave the wrong result (`NoType`), which lead to an `asSeenFrom` operation to miss out of substitution of a type variable. Note the appearance of `A` in the old type errors in the enclosed test case. This commit takes an approach similar to 286dafbd to invalidate caches after the mutation. I've routed both bandaids through the same first aid kit: I'm sure over time we'll add additional calls to this method, and additional cache invalidations within it.
* | | | | | Merge pull request #4762 from retronym/topic/completely-2.12Jason Zaugg2015-09-298-522/+8
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | Remove the old REPL tab completion implementation
| * | | | | Remove the old REPL tab completion implementationJason Zaugg2015-09-238-522/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We kept it around behind an option in 2.11.x, but we can jettison it in 2.12.x.
* | | | | | Merge pull request #4764 from lrytz/sd-33Jason Zaugg2015-09-243-26/+47
|\ \ \ \ \ \ | | | | | | | | | | | | | | SD-33 Consider methods annotated @CallerSensitive not safe to inline
| * | | | | | SD-33 Consider methods annotated @CallerSensitive not safe to inlineLukas Rytz2015-09-233-26/+47
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes https://github.com/scala/scala-dev/issues/33 Methods annotated `sun.reflect.CallerSensitive` should not be inlined, their implementation may depend on the call stack.
* | | | | | Merge pull request #4763 from lrytz/inlineDeserializeLambdaJason Zaugg2015-09-2417-151/+203
|\ \ \ \ \ \ | |/ / / / / |/| | | | | Add $deserializeLambda$ when inlining an indyLambda into a class
| * | | | | Add $deserializeLambda$ when inlining an indyLambda into a classLukas Rytz2015-09-237-29/+75
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes https://github.com/scala/scala-dev/issues/39 When inlining an indyLambda closure instantiation into a class, and the closure type is serializable, make sure that the target class has the synthetic `$deserializeLambda$` method.
| * | | | | Move addLambdaDeserialize into the BTypes assemblyLukas Rytz2015-09-234-62/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows accessing the method from the inliner, which doesn't have access to the Global instance.
| * | | | | Rename the Analyzers backend component to BackendUtilsLukas Rytz2015-09-2311-18/+21
|/ / / / / | | | | | | | | | | | | | | | | | | | | Until now, there was no good place to hold various utility functions that are used acrosss the backend / optimizer.