summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3923 from som-snytt/issue/8787Grzegorz Kossakowski2014-08-191-169/+245
|\ | | | | SI-8787 Regextraction is null-proof
| * SI-8787 Addressing feedback, additional periods.Som Snytt2014-08-121-31/+65
| |
| * SI-8787 Update doc for RegexSom Snytt2014-08-101-134/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simplify the exposition and update the examples. Emphasize pattern matching, especially using `r.unanchored` instead of `for (r(x,y,z) <- r findFirstIn text)`. Certain details are moved to method docs. It would be nice to fix matching package doc, but the doc must attach to the package object, it seems. Introducing a package object is not binary-compatible. Includes a doc line edit on 2.12, anticipating the merge.
| * SI-8787 If you love nulls, so does RegexSom Snytt2014-08-081-10/+11
| | | | | | | | Regex is robust when unapplying null. A null never matches.
* | SI-8512 Infer Any for the qSom Snytt2014-08-121-1/+1
| | | | | | | | | | | | | | | | | | Avoid the widening bug for q. This resolution also suffers from the inference of Any, which can trigger a warning and an anxiety attack. But that's still better than doing the wrong thing. Right?
* | SI-8512 Infer a type for f"$args"Som Snytt2014-08-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | The f-interpolator gets a type param that better be Any to avoid unfortunate widenings. Hey, it worked! Unfortunately, when `Any` is inferred, `-Xlint:infer-any` takes notice. This is probably a greater problem for the f-interpolator than for quasiquotes, which are a more specialized tool.
* | Merge pull request #3907 from gourlaysama/wip/proxyLukas Rytz2014-08-124-0/+4
|\ \ | | | | | | a few missing deprecations in proxy collections.
| * | a few missing deprecations in proxy collections.Antoine Gourlay2014-07-314-0/+4
| | | | | | | | | | | | | | | | | | SeqProxy was properly deprecated, so were the CollProxyLike classes, and the ones in collection.immutable, but these four somehow survived the Big Proxy Deprecation (tm).
* | | Merge pull request #3902 from gourlaysama/wip/t4563Lukas Rytz2014-08-122-1/+9
|\ \ \ | | | | | | | | SI-4563 friendlier behavior for Ctrl+D in the REPL
| * | | SI-4563 friendlier behavior for Ctrl+D in the REPLAntoine Gourlay2014-07-292-1/+9
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Closing the REPL with Ctrl+D does not issue a newline, so the user's prompt displays on the same line as the `scala>` prompt. This is bad. We now force a newline before closing the interpreter, and display `:quit` while we're at it so that people know how to exit the REPL (since `exit` doesn't exist anymore). The tricky part was to only add a newline when the console is interrupted, and *not* when it is closed by a command (like `:quit`), since commands are processed after their text (including newline) has been sent to the console.
* | | Merge pull request #3889 from som-snytt/issue/6476-altLukas Rytz2014-08-123-57/+59
|\ \ \ | |_|/ |/| | SI-6476 Improve error on escapement
| * | SI-6476 Unitize ALL the procedures!Som Snytt2014-07-192-27/+26
| | |
| * | SI-6476 Unitize procedures, readabilitySom Snytt2014-07-192-28/+24
| | | | | | | | | | | | | | | | | | | | | | | | Strictly trivial updates for readability. I used to prefer procedure syntax, but since it was scheduled for removal, I can't scan a def without an equals sign.
| * | SI-6476 DocumentationSom Snytt2014-07-181-0/+2
| | | | | | | | | | | | And adjust the test.
| * | SI-6476 Improve error on escapementSom Snytt2014-07-181-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Behavior of escape processing under string interpolation can be confusing. This commit improves the exception message so you know at least what sort of escapes are handled. This came up on SO in the form `s"\d".r`, where it may not be obvious what is throwing and how to work around it. ``` scala> s"\d".r scala.StringContext$InvalidEscapeException: invalid escape '\d' not one of [\b, \t, \n, \f, \r, \\, \", \'] at index 0 in "\d". Use \\ for literal \. scala> s"a\" scala.StringContext$InvalidEscapeException: invalid escape at terminal index 1 in "a\". Use \\ for literal \. ``` Referencing SI-6476 because that has become the magnet ticket for "escape processing under string interpolation, huh?" This doesn't address `$"` and doesn't handle the more interesting parse error `s"a\"b"`.
* | | Merge pull request #3921 from gourlaysama/goodbye-jlineGrzegorz Kossakowski2014-08-0754-7654/+0
|\ \ \ | | | | | | | | remove jline sources from src/ now that we use a released jline.
| * | | remove jline sources from src/ now that we use a released jline.Antoine Gourlay2014-08-0754-7654/+0
| | |/ | |/| | | | | | | | | | | | | We don't need those, right? We don't even build that folder anymore (since 1b0fa91), it is just dead code.
* / | SI-8781 Avoid double-expansion under -Ymacro-expand:discardJason Zaugg2014-08-061-1/+4
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This mode of macro expansion is used by the presentation compiler to leave the original macro applications ("expandees") in the type checked trees, annotated with the types of the expansions. However, under some circumstances involving implicits, we would re-expand the macro. If the macro wasn't stable, this could lead to a type mismatch. The originally reported problem was with the shapeless `mkSingletonOps` macro. Its expansion had the type of a freshly-named class local to the expansion. Upon the re-expansion, a new class was generated, which lead to errors like: client/Client.scala:4: error: type mismatch; found : fresh$macro$2 required: fresh$macro$1 This commit suppressed re-expansion of the expandee by use of the existing, tree attachment driven mechanism.
* | Merge pull request #3894 from adriaanm/depmsgGrzegorz Kossakowski2014-07-251-5/+6
|\ \ | | | | | | Better error message than 'bad symbolic reference'.
| * | Better error message than 'bad symbolic reference'.Adriaan Moors2014-07-221-5/+6
| | | | | | | | | | | | | | | | | | Let's not scare people, and try to give them some advice. PS: we should really come up with a better mechanism for testing errors/warnings
* | | Merge pull request #3890 from dhgarrette/2.11.xGrzegorz Kossakowski2014-07-251-3/+1
|\ \ \ | | | | | | | | Remove "throws InvalidEscapeException" from StringContext.raw doc
| * | | Fixed incorrect example in StringContext.raw docDan Garrette2014-07-211-1/+1
| | | | | | | | | | | | As pointed out by @som-snytt, \u0023 is #, not \u0025.
| * | | Remove "throws InvalidEscapeException" from StringContext.raw docDan Garrette2014-07-211-2/+0
| |/ / | | | | | | Since StringContext.raw doesn't escape its input, it does not call `treatEscapes` and cannot throw the InvalidEscapeException.
* | | Merge pull request #3884 from mpociecha/remove-invalidation-from-globalGrzegorz Kossakowski2014-07-252-238/+0
|\ \ \ | | | | | | | | Remove invalidation from Global.scala
| * | | Remove invalidation from Global.scalampociecha2014-07-172-238/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The invalidation has been introduced in these commits: https://github.com/scala/scala/commit/167309afd10f9b65b35e6874a30ea6340a1ddc44 https://github.com/scala/scala/commit/ace051ff0abe112b767c3912f846eb4d50e52cf5 https://github.com/scala/scala/commit/e156d4a7cf4afdab91b7c281a0e8ae6e4743cc4a It's safe to remove this functionality. It was added originally to support an experiment with resident compilation. The experiment was performed in sbt and dropped in https://github.com/sbt/sbt/commit/6def08e029e474dc35af04b7403a2aeaddd0dec6 Since then Scala team concluded to not work on resident compilation so it's safe to delete unused code.
* | | | Merge pull request #3826 from lrytz/opt/refactorTrackedGrzegorz Kossakowski2014-07-2515-89/+481
|\ \ \ \ | | | | | | | | | | Assortiment of cleanups and comments around the backend
| * | | | Documentation for isModuleClassLukas Rytz2014-07-081-0/+3
| | | | |
| * | | | Support writing classfile of version 52Lukas Rytz2014-07-083-1/+3
| | | | |
| * | | | Clean up and document some usages of flags in the backendLukas Rytz2014-07-089-44/+154
| | | | |
| * | | | Pattern matching on ClassBType extracts the inernalNameLukas Rytz2014-07-081-22/+27
| | | | |
| * | | | Remove unnessecary check when computing InnerClass attribute flagsLukas Rytz2014-07-081-2/+13
| | | | | | | | | | | | | | | | | | | | The final flag is computed correctly by javaFlags.
| * | | | Comment summarizing the JVM spec for InnerClass / EnclosingMethodLukas Rytz2014-07-081-0/+199
| | | | |
| * | | | Minor cleanups and comments in GenBCodeLukas Rytz2014-07-086-21/+83
| | | | |
* | | | | SI-8743 Fix crasher with poly-methods annotated with @varargsJason Zaugg2014-07-232-32/+16
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The code that generated the Java varargs forwarder was basing things on the `ValDef-s` of the parameters of the source method. But, their types refer to a type parameter skolems of the enclosing method, which led to a type mismatch when typechecking the forwarder. Instead, I've reworked the code to simply use the `DefDef`-s symbol's info, which *doesn't* refer to skolems. This actually simplifies the surrounding code somewhat; rather than repeated symbols in a map we can just time travel the pre-uncurry method signatures to figure out which params are releated.
* | | | Merge pull request #3888 from som-snytt/issue/8736v2.11.2Lukas Rytz2014-07-213-9/+19
|\ \ \ \ | | | | | | | | | | SI-8736 Restore -language to former glory
| * | | | SI-8736 Error if no arg and no defaultSom Snytt2014-07-201-6/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now `-language` with no option will emit an error: ``` $ skalac -feature -language unused.scala scalac error: '-language' requires an option. See '-language:help'. scalac -help gives more information ```
| * | | | SI-8736 Restore -language to former glorySom Snytt2014-07-203-8/+15
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MultiChoice allows -language to work like -Xlint. The bug as described was that the setting value was set instead of updated (++=) with additional flags. The unreported bug was that `_` no longer set all settings. The corrected behavior is that "contains" means "it was enabled, or _ was set and it was not disabled explicitly." That is the behavior of `-Xlint` but with a different mechanism, since each lint option is a Setting. A semantic difference is that -Xlint enables all the lint options, but -language does not enable all the language features. `scalac -X` does not explain this additional behavior of the `-Xlint` flag. Also worth noting that `scalac -feature -language unused.scala` failed in 2.11.1 but succeeds silently now.
* / | | SI-8738 Regression in range equalityRex Kerr2014-07-201-9/+10
|/ / / | | | | | | | | | | | | | | | Missed the case of comparing a non-empty range to an empty one. Fixed by checking nonEmpty/isEmpty on other collection. Added a test to verify the behavior.
* | | SI-8525 MultiChoice takes a helper functionSom Snytt2014-07-185-20/+40
| | | | | | | | | | | | | | | | | | Clean-up code review comments. MultiChoice takes a helper function for outputting help text.
* | | SI-8525 Multichoice helpSom Snytt2014-07-174-14/+38
| | | | | | | | | | | | | | | | | | Enables -Xlint:help and -language:help. The Settings API makes it difficult to innovate.
* | | SI-8525 Clarify usage of -Xlint:_,flagSom Snytt2014-07-162-63/+66
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also clarify usage of -Xlint flag. Align more with javac -Xlint:all,-flag,flag where once a flag is explicitly enabled it cannot be disabled, but where the wildcard is a backstop only. (There is no all option yet here.) -Xlint and -Xlint:_ just set a flag which is consulted by any unset lint warning. Xlint warnings consult the state of Xlint when they are unset. Individual -Ywarn-ings do not. Other warnings are explicitly set to false. They can only be enabled programmatically. Some tests are corrected. Also, option order is no longer significant, see the unit test.
* | | Merge pull request #3792 from som-snytt/issue/8525Lukas Rytz2014-07-1611-60/+178
|\ \ \ | | | | | | | | SI-8525 -Xlint:nowarn-missing-interpolator
| * | | SI-8525 No anonymous lintSom Snytt2014-07-108-31/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn anonymous references to `settings.lint` into named settings. After that, trust to Adriaan to make them filterable. There are a few remaining top-level -Y lint warnings that are deprecated.
| * | | SI-8525 Add -Xlint:-warn-missing-interpolatorSom Snytt2014-07-083-36/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turn off lint warnings with negating prefix, and add a lint-only warning for the infamously nagging "Did you forget the interpolator?" That message is made more dignified. Without `-Xlint:false`, there is no mechanism to turn off anonymous linters once `-Xlint` is selected.
| * | | SI-8616 Error on -deprecation:true,falseSom Snytt2014-07-081-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an error, not a crash. Alternatively, one could define the multivalued colon case as equivalent to specifying the option multiple times. That would be very regular. But sometimes it's nicer just to error out.
| * | | SI-8610 -Xlint is multichoice optionSom Snytt2014-07-083-20/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make -Xlint a "multichoice" option for purposes of option parsing. This allows turning on "lint with these warnings" instead of only "turn off these warnings but enable other lint warnings". ``` $ scalac -Xlint:warn-adapted-args linty.scala # lint plus a warning $ scalac -Xlint warn-adapted-args linty.scala # same $ scalac -Xlint linty.scala # same as now $ scalac -Xlint -- linty.scala # ok, not necessary $ scalac -Xlint _ -- linty.scala # another funky underscore ``` This would also enable Xlint options that are not standalone options, although that is not implemented in this commit. For example, `-Xlint:no-missing-interpolator` could be used to disable that warning. (There is no `-Xoption:flavor=off` syntax.) (`no-` switches would not be enabled by `_`.)
* | | | Merge pull request #3883 from gourlaysama/wip/t8557Vlad Ureche2014-07-152-2/+2
|\ \ \ \ | | | | | | | | | | SI-8557 make scaladoc normalize paths of external jars.
| * | | | SI-8557 make scaladoc normalize paths of external jars.Antoine Gourlay2014-07-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Scaladoc compares (string representations of) the paths from -doc-external-doc and the paths form `sym.underlyingSource`. We now normalize on both ends before comparing them.
* | | | | Merge pull request #3817 from phaller/topic/typetagsLukas Rytz2014-07-154-28/+42
|\ \ \ \ \ | | | | | | | | | | | | SI-5919 TypeTags and Exprs should be serializable
| * | | | | Add SerialVersionUID to SerializedTypeTag and SerializedExprPhilipp Haller2014-07-152-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The reason for adding the SerialVersionUID annotations is to be able to provide serialization stability throughout the 2.11.x series. And since type tags (and exprs) have not been serializable before, this does not break serialization for existing code.