summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add regression tests for SI-10027SI-10027-testJakob Odersky2016-11-033-0/+18
|
* Bump baseVersion to 2.12.1 (#5389)Seth Tisue2016-11-013-5/+3
| | | | | | | Binary version (for modules) is now 2.12, starr is 2.12.0-RC2. Also, drop repo_ref from jenkins.properties; It's propagated downstream by the '-main' build flows already.
* Merge pull request #5492 from thefourtheye/patch-1Lukas Rytz2016-11-011-1/+1
|\ | | | | doc: minor grammatical fix
| * doc: minor grammatical fixSakthipriyan Vairamani2016-11-011-1/+1
| |
* | Merge pull request #5493 from thefourtheye/patch-2Adriaan Moors2016-10-311-1/+1
|\ \ | |/ |/| doc: fix README link
| * doc: fix README linkSakthipriyan Vairamani2016-11-011-1/+1
|/
* Merge pull request #5410 from SethTisue/scala-xml-1.0.6Adriaan Moors2016-10-311-1/+1
|\ | | | | upgrade to scala-xml 1.0.6
| * upgrade to scala-xml 1.0.6Seth Tisue2016-09-191-1/+1
| | | | | | | | | | just because in general we want to ship the latest versions of the modules, and some desirable-looking fixes went into 1.0.6
* | Merge pull request #5373 from TimWSpence/2.12.xSeth Tisue2016-10-311-3/+3
|\ \ | | | | | | SI-9909: corrected stream example so it does not give forward reference
| * | SI-9909: corrected stream example so it does not give forward referenceTim Spence2016-10-211-3/+3
| | | | | | | | | | | | error
* | | Merge pull request #5482 from lrytz/sd248-frontendLukas Rytz2016-10-2823-190/+233
|\ \ \ | | | | | | | | Frontend fixes for scala-dev#248
| * | | Address review commentsLukas Rytz2016-10-285-40/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tighten some types (Symbol -> ClassSymbol / ModuleSymbol), use NonFatal instead of catching Throwable. Also don't run the classfile parser enteringPhase(phaseBeforeRefchecks) anymore. This was added in 0ccdb15 but seems no longer required.
| * | | For scala classfiles, only parse the scala signature annotationLukas Rytz2016-10-2811-24/+76
| | | | | | | | | | | | | | | | | | | | | | | | Skipping other annotations not only saves some cycles / GC, but also prevents some spurious warnings / errors related to cyclic dependencies when parsing annotation arguments refering to members of the class.
| * | | SI-7139 test case, fixed by one of the recent commitsLukas Rytz2016-10-273-0/+28
| | | |
| * | | Minor style cleanups, no changes in logicLukas Rytz2016-10-274-35/+11
| | | |
| * | | Robustly identify unpickling the current module classLukas Rytz2016-10-271-11/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When unpickling a class, if the name and owner matches the current `classRoot` of the unpickling Scan, that `classRoot` symbol is used instead of creating a new symbol. If, in addition, the class being unpickled has the MODULE flag, the unpickler should use the `moduleRoot.moduleClass` symbol (instead of creating a new one). To identify the module class, the current implementation compares the name and owner to the `classRoot`. This fails in case the `classRoot` is `NoSymbol`, which can happen in corner cases (when a type alias shadows a class symbol, scala-dev#248). In this patch we identify the module class by comparing the name and owner to the `moduleRoot` symbol directly (using a `toTypeName`).
| * | | Classfile parser and unpickler require class and module symbol argumentsLukas Rytz2016-10-273-32/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In SymbolLoaders, when seeing a classfile `Foo.class`, we always (unconditionally) create 3 symbols: a class, a module and a module class. Some symbols get invalidated later (`.exists`). Until now, the classfile parser (and unpickler) received the "root" symbol as argument, which is the symbol whose type is being completed. This is either the class symbol or the module symbol. The classfile parser would then try to lookup the other symbol through `root.companionClass` or `root.companionModule`. Howver, this lookup can fail. One example is scala-dev#248: when a type alias (in a package object) shadows a class symbol, `companionClass` will fail. The implementations of the classfile parser / unpickler assume that both the `clazz` and the `staticModule` symbols are available. This change makes sure that they are always passed in explicitly. Before this patch, in the example of scala-dev#248, the `classRoot` of the unpickler was NoSymbol. This caused a bug when unpickling the module class symbol, causing a second module class symbol to be created mistakingly. The next commit cleans up this logic, more details there. This second symbol would then cause the crash in the backend because it doesn't have an `associatedFile`, therefore `isCoDefinedWith` would spuriously return `true`.
| * | | Clean up cross-check in classfile parser, remove unnecessary assignmentLukas Rytz2016-10-271-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the first entries in the classfile is the class name. The classfile parser performs a cross-check by looking up the class sybmol corresponding to that name and ensures it's the same as `clazz`, the class symbol that the parser currently populates. Since 322c980 ("Another massive IDE checkin"), if at the time of the check `clazz` but the lookup returns some class, the `clazz` field is assigned. The commit following this one makes sure `clazz` is never NoSymbol, so the assignment can safely be removed.
| * | | Clean up lookup class by name in the classfile parserLukas Rytz2016-10-271-46/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a piece of logic essentially duplicating getClassByName in Mirrors (split up a fully qualified class name by ".", look up pieces). That piece of code was added in 0ce0ad5 to fix one example in SI-2464. However, since 020053c (2012, 2.10) that code was broken: the line ss = name.subName(0, start) should be ss = name.subName(start, name.length).toTypeName As a result, the code would always create a stub symbol. Returning a stub seems to be the right thing to do anyway, and the fact that we were doing so during two major releases is a good proof.
| * | | Don't follow type aliases in getClassByName and friendsLukas Rytz2016-10-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes getClassByName fail / getClassIfDefined return NoSymbol when querying an alias. The current behavior can confuse the classfile parser: when parsing a class, a cross-check verifies that `pool.getClassSymbol(nameIdx)` returns the symbol of the class currently being parsed. If there's a type alias that shadows the linked class, following the alias would return an unrelated class. (The cross-check didn't fail because there are some other guards around it) The logic to follow aliases was was added in ff98878, without a clear explanation. Note that `requiredClass[C]` works if `C` is an alias, it is expanded by the compiler.
| * | | Ensure companionClass returns a class, not a type aliasLukas Rytz2016-10-264-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes scala/scala-dev#248, where a type alias reached the backend through this method. This is very similar to the fix for SI-5031, which changed it only in ModuleSymbol, but not in Symbol. The override in ModuleSymbol is actually unnecessary (it's identical), so it's removed in this commit. It was added for unclear reasons in 296b706.
* | | | Merge pull request #5379 from szeiger/wip/persist-buildcharacterStefan Zeiger2016-10-272-3/+21
|\ \ \ \ | | | | | | | | | | Store buildcharacter.properties in scala-compiler.jar
| * | | | Store buildcharacter.properties in scala-compiler.jarStefan Zeiger2016-09-062-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In addition to all the individual projects’ version properties files that we already keep in `scala-compiler.jar` we now write a new `scala-buildcharacter.properties` which is identical to the `buildcharacter.properties` written to the root directory by `generateBuildCharacterPropertiesFile`. The new task `extractBuildCharacterPropertiesFile` extracts it from the bootstrap Scala compiler and writes the usual `buildcharacter.properties`. This can be used to reproduce the exact version information for all modules in builds that start from an arbitrary published Scala version instead of being triggered directly by a bootstrap job.
* | | | | Merge pull request #5276 from som-snytt/issue/9750Seth Tisue2016-10-263-72/+140
|\ \ \ \ \ | |_|/ / / |/| | | | SI-9750 scala.util.Properties.isJavaAtLeast works with JDK9
| * | | | SI-9750 Remove isJavaAtLeast from util.StackTracingSom Snytt2016-07-291-27/+17
| | | | | | | | | | | | | | | | | | | | | | | | | Formatting suppressed exceptions required reflection for platform compatibility. No longer, since Java 8 is assumed. Minor tidying.
| * | | | SI-9750 Spec check major.minor.securitySom Snytt2016-07-212-29/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't assume spec is just major, but allow arbitrary version number for both spec value and user value to check. Only the first three dot-separated fields are considered, after skipping optional leading value "1" in legacy format. Minimal validity checks of user arg are applied. Leading three fields, if present, must be number values, but subsequent fields are ignored. Note that a version number is not a version string, which optionally includes pre and build info, `9-ea+109`.
| * | | | SI-9750 isJavaAtLeast(Int)Som Snytt2016-07-152-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | A good opportunity to simplify the API. Versions are strings, but a spec version is just a number.
| * | | | SI-9750 Tweak tests for what is a numberSom Snytt2016-07-152-22/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Leaves the error string as is, but adds test to show how it looks. Java calls it a version number. `Not a version: 1.9`. Don't strip `1.` prefix recursively. (That was Snytt's fault.)
| * | | | SI-9750 scala.util.Properties.isJavaAtLeast works with JDK9Pavel Petlinsky2016-07-132-28/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The utility method compares javaSpecVersion, which has the form "1.8" previously and "9" going forward. The method accepts "1.n" for n < 9. More correctly, the string argument should be a single number. Supports JEP-223.
* | | | | Merge pull request #5383 from SethTisue/post-rc1-cleanupsSeth Tisue2016-10-2420-275/+242
|\ \ \ \ \ | | | | | | | | | | | | assorted cleanups
| * | | | | assorted typo fixes, cleanup, updating of commentsSeth Tisue2016-10-2418-66/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | just in time for Halloween. "boostrap" is definitely the most adorable typo evah -- and one of the most common, too. but we don't want to scare anybody.
| * | | | | re-enable (or simplify) various tests now that STARR is bumpedSeth Tisue2016-10-241-206/+185
| | | | | |
| * | | | | SI-9516 remove now-unneeded codeSeth Tisue2016-10-241-3/+3
|/ / / / / | | | | | | | | | | | | | | | now that STARR includes the relevant fix
* | | | | Merge pull request #5466 from dragos/issue/remove-println-SI-8717Lukas Rytz2016-10-213-6/+4
|\ \ \ \ \ | | | | | | | | | | | | Replace println with log calls in BrowsingLoaders
| * | | | | Replace println with log calls in BrowsingLoadersIulian Dragos2016-10-193-6/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This alternative symbol loader is used in the presentation compiler and may generate output even when the compiler should be silent. See SI-8717 for more context, even though this does not really fix the ticket.
* | | | | | Merge pull request #5451 from lifuhuang/patch-1Lukas Rytz2016-10-211-3/+3
|\ \ \ \ \ \ | | | | | | | | | | | | | | Replace deprecated conforms
| * | | | | | Replace deprecated conformsLifu Huang2016-10-091-3/+3
| | | | | | | | | | | | | | | | | | | | | Replace deprecated conforms with identity.
* | | | | | | Merge pull request #5393 from som-snytt/issue/nowarn-thistype-discardLukas Rytz2016-10-215-21/+17
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | No warn when discarding r.f(): r.type
| * | | | | | | No warn when discarding r.f(): r.typeSom Snytt2016-09-105-21/+17
| | |_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The paradigm is `def add(x: X): Unit = listBuffer += x`. The value that is discarded is not new information. Also cleans up the recent tweaks to help messaging. Adds newlines in case they ask for multiple helps.
* | | | | | | Merge pull request #5371 from chrisokasaki/issue/9906Seth Tisue2016-10-201-0/+19
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-9906: override ListBuffer.last/lastOption to run in O(1) time
| * | | | | | | SI-9906: override ListBuffer.last/lastOption to run in O(1) timechrisokasaki2016-08-301-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also update scaladocs for those two methods.
* | | | | | | | Merge pull request #5400 from sjrd/rewrite-traversablelike-stringprefixSeth Tisue2016-10-202-17/+100
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Rewrite TraversableLike.stringPrefix not to blow up code size in Scala.js.
| * | | | | | | | Rewrite TraversableLike.stringPrefix not to blow up code size in Scala.js.Sébastien Doeraene2016-09-152-17/+100
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The commit 30876fe2dd8cbe657a6cad6b11bbc34f10c29b36 changed `TraversableLike.stringPrefix` to report nicer results for inner classes and method-local classes. The changes included calls to `String.split()`, `Character.isDigit()` and `Character.isUpperCase()`. This was particularly bad for Scala.js, because those methods bring with them huge parts of the JDK (the `java.util.regex.*` implementation on the one hand, and the Unicode database on the other hand), which increased generated code size by 6 KB after minimification and gzip for an application that does not otherwise use those methods. This sudden increase is tracked in the Scala.js bug tracker at https://github.com/scala-js/scala-js/issues/2591. This commit rewrites `TraversableLike.stringPrefix` in a very imperative way, without resorting to those methods. The behavior is (mostly) preserved. There can be different results when `getClass().getName()` contains non-ASCII lowercase letters and/or digits. Those will now be recognized as user-defined instead of likely compiler-synthesized (which is a progression). There still are false positives for ASCII lowercase letters, which cause the `stringPrefix` to be empty (as before). Since the new implementation is imperative anyway, at least I made it not allocate anything but the result `String` in the common case where the result does not contain any `.`.
* | | | | | | | Merge pull request #5406 from dsbos/dsbos-SI-9924Seth Tisue2016-10-201-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-9924: Fix: Spec. refers to U+007F (DELETE) as printable character
| * | | | | | | | SI-9924: Fix: Spec. refers to U+007F (DELETE) as printable characterDaniel Barclay2016-09-261-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed "\u0020 - \u007F" to "\u0020 - \u007E". (Also fixed/clarified punctuation and grammar.)
* | | | | | | | | Merge pull request #5439 from som-snytt/issue/fields-fieldwidthSeth Tisue2016-10-206-12/+12
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Shorten fields phase description
| * | | | | | | | | Don't clip descrip when -YdebugSom Snytt2016-09-301-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | -Ydebug is supposed to show everything about the phases, including full description (if otherwise clipped) and any phases that are not "enabled" by options.
| * | | | | | | | | Shorten fields phase descriptionSom Snytt2016-09-306-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Makes fields fit the field width, which is fitting. `s/including/add` seems sufficient. Possibly, "synthesize" is an extravagance for "add", but "add" is used previously in that column. Resolve, load, translate, add, synthesize, replace, erase, move, eliminate, remove, generate. Would love to learn a word that says what typer does, if the word "type" is too redundant or overloaded, besides the food metaphor. Also "meat-and-potatoes" implies basic, simple, not fussy or fancy. There are many devices, like the heart or a Ferrari engine, that are fundamental without being unfussy.
* | | | | | | | | | Merge pull request #5441 from dsbos/dsbos-SpecFixQuotesSeth Tisue2016-10-205-111/+111
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | SI-9959: Change `...' to ‘...’ (Unicode quotes) in ENBF (per intent per README.md).
| * | | | | | | | | | Fixed some ‘...‘ (two open quotes) to ‘...’ (open vs. close quotes) ↵Daniel Barclay2016-10-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | in ENBF.