aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Suspend interpolating typevars when there are unreported errors.Martin Odersky2016-08-162-6/+40
| | | | | | | | Interpolating typevars that appear co- or contra-variantly in a type is a cleanup measure - it helps keep the constraint set small. However, if there are uneported errors, some of these errors might report on unsatisfiable constraints for these type variables. In that case, instantiating the type variables risks being confusing.
* Fix #1430: Avoid constrained polyparams in error messageMartin Odersky2016-08-161-1/+15
| | | | | | | | When issuing a type mismatch error, avoid mentioning polyparams in the current constraint set and their associated typevars. Mention instead the bound that caused the constrained to become unsatisfiable (if that bound is unique, i.e. the parameter appears co- or contravariantly in the type).
* Merge pull request #1445 from dotty-staging/fix-#1442Dmitry Petrashko2016-08-154-1/+86
|\ | | | | Fix #1442: add new phase, SelectStatic
| * t4859: update the check file.Dmitry Petrashko2016-08-091-1/+1
| | | | | | | | | | | | | | The new behaviour is more reasonable. Now the module if forced consistently in both examples. Note that this is deviation from behaviour of scalac.
| * SelectStatic: do not promote types-qualifiers.Dmitry Petrashko2016-08-091-1/+1
| |
| * SelectStatic: retain symbols on overloaded selectsDmitry Petrashko2016-08-091-2/+1
| |
| * SelectStatic: also normalise TypeApply nodes.Dmitry Petrashko2016-08-091-0/+6
| |
| * SelectStatic: do not create blocks that are qualifier of select\applyDmitry Petrashko2016-08-091-11/+27
| | | | | | | | | | | | | | | | | | Blocks are not denoting trees(why aren't they?) For now, I'm fixing this using a quick fix. For future, it may make sense to discuss this on dotty meeting and make blocks be a Denoting tree and return denotation of expo. Another option is to move regularisation logic into tree transformers.
| * Fix SelectStatic: do not lift java statics to free idents.Dmitry Petrashko2016-08-091-1/+3
| |
| * Fix NoDenotation.owner in SelectStatic.Dmitry Petrashko2016-08-091-3/+3
| |
| * Test that #1442 is fixed.Dmitry Petrashko2016-08-091-0/+24
| |
| * Fix #1442: add new phase, SelectStaticDmitry Petrashko2016-08-092-0/+38
| | | | | | | | | | | | | | | | GenBCode has an implicit assumption that I wasn't aware of: GetStatic should not be emitted against a valid selector. If it is, GenBCode messes up the stack by not pop-ing the selector. Surprisingly, this transformation is perfumed in nsc by flatten.
* | Merge pull request #1450 from cswinter/elim-toplevel-typeboundGuillaume Martres2016-08-153-4/+9
|\ \ | | | | | | Fix #1443: Replace toplevel TypeBounds with Any
| * | Fix #1443: Replace toplevel TypeBounds with AnyClemens Winter2016-08-153-4/+9
| |/
* | Merge pull request #1414 from dotty-staging/add-array-strawmanodersky2016-08-1414-22/+2602
|\ \ | | | | | | Add arrays to collection strawman
| * | Add missing importMartin Odersky2016-07-311-0/+1
| | |
| * | Fix problem with IndexedView.iterator.lengthMartin Odersky2016-07-312-7/+6
| | |
| * | More systematic treatement of IndexedViewMartin Odersky2016-07-302-52/+122
| | | | | | | | | | | | | | | Followinf @szeiger's suggestion, equip IndexView with optimized operations for map/drop/take.
| * | Print kind of missing memberMartin Odersky2016-07-291-4/+4
| | | | | | | | | | | | | | | When a member is missing, print whether we were looking for a type or a value.
| * | Index members of a class before evaluating its parentsMartin Odersky2016-07-292-1/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Avoids missing member in tangledCompanion.scala, which is a minimization of intermittent failures in CollectionStrawMan6. Intermittent, because it depended on order of compilation. CollectionTests have to be compiled together with but before CollectionStrawMan6 (this was _sometimes_ the case because partest did not honor indicated compilation order so far). I.e. dotc CollectionTests_2.scala CollectionStrawMan6_1.scala would trigger the error. tangledCompanion.scala captures the dependencies in a single file.
| * | Drop on LinearSeq needs to return collection of same type as it was called on.Martin Odersky2016-07-292-16/+76
| | | | | | | | | | | | This is achieved by putting it into a new trait, LinearSeqLike.
| * | Tweaks to strawmanMartin Odersky2016-07-283-173/+213
| | | | | | | | | | | | | | | | | | | | | - Add proper :: to lists - Move some methods to IterableOps in order to keep Iterable clean - Rename knownLength to knownSize - Add some implentations for performance and completeness
| * | Make colltest6 self-containedMartin Odersky2016-07-272-1/+2
| | | | | | | | | | | | Following the other colltests, put each in a separate package.
| * | Simplify lexicallyEnclosingClassMartin Odersky2016-07-271-12/+3
| | |
| * | Quick-fix eclosingMethod attribute generation for t3048.scalaDmitry Petrashko2016-07-272-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's a funny interaction between: elim-by-name(and erasure specifically); lift-static; supercalls. object E extends F2(new B {}) Here we have an anonymous class new B {} that looks like it is created by erasure. For some reason this class forgets the link to original anonymous class: SymDenot(E$annon1).initial.phase == erasure. I guess this is a bug. Additionally, the owner of E$annon1 is an anonymous method inside E, that is inSuperCall and thus we have an anonymous nested class that has enclosingClass be package. This class looks like a top-level anonymous class breaking a lot of assumptions in shared backend and taking multiple branches in unexpected ways. I'm not sure that this is a proper fix. I assume there's a bigger bug around, but I don't quite understand it right now and I need to work on other stuff. Making a quick fix to unblock @odersky.
| * | Move test from pos to runMartin Odersky2016-07-271-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Test generated code before but fails with verify error at runtime. Here's the message: Exception in thread "main" java.lang.VerifyError: Bad type on operand stack Exception Details: Location: D$.<init>()V @2: invokedynamic Reason: Type uninitializedThis (current frame, stack[1]) is not assignable to 'D$' Current Frame: bci: @2 flags: { flagThisUninit } locals: { uninitializedThis } stack: { uninitializedThis, uninitializedThis } Bytecode: 0x0000000: 2a2a ba00 1f00 00b7 0022 2ab3 0024 b1 at Test$.main(t3048.scala:13) at Test.main(t3048.scala) With the fix in last commit, test causes backend to crash with java.lang.AssertionError: assertion failed: val <none> at scala.Predef$.assert(Predef.scala:165) at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.assertClassNotArray(BCodeHelpers.scala:214) at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.assertClassNotArrayNotPrimitive(BCodeHelpers.scala:219) at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.getClassBTypeAndRegisterInnerClass(BCodeHelpers.scala:238) at scala.tools.nsc.backend.jvm.BCodeSkelBuilder$PlainSkelBuilder.getClassBTypeAndRegisterInnerClass(BCodeSkelBuilder.scala:51) at scala.tools.nsc.backend.jvm.BCodeHelpers$BCInnerClassGen$class.internalName(BCodeHelpers.scala:210)
| * | Fix problem related to cbn parameters in supercallsMartin Odersky2016-07-274-18/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The closures generated by elimByName did not get the InSuperCall flag set. This caused problems in lambda lift which led to a verify error for the new version CollectionStrawMan6. That version replaces explicit function parameters in class LazyList by by-name parameters. Also: Clarify logic for liftLocals in LambdaLift (liftLocals caused the immediate problem but was in the end not to blame).
| * | Rename fromLikeIterable -> fromIterableWithSameElemTypeMartin Odersky2016-07-273-35/+35
| | | | | | | | | | | | Makes it clearer what it is. Also, fixed check file.
| * | Fix substDealiasMartin Odersky2016-07-272-7/+17
| | | | | | | | | | | | | | | | | | substDealias did not follow aliases when the prefix of a typeref changed under substitution. This was exhibited by a bug in extensionMethods which was first discovered in CollectionStrawMan6 and was minimized in extmethods.
| * | Improve dropMartin Odersky2016-07-272-21/+7
| | | | | | | | | | | | | | | By making LinearSeq an IterableLike, we can use tail-recursion on drop.
| * | Further extension with LazyListMartin Odersky2016-07-264-209/+1081
| | | | | | | | | | | | | | | Demonstrates how to integrate lazy non-view collections in the framework.
| * | Add arrays to collection strawmanMartin Odersky2016-07-254-0/+1496
| | | | | | | | | | | | | | | This PR investigates what it takes to extend CollectionStrawMan5 to arrays.
* | | Merge pull request #1448 from dotty-staging/fix/object-subtypingGuillaume Martres2016-08-122-1/+17
|\ \ \ | |_|/ |/| | Fix #1447: Make X$ <:< X.type when X is an object
| * | Fix #1447: Make X$ <:< X.type when X is an objectGuillaume Martres2016-08-092-1/+17
|/ / | | | | | | This allows objects to be easily aliased
* | Merge pull request #1436 from cswinter/wip-repl-patdef-fixGuillaume Martres2016-08-073-21/+73
|\ \ | | | | | | Fix #1372: Add handler for `PatDef`s to REPL
| * | Fix #1372: Add handler for `PatDef`s to REPLClemens Winter2016-08-023-21/+73
| | |
* | | Merge pull request #1439 from cswinter/parsedtryGuillaume Martres2016-08-072-0/+12
|\ \ \ | | | | | | | | Fix #1367: Add ParsedTry case to UntypedTree{Copier,Map,Accumulator}
| * | | Fix #1367: Add ParsedTry case to UntypedTree{Copier,Map,Accumulator}Clemens Winter2016-08-032-0/+12
|/ / /
* | | Merge pull request #1431 from cswinter/wip-unboundwildcardodersky2016-08-014-36/+80
|\ \ \ | |/ / |/| | Fix #1396, #1403: Properly handle unbound wildcard types
| * | Add tests for infix types with wildcard parametersClemens Winter2016-08-011-0/+9
| | |
| * | Add tests for unbound wildcard typesClemens Winter2016-08-011-0/+21
| | |
| * | Fix #1403: Reject unbound wildcard typesClemens Winter2016-08-011-9/+27
| | |
| * | Fix #1396: Modify parser to allow wildcard types everywhereClemens Winter2016-08-012-27/+23
| | |
* | | Merge pull request #1429 from dotty-staging/fix-#1426Guillaume Martres2016-08-012-5/+13
|\ \ \ | |/ / |/| | Fix #1426: Fix varable printing in REPL
| * | Fix varable printing in REPLMartin Odersky2016-07-312-5/+13
| | | | | | | | | | | | | | | | | | We accidentally used `toString` instead of `show`. Fixes #1426.
* | | Merge pull request #1398 from dotty-staging/fix-#1269Dmitry Petrashko2016-07-313-7/+18
|\ \ \ | |/ / |/| | Fix #1269: Typing and pattern matching of nested subclasses
| * | Fix outer test in pattern matcherMartin Odersky2016-07-172-2/+17
| | | | | | | | | | | | | | | Previous test did not reflect deeper paths for outer references. This caused a -Ycheck:patMat failure for i1269.scala.
| * | Fix computation of parent types of a classinfo.Martin Odersky2016-07-171-5/+1
| | | | | | | | | | | | | | | The previously used `rebase` did not rewrire outer this references. The right thing to do here is an asSeenFrom.
* | | Merge pull request #1428 from dotty-staging/fix-#1285odersky2016-07-313-3/+7
|\ \ \ | | | | | | | | Fix #1285: Mutable vars are not to be considered constant
| * | | Fix #1285: Mutable vars are not to be considered constantMartin Odersky2016-07-313-3/+7
|/ / /