aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Namer#createCompanionLinks: avoid using denotNamedGuillaume Martres2017-03-241-4/+4
| | | | | | | | | | | The previous commit introduced two new usages of `denotNamed` which broke tests/run/t1987b because `denotNamed` indirectly calls `packageObj` which caches the package object, except that at this point the package object is not yet entered, so the cache was incorrect. We fix this by using `effectiveScope.lookup` instead since we only need to look into the current scope, this is also true for the two existing usage of `denotNamed` in `createCompanionLinks` so they were also replaced by `effectiveScope.lookup`.
* Fix #2137: Create dummy companions for top-level objects without a real oneGuillaume Martres2017-03-235-0/+36
| | | | | | | | | | | | | | | | | Previously, we sometimes ended up forcing a companion class symbol from a previous run or from the classpath which lead to weird issues like in `false-companion`. Even if we end up not forcing such a symbol, its presence can still lead to issue: before this commit incremental compilation of `dotty-compiler-bootstrapped` was broken because we recorded a false dependency on the non-bootstrapped `dotty-compiler` jar. The added test is currently marked pending because it does not work with JUnit (which doesn't handle separate compilation), only partest. I didn't managed to get it to work right, and this won't be necessary once our testing framework is overhauled by https://github.com/lampepfl/dotty/pull/2125 anyway, so I'll just have to remember to enable this test afterwards.
* Revert "sbt.ExtractDependencies: avoid false dependencies"Guillaume Martres2017-03-231-1/+1
| | | | | | | | | This reverts commit 57641b9c7447fa0a6f1f47352dffb4c56c560b6a. Using `Type#select` instead of `Type#member` turned out to not help at all in avoiding false dependencies, you can still get a symbol whose denotation does not reallyExists. A proper fix for this issue is contained in the next commit.
* Merge pull request #2133 from dotty-staging/fix/refinedtype-incrementalFelix Mulder2017-03-211-6/+42
|\ | | | | incremental compilation: Fix unstable name hashing for refined members
| * incremental compilation: Fix unstable name hashing for refined membersGuillaume Martres2017-03-211-6/+42
|/
* Merge pull request #2129 from dotty-staging/topic/dottydoc-subprojectDmitry Petrashko2017-03-212-56/+60
|\ | | | | Fix IntellliJ support by making dotty-doc its own subproject
| * Fix IntellliJ support by making dotty-doc its own subprojectFelix Mulder2017-03-212-56/+60
|/
* Merge pull request #2124 from dotty-staging/fix-param-fwdGuillaume Martres2017-03-2010-13/+101
|\ | | | | Fix parameter accessor forwarding
| * Update check fileMartin Odersky2017-03-202-4/+4
| |
| * Only use shadowed when necessaryMartin Odersky2017-03-201-7/+8
| |
| * Add test casesMartin Odersky2017-03-206-3/+80
| |
| * Use shadowing to reference inherited accessors.Martin Odersky2017-03-201-3/+9
| | | | | | | | | | | | Normal references won't work since the referenced accessor has the same name as a private name in the class defining the forwarder. This showed up as pickling failures under separate compilation.
| * Handle shadowed for TermRefWithSigMartin Odersky2017-03-201-4/+8
|/ | | | Making a name shadowed lost the signature before.
* doc-tool/test: Workaround #2112Guillaume Martres2017-03-201-1/+2
|
* Super Bootstrap: Make dottydoc part of the bootstrapGuillaume Martres2017-03-201-11/+10
| | | | | This wasn't done before because dotty could not compile dottydoc, this is now fixed.
* Fix #2084.Dmitry Petrashko2017-03-201-5/+12
|
* Merge pull request #2122 from dotty-staging/fix-i2086Guillaume Martres2017-03-202-0/+9
|\ | | | | Fixed #2086: Add tests for issue that has already been fixed.
| * Fixed #2086: Add tests for issue that has already been fixed.Nicolas Stucki2017-03-202-0/+9
| |
* | Merge pull request #2123 from dotty-staging/fix-i1573Guillaume Martres2017-03-203-0/+15
|\ \ | | | | | | Fixed #1573: Add tests for fixed issue.
| * | Fixed #1573: Add tests for fixed issue.Nicolas Stucki2017-03-203-0/+15
| | |
* | | Merge pull request #2114 from dotty-staging/fix/inline-error-posGuillaume Martres2017-03-201-3/+4
|\ \ \ | |_|/ |/| | Fix position of errors in Inliner TreeTypeMap
| * | Fix position of errors in Inliner TreeTypeMapGuillaume Martres2017-03-161-3/+4
| | |
* | | Merge pull request #2118 from abeln/super-bugDmitry Petrashko2017-03-202-19/+24
|\ \ \ | |_|/ |/| | Fix #2117: bug in typechecking super prefix with invalid enclosing class
| * | Fix bug in typechecking super prefix with invalid enclosing classAbel Nieto2017-03-172-19/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When typechecking class A { C.super.foo() } If C isn't an enclosing class, the compiler was throwing because of an unguarded pattern match. Fix the issue by checking for ErrorType. Tested: Verified that the example above no longer throws. Added a test.
* | | Fix procedure syntax in JavaConvertersValthor Halldorsson2017-03-191-6/+6
| | |
* | | Fix exception caused by attempting to serialize NonEntity valuesValthor Halldorsson2017-03-191-21/+28
| | | | | | | | | | | | - Added explicit checking for NonEntity when serializing DefaultParams
* | | Merge pull request #2111 from dotty-staging/fix/better-lubGuillaume Martres2017-03-184-25/+60
|\ \ \ | | | | | | | | Better type inference in harmonizeUnion
| * | | Better type inference in harmonizeUnionGuillaume Martres2017-03-184-25/+60
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before this commit, the added testcase failed because the type of `inv` was inferred to be `Inv[Any]` instead of `Inv[Int]`. The situation looks like this: def inv(cond: Boolean) = if (cond) new Inv(1) // : Inv[A] where A >: Int else Inv.empty // : Inv[A'] where A' unconstrained // : Inv[A] | Inv[A'] To get the type of `inv`, we call `harmonizeUnion` which will take the lub of `Inv[A]` and `Inv[A']`, eventually this mean that we do: A' <:< A But since `harmonizeUnion` uses `fluidly`, this does not result in `A'` getting constrained to be a subtype of `A`, instead we constrain `A` to the upper bound of `A'`: Any <:< A We use `fluidly` to avoid creating OrTypes in `lub`, but it turns out that there is a less aggressive solution: `lub` calls `mergeIfSuper` which then calls `isSubTypeWhenFrozen`, if we just make these subtype calls non-frozen, we can achieve what we want. This is what the new `lub` parameter `canConstrain` allows.
* | | Merge pull request #2110 from dotty-staging/fix/reduce-more-lambdasGuillaume Martres2017-03-184-4/+9
|\ \ \ | | | | | | | | Reduce type lambdas even if variance changes
| * | | Reduce type lambdas even if variance changesGuillaume Martres2017-03-162-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, the added testcase failed with (when running with -Ydebug-alias): 2 | def foo = Seq(a) | ^ |covariant type A occurs in invariant position in type => Seq.CC[Cov.this.A] of method foo Because the type parameter of `CC` is invariant. Of course, this is fine because `CC[A]` can be reduced to `Seq[A]`, but before this commit, `TypeApplications#appliedTo` used to disallow reductions that replaced an invariant type parameter with a variant one. I believe that for type inference, only preserving the arity is important, so I removed this restriction.
| * | | New flag -Ydebug-alias to never follow aliases when printing typesGuillaume Martres2017-03-162-1/+2
| | |/ | |/|
* | | Merge pull request #2119 from abeln/period-commentDmitry Petrashko2017-03-181-3/+4
|\ \ \ | | | | | | | | Update periods-related comments
| * | | Update periods-related commentsAbel Nieto2017-03-181-3/+4
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The phase width in a period was bumped from 6 to 7 in https://github.com/lampepfl/dotty/commit/16671a00371df2bdbaf6ae7f51b0ec7191ce94f3 but the comment wasn't updated. Update the comment (and another unrelated comment). Tested: No
* | | Merge pull request #2058 from dotty-staging/fix-2054liu fengyun2017-03-184-4/+23
|\ \ \ | |_|/ |/| | Fix #2054
| * | fix typo in commentliu fengyun2017-03-181-1/+1
| | |
| * | Fix a stupid error in fix of #2054.Dmitry Petrashko2017-03-132-4/+7
| | |
| * | Test that #2054 is fixed.Dmitry Petrashko2017-03-071-0/+13
| | |
| * | Fix #2054: @Static methods may access synthetic private methods stuffDmitry Petrashko2017-03-072-2/+5
| | | | | | | | | | | | | | | | | | Due to way how we desugar lambdas, we can decide to make a lambda static Static methods could refer to those lambdas and we need to make them public
* | | Move 'invalid super qualifier' error to new error format.Abel Nieto2017-03-174-1/+43
| |/ |/| | | | | | | | | | | | | | | As part of https://github.com/lampepfl/dotty/issues/1589, use the new error message for static super references where the qualifier isn't a parent of the class. Tested: Added unit test.
* | Merge pull request #2106 from dotty-staging/fix/param-forwarder-access-take-2odersky2017-03-164-5/+33
|\ \ | | | | | | Alternative fix for #2099: avoid loading a private member when recomputing a NamedType denot
| * | Allow going from non-priv to priv denot when run changesGuillaume Martres2017-03-161-11/+6
| | |
| * | Don't force denotations in asMemberOfGuillaume Martres2017-03-161-5/+6
| | | | | | | | | | | | | | | | | | This was introduced in the previous commit and caused unpickling failures, we are now more conservative and only check the Private flag on SymDenotations so we don't have to load any other denotation.
| * | Fix #2099: avoid loading a private member when recomputing a NamedType denotGuillaume Martres2017-03-164-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ParamForwarding creates the following forwarder in B: private[this] def member: Int = super.member Where the type for `super.member` is `TermRef(SubA, member)` and the symbol is the `val member` in `A`. So far this is correct, but in later phases we might call `loadDenot` on this `TermRef` which will end up calling `asMemberOf`, which before this commit just did: prefix.member(name) This is incorrect in our case because `SubA` also happens to have a private `def member`, which means that our forwarder in B now forwards to a private method in a superclass, this subsequently crashes in `ExpandPrivate`. (Note: in the bytecode, a private method cannot have the same name as an overriden method, but this is already worked around in EnsurePrivate.) The fix is simple: when we recompute a member, we should only look at private members if the previous denotation was private.
* | | Merge pull request #2108 from dotty-staging/fix-match-in-mergeCompanionDefsodersky2017-03-161-1/+1
|\ \ \ | | | | | | | | Make pattern match exhaustive for mergeCompanionDefs.
| * | | Remove warning from non exhaustive match in mergeCompanionDefs.Nicolas Stucki2017-03-161-1/+1
|/ / /
* | | Merge pull request #2107 from dotty-staging/disable/sbt-reporterFelix Mulder2017-03-161-1/+1
|\ \ \ | |/ / |/| | sbt-bridge: Fix #2092: Disable position information in the reporter
| * | sbt-bridge: Fix #2092: Disable position information in the reporterGuillaume Martres2017-03-151-1/+1
|/ / | | | | | | | | | | This is temporary until someone figures out how to get sbt to not print duplicated information when this is turned on. This might require changes to sbt itself.
* | Merge pull request #2074 from vlthr/dottydoc-entity-implicitsFelix Mulder2017-03-152-209/+460
|\ \ | | | | | | [WIP] consolidate entity serialization
| * | address feedback on #2074Valthor Halldorsson2017-03-142-123/+346
| | | | | | | | | | | | | | | | | | | | | | | | - Added tests to ensure that the results of serialization match their pre-serialization values. - Removed unused parameter `extras` from Entity.asJava() implicit methods. - Removed _root_ imports - Fixed several code style issues
| * | consolidate entity serialization into single classValthor Halldorsson2017-03-102-166/+194
| | | | | | | | | | | | | | | | | | - refactored JavaEntity to be DRY with respect to repeating the serialization of fields shared by many types of entities - added tests