summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #3889 from som-snytt/issue/6476-altLukas Rytz2014-08-126-77/+75
|\ | | | | 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-183-18/+16
| | | | | | | | And adjust the test.
| * SI-6476 Improve error on escapementSom Snytt2014-07-182-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #3914 from som-snytt/issue/orphan-checkGrzegorz Kossakowski2014-08-071-1/+0
|\ \ | | | | | | Orphan check file
| * | Orphan check fileSom Snytt2014-08-031-1/+0
| | | | | | | | | | | | | | | | | | Orphaned by the override check reversion that deleted the test source. 2524fdde3edc7b668fdb4bf68e990141d3ec18d6
* | | 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.
* | | Merge pull request #3916 from retronym/ticket/8781Grzegorz Kossakowski2014-08-074-1/+23
|\ \ \ | |/ / |/| | SI-8781 Avoid double-expansion under -Ymacro-expand:discard
| * | SI-8781 Avoid double-expansion under -Ymacro-expand:discardJason Zaugg2014-08-064-1/+23
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 #3895 from lrytz/jline-updateGrzegorz Kossakowski2014-07-251-0/+2
|\ \ | | | | | | Also update jline.version when update.versions is set during build
| * | Also update jline.version when update.versions is set during buildLukas Rytz2014-07-221-0/+2
| | |
* | | Merge pull request #3894 from adriaanm/depmsgGrzegorz Kossakowski2014-07-256-21/+25
|\ \ \ | | | | | | | | Better error message than 'bad symbolic reference'.
| * | | Better error message than 'bad symbolic reference'.Adriaan Moors2014-07-226-21/+25
| |/ / | | | | | | | | | | | | | | | 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 #3897 from lrytz/2.11.2-bumpGrzegorz Kossakowski2014-07-252-7/+7
|\ \ \ | | | | | | | | Bump versions for Scala 2.11.2
| * | | Bump versions for Scala 2.11.2Lukas Rytz2014-07-232-7/+7
| |/ /
* | | 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
| | | | |
* | | | | Merge pull request #3896 from retronym/ticket/8743Grzegorz Kossakowski2014-07-256-34/+35
|\ \ \ \ \ | |_|_|/ / |/| | | | SI-8743 Fix crasher with poly-methods annotated with @varargs
| * | | | SI-8743 Fix crasher with poly-methods annotated with @varargsJason Zaugg2014-07-236-34/+35
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2110-9/+54
|\ \ \ \ | | | | | | | | | | 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-2010-8/+50
| | |_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge pull request #3887 from Ichoran/issue/8738Lukas Rytz2014-07-202-9/+26
|\ \ \ \ | |/ / / |/| | | SI-8738 Regression in range equality
| * | | SI-8738 Regression in range equalityRex Kerr2014-07-202-9/+26
|/ / / | | | | | | | | | | | | | | | 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.
* | | Merge pull request #3885 from som-snytt/issue/8525-cleanupLukas Rytz2014-07-189-110/+133
|\ \ \ | | | | | | | | SI-8525 Clarify usage of -Xlint:_,flag
| * | | 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-166-98/+77
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1628-75/+318
|\ \ \ | | | | | | | | SI-8525 -Xlint:nowarn-missing-interpolator
| * | | SI-8525 No anonymous lintSom Snytt2014-07-1016-40/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0814-59/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-0812-20/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-154-2/+35
|\ \ \ \ | | | | | | | | | | SI-8557 make scaladoc normalize paths of external jars.
| * | | | SI-8557 make scaladoc normalize paths of external jars.Antoine Gourlay2014-07-154-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-1510-35/+99
|\ \ \ \ \ | | | | | | | | | | | | 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.