aboutsummaryrefslogtreecommitdiff
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
* TestReporter: Avoid a global lazy valGuillaume Martres2017-04-121-1/+1
| | | | | When compiling with dotty, this leads to NullPointerException because the lazy val is not @volatile. Better to just make it a val.
* Add docs to SummaryReport.scalaFelix Mulder2017-04-121-0/+25
|
* Remove duplication with run test output verificationFelix Mulder2017-04-121-19/+7
|
* Make vulpix test filter work on substring instead of regexpFelix Mulder2017-04-122-16/+17
|
* Remove need for java written summary reporterFelix Mulder2017-04-1210-205/+222
|
* Make sure that everything is dumped to log filesFelix Mulder2017-04-123-57/+120
|
* Add ability to only compile run testsFelix Mulder2017-04-124-16/+49
|
* Implement meta tests suggested by @DarkDimiusFelix Mulder2017-04-121-0/+15
| | | | | | Note that merging this as-is will not protect us against fork bombs. This is because the timeout of tests is currently 180 seconds. A forkbomb that is allowed to run for that long...
* Fix interactive mode in eclipseFelix Mulder2017-04-121-1/+3
|
* Add `Properties` object for dotty testing props and envFelix Mulder2017-04-124-14/+64
|
* Only complete tests after run has been performedFelix Mulder2017-04-121-24/+28
|
* Add vulpix docstrings and change definesFelix Mulder2017-04-123-4/+14
|
* Improve test failure outputFelix Mulder2017-04-121-1/+5
|
* Make inter JVM communication be string basedFelix Mulder2017-04-127-168/+133
|
* Move vulpix to `dotty.tools.vulpix`Felix Mulder2017-04-127-16/+13
|
* Rename filter shorthand to vulpix and update `drone.yml`Felix Mulder2017-04-121-4/+1
|
* Remove partest, keeping `dotc.tests` for nowFelix Mulder2017-04-126-697/+41
|
* Add `RunnerOrchestration` to `ParallelTesting` traitFelix Mulder2017-04-124-88/+149
|
* Complete subprocess communication protocolFelix Mulder2017-04-123-22/+64
|
* Fix settings having uninitialized valuesFelix Mulder2017-04-124-8/+20
|
* Implement inter-VM communication logicFelix Mulder2017-04-121-2/+44
|
* Add initial RunnerOrchestration interfaceFelix Mulder2017-04-122-0/+91
|
* Add cleanup hooks to SummaryReporterFelix Mulder2017-04-121-0/+21
|
* Add reproduction instr for pos separate compilationFelix Mulder2017-04-121-1/+3
|
* Rename test suite to "vulpix"Felix Mulder2017-04-126-11/+16
|
* Merge pull request #2229 from dotty-staging/sync-classfile-parserodersky2017-04-121-9/+25
|\ | | | | Port some ClassfileParser changes from scalac
| * SI-9915 Utf8_info are modified UTF8Guillaume Martres2017-04-111-2/+6
| | | | | | | | | | | | | | | | | | Adapted from scalac commit 3c5990ce5839f4bdfca8fed7f2c415a72f6a8bd8 by Som Snytt: Use DataInputStream.readUTF to read CONSTANT_Utf8_info. This fixes reading embedded null char and supplementary chars.
| * SI-7455 Drop dummy param for synthetic access constructorGuillaume Martres2017-04-111-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapted from scalac commit 050b4c951c838699c2fe30cbf01b63942c63a299 by Jason Zaugg: Java synthesizes public constructors in private classes to allow access from inner classes. The signature of that synthetic constructor (known as a "access constructor") has a dummy parameter appended to avoid overloading clashes. javac chooses the type "Enclosing$1" for the dummy parameter (called the "access constructor tag") which is either an existing anonymous class or a synthesized class for this purpose. In OpenJDK, this transformation is performed in: langtools/src/share/classes/com/sun/tools/javac/comp/Lower.java (Incidentally, scalac would just emits a byte-code public constructor in this situation, rather than a private constructor / access constructor pair.) Scala parses the signature of the access contructor, and drops the $outer parameter, but retains the dummy parameter. This causes havoc when it tries to parse the bytecode for that anonymous class; the class file parser doesn't have the enclosing type parameters of Vector in scope and crash ensues. In any case, we shouldn't allow user code to see that constructor; it should only be called from within its own compilation unit. This commit drops the dummy parameter from access constructor signatures in class file parsing.
| * SI-2464 Resiliance against missing InnerClass attributesGuillaume Martres2017-04-111-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adapted from scalac commit 2a19cd56258884e25f26565d7b865cc2ec931b23 by Jason Zaugg, but without the testing infrastructure added: A classfile in the wild related to Vaadin lacked the InnerClasses attribute. As such, our class file parser treated a nested enum class as top-level, which led to a crash when trying to find its linked module. More details of the investigation are available in the JIRA comments. The test introduces a new facility to rewrite classfiles. This commit turns this situation into a logged warning, rather than crashing. Code by paulp, test by yours truly.
* | Merge pull request #2225 from dotty-staging/fix-#2192odersky2017-04-111-26/+22
|\ \ | |/ |/| Fix #2212: Avoid imports in the wrong namespace
| * Fix #2212: Avoid imports in the wrong namespaceMartin Odersky2017-04-111-26/+22
| | | | | | | | | | | | Don't issue an error if when considering a named import that refers to a valoe or type which does not exist. Instead, disregard the import an continue.
* | Merge pull request #2228 from dotty-staging/fix-#2218odersky2017-04-111-1/+1
|\ \ | | | | | | Fix #2218: Add fullyDefinedType for class parent types
| * | Add fullyDefinedType for class parent typesMartin Odersky2017-04-111-1/+1
| | | | | | | | | | | | | | | | | | If we do not do that, any type variables in the parent type get interpolated later, when the whole primary constructor is typed. But by then we miss the context of what their variance was.
* | | Merge pull request #2191 from dotty-staging/sync-classpath-scalacGuillaume Martres2017-04-1118-382/+1241
|\ \ \ | | | | | | | | Fix #2186: Synchronize classpath handling with Scala 2.12
| * | | DirectoryClassPath: handle directory being removed under usGuillaume Martres2017-04-111-15/+17
| | | | | | | | | | | | | | | | | | | | `dir.listFiles` will return null if called on a directory that no longer exists, somehow partest triggers that.
| * | | Fix #2186: Synchronize classpath handling with Scala 2.12Guillaume Martres2017-04-1118-382/+1239
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit is a very crude port of the classpath handling as it exists in the 2.12.x branch of scalac (hash: 232d95a198c94da0c6c8393624e83e9b9ac84e81), this replaces the existing Classpath code that was adapted from scalac years ago. This code was written by Grzegorz Kossakowski, MichaƂ Pociecha, Lukas Rytz, Jason Zaugg and other scalac contributors, many thanks to them! For more information on this implementation, see the description of the PR that originally added it to scalac: https://github.com/scala/scala/pull/4060 Changes made to the copied code to get it to compile with dotty: - Rename scala.tools.nsc.util.ClassPath to dotty.tools.io.ClassPath - Rename scala.tools.nsc.classpath.* to dotty.tools.dotc.classpath.* - Replace "private[nsc]" by "private[dotty]" - Changed `isClass` methods in FileUtils to skip Scala 2.11 implementation classes (needed until we stop being retro-compatible with Scala 2.11) I also copied PlainFile.scala from scalac to get access to `PlainNioFile`.
* | | | Merge pull request #2216 from dotty-staging/fix-2163odersky2017-04-111-4/+8
|\ \ \ \ | |_|/ / |/| | | fix #2163: don't narrow liftedOwner if symbol is InSuperCall
| * | | Handle supercalls in inner classes correctlyMartin Odersky2017-04-111-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | The previous fix was too coarse. We need to move an anonymous function in a supercall towards the call, we just have to make sure it's not in the directly enclosing class.
| * | | fix #2163: don't narrow liftedOwner if symbol is InSuperCallliu fengyun2017-04-111-0/+1
| |/ /
* / / Fix #2219: Fix type applications on WildcardTypeGuillaume Martres2017-04-111-1/+1
|/ / | | | | | | | | | | | | Previously we just returned the unapplied WildcardType which is incorrect if the WildcardType is bounded. The proper thing to do is to do the type application on the bounds of the WildcardType and wrap the result in a WildcardType.
* | Fix master compilationOlivier Blanvillain2017-04-111-1/+1
| |
* | Merge pull request #1938 from dotty-staging/named-based-patmatFelix Mulder2017-04-116-51/+73
|\ \ | | | | | | Change case class desugaring and decouple Products and name-based-pattern-matching
| * | Move isProductSubType to Applications & rename to canProductMatchOlivier Blanvillain2017-04-114-9/+8
| | |
| * | Decouple Product and pattern-matchingOlivier Blanvillain2017-04-064-18/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Product pattern use to: - have a `<: Product` requirement - compute the arity of a pattern by looking at `N` in a `ProductN` superclass. This commit changes `<: Product`, instead we look for a `_1` member. The arity is determined by inspecting `_1` to `_N` members instead. --- Here another attempt to formalize Dotty's pattern-matching (base on #1805). This covers the *Extractor Patterns* [section of the spec](https://www.scala-lang.org/files/archive/spec/2.12/08-pattern-matching.html#extractor-patterns). Dotty support 4 different extractor patterns: Boolean Pattern, Product Pattern, Seq Pattern and Name Based Pattern. Boolean Pattern - Extractor defines `def unapply(x: T): Boolean` - Pattern-matching on exactly `0` patterns Product Pattern - Extractor defines `def unapply(x: T): U` - `N > 0` is the maximum number of consecutive (parameterless `def` or `val`) `_1: P1` ... `_N: PN` members in `U` - Pattern-matching on exactly `N` patterns with types `P1, P2, ..., PN` Seq Pattern - Extractor defines `def unapplySeq(x: T): U` - `U` has (parameterless `def` or `val`) members `isEmpty: Boolean` and `get: S` - `S <: Seq[V]` - Pattern-matching on any number of pattern with types `V, V, ..., V` Name Based Pattern - Extractor defines `def unapply(x: T): U` - `U` has (parameterless `def` or `val`) members `isEmpty: Boolean` and `get: S` - If there is exactly `1` pattern, pattern-matching on `1` pattern with type `S` - Otherwise fallback to Product Pattern on type `U` In case of ambiguities, *Product Pattern* is preferred over *Name Based Pattern*.
| * | Generate synthetic productElement/productArity methods above 22Olivier Blanvillain2017-04-062-28/+56
| | |
| * | Workaround #1932 (bug trigged by desugaring changes)Olivier Blanvillain2017-04-061-1/+1
| | |
* | | Fix type errorMartin Odersky2017-04-111-1/+1
| | |
* | | Better documentation of sharable structures in Names, NameKindsMartin Odersky2017-04-112-1/+5
| | |
* | | Adapt isPackageObject to semantic namingMartin Odersky2017-04-112-3/+4
| | | | | | | | | | | | Used a hardcoded string before, which caused test failures.
* | | Fix pickling/unpickling of namesMartin Odersky2017-04-113-3/+12
| | | | | | | | | | | | | | | Running the test suite with the pickling printer on showed up two more problems which are fixed in this commit.