aboutsummaryrefslogtreecommitdiff
path: root/tests/neg
Commit message (Collapse)AuthorAgeFilesLines
* Add inline for valsMartin Odersky2016-10-021-0/+24
| | | | | | | | | | - allow inline as an alternative to final for vals (final is retained for backwards compatibility for now) - allow inline for parameters - check that rhs of inline value has a constant type - check that arguments to inline value parameters have constant type - check that inline members are not deferred - make inline members effectively final
* Add accessibility check for type of newMartin Odersky2016-10-021-1/+0
|
* Fix problem related to accessor generation under separate compilationMartin Odersky2016-10-021-5/+7
| | | | | | | Accessors were multiply generated under separate compilation. To fix this, the resident body of an inlined function is now the same as the inlined body. Both use accessors where necessary. Previously, only the inlined body used accessors.
* Make inline a keywordMartin Odersky2016-10-021-2/+1
| | | | | | | `inline` is now a modifier keyword. To keep disruption tolerable, we still allow `@inline` as an annotation as well. Other uses of `inline` are supported only under `-language:Scala2` and are rewritten to identifiers in backticks.
* Make inline annotation @scala.inline.Martin Odersky2016-10-023-17/+2
| | | | | | | | | | | | | | | | | | Drop @dotty.annotation.inline. This will inline all @inline marked methods in Scala for which a body is known (i.e. that are either compiled in the same run or have Tasty trees available). Option -Yno-inline suppresses inlining. This is needed for the moment because some @inline methods access private members or members that are otherwise inaccessible at the call-site. Also fixes some problems in Inliner - make sure type arguments to inline calls re fully defined - don't forget recursive calls in typeMap - don't forget positions in treeMap - drop dead code dealing with outer.
* Neg test demonstrating inline positions under cross-compilationMartin Odersky2016-10-022-0/+15
|
* Recursive inlining testsMartin Odersky2016-10-021-0/+15
| | | | | pos/power inlines with alomst no extraneous boilerplate. neg/power gives an error that maximal numbers of inlines was exceeded.
* First version of inline schemeMartin Odersky2016-10-021-0/+15
| | | | | To be done: outer accessors To be done: error positions
* Fix #1503 - be careful where to insert an apply.Martin Odersky2016-09-171-0/+14
| | | | | | `apply` nodes should not be inserted in the result parts of a block, if-then-else, match, or try. Instead they should be added to the surrounding statement.
* Merge pull request #1469 from dotty-staging/fix-scala.Dynamicodersky2016-09-1611-0/+172
|\ | | | | Fixes for scala.Dynamic
| * Enable scala.Dynamic pending/untried tests.Nicolas Stucki2016-09-059-0/+147
| |
| * Fix #1468: Add type parameter support for scala.DynamicNicolas Stucki2016-09-052-0/+25
| |
* | Improve error message on empty catch blockFelix Mulder2016-09-151-0/+3
|/
* More tests recategorizedMartin Odersky2016-08-261-0/+20
|
* Test recategorizationMartin Odersky2016-08-261-0/+40
|
* Merge pull request #1456 from dotty-staging/fix-#1444odersky2016-08-213-2/+35
|\ | | | | Fix #1444: Pass implicits to parameterless traits if needed
| * Fix testMartin Odersky2016-08-201-1/+1
| |
| * Fix #1444: Add implicit arguments to supertraitsMartin Odersky2016-08-203-2/+35
| | | | | | | | | | | | | | | | If a super trait is given as a type (i.e. no argument list), implicit args were not passed. This is fixed now. Also, we now check for parameterized traits lacking type arguments in Typer instead of in Mixin. Fixes #1444.
* | Add import back.Martin Odersky2016-08-181-0/+2
| | | | | | | | Needed because the test is also run in neg wihtout command line option.
* | Refinements to auto tuplingMartin Odersky2016-08-181-2/+0
|/ | | | | | | | | | There's a nasty interaction with auto-tupling and trying to insert an implicit on the qualifier of a call. If the original call fails, we need to "undo" any auto-tupling decisions in calls where an implicit is inserted on the qualifier. Also: Needed to fix canAutoTuple test so that Scala2 feature is checked instead of dotty's. Also: Drop features in dotty.language that duplicate those in scala.language.
* Harden copmpareHkApply for ill-typed programsMartin Odersky2016-08-171-0/+25
| | | | Turn assertion into test. Without this, neg/tcpoly_overloaded.scala fails.
* New string infterpolatorsMartin Odersky2016-08-161-0/+26
| | | | | | Roll `sm` and `i` into one interpolator (also called `i`) Evolve `d` to `em` interpolator (for error messages) New interpolator `ex` with more explanations, replaces disambiguation.
* Error message for illegal self type (#1424)Martin Odersky2016-08-161-0/+3
| | | | Remove debug info from error message.
* Suspend interpolating typevars when there are unreported errors.Martin Odersky2016-08-161-0/+8
| | | | | | | | 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 #1443: Replace toplevel TypeBounds with AnyClemens Winter2016-08-151-0/+20
|
* Merge pull request #1399 from dotty-staging/fix-patmat-typingodersky2016-07-182-0/+25
|\ | | | | Fix typing of match expressions
| * Fix test error annotationMartin Odersky2016-07-181-1/+1
| |
| * Add test caseMartin Odersky2016-07-181-0/+24
| | | | | | | | Also fix reviewers comments about `firstParent`
| * Fix typing of match expressionsMartin Odersky2016-07-171-0/+1
| | | | | | | | | | Allow matches between unapply types and selector type where a possible overlap might exist.
* | Merge pull request #1389 from dotty-staging/fix-#1381odersky2016-07-181-47/+0
|\ \ | |/ |/| Changes to overloading
| * Changes to overloadingMartin Odersky2016-07-151-47/+0
| | | | | | | | | | | | Fix #1381: Overloading is now changed so that we first try without implicit searches. Only if that leaves no applicable alternatives we try again with implicit search turned on. This also fixes test case t2660, which got moved from neg to pos.
* | Merge pull request #1291 from nicolasstucki/implement-scala-dynamicDmitry Petrashko2016-07-1532-0/+291
|\ \ | | | | | | Add scala.Dynamic support.
| * | Fix TypeOps.featureEnabled ignoring import disabling.Nicolas Stucki2016-07-071-0/+10
| | |
| * | Add scala.Dynamic language feature check.Nicolas Stucki2016-07-071-0/+3
| | |
| * | Fix #657: Add scala.Dynamic support.Nicolas Stucki2016-07-0731-0/+278
| | |
* | | Merge pull request #1334 from dotty-jvican/implement-no-predef-no-importDmitry Petrashko2016-07-153-0/+9
|\ \ \ | |_|/ |/| | Implement -Yno-predef and -Yno-imports
| * | Implement -Yno-predef and -Yno-importsjvican2016-06-293-0/+9
| | | | | | | | | | | | | | | | | | * Implement flags -Yno-predef and -Yno-imports * Add unit tests for both
* | | Bounds of type lambdas compare contravariantlyMartin Odersky2016-07-152-1/+9
| | | | | | | | | | | | | | | | | | | | | Enable checking of bounds when comparing type lambdas. This invalidates a pattern used in t2994 and potentially other code, where a bound [X] -> Any is used as a template that is a legal supertype of all other bounds. The old behavior is still available under language:Scala2.
* | | Add test case for hk bounds checkingMartin Odersky2016-07-141-0/+23
| | |
* | | Fix bounds checking of hk applied typedMartin Odersky2016-07-141-4/+4
| | | | | | | | | | | | | | | Previous logic could only handle classes as constructors. Also, address other reviewers comments.
* | | Allow hk parameters in lower boundsMartin Odersky2016-07-132-11/+4
| | |
* | | Drop restriction to 2nd order hk typesMartin Odersky2016-07-121-3/+3
| | | | | | | | | | | | Allow hk type parameters to be higher kinded themselves.
* | | Avoid dealiasing on type applicationMartin Odersky2016-07-122-12/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | When applying a type alias of a type lambda, keep the original application instead of reducing. But reduce anyway if - the reduced type is an application where the type constructor has the same kind as the original type constructor, or - some of the arguments are wildcards.
* | | Allow definition of new types in refinementsMartin Odersky2016-07-124-10/+10
| | | | | | | | | | | | | | | Allow definition of types in refinements that do not appear in parent type.
* | | Fix SI-2712Martin Odersky2016-07-111-0/+11
| | | | | | | | | | | | | | | Allows partially instantiated types as type constrictors when inferring higher-kinded types.
* | | More testsMartin Odersky2016-07-111-0/+11
| | |
* | | Disallow higher-kinded types that simulate general existential typesMartin Odersky2016-07-111-0/+61
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We cannot handle such types in general. So we now check that a hk application C[args] where some of the arguments are wildcards does not have as a supertype a hk application ([X] -> B)[args]
* | | Don't make * types higher-kinded in avoidMartin Odersky2016-07-112-10/+10
| | | | | | | | | | | | Also, fix error counts in tests for new hk scheme.
* | | Change testsMartin Odersky2016-07-111-37/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - compileMixed failed because there was a cycle between immutable.Seq (compiled) and parallel.ParSeq (loaded from classfile). Inspection of the completion log (turn completions Printer on) and the stack trace showed that there's nothing we can do here. The old hk scheme did not go into the cycle because it did not force an unrelated type. I believe with enough tweaking we would also hva egotten a cycle in the old hk scheme. The test is "fixed" by adding parallel.ParSeq to the files to compile. - Disable named parameter tests Those tests do not work yet with the revised hk scheme. Before trying to fix this, we should first decide what parts of named parameters should be kept.
* | | Eta-expand unapplied types that have type parametersMartin Odersky2016-07-111-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We would like to change from a scheme where eta-expansion was prototype driven to one where unapplied parameterized types are always eta expanded. The reason is that we might miss some eta expansions due to cyclic references. run/colltest4 is an exmaple. Here, we missed an eta expansion in the type of Iterator. The class definition is: trait Iterable[+A] extends IterableOnce[A] with FromIterable[Iterable] { We'd expect that the second parent would expand to FromIterable[[X0] -> Iterable[X0]] But we miss the expansion because at the time we complete Iterable we have not completed FromIterable yet. In fact this happens in both the old and the new hk scheme. But in the old scheme we did not notice the error whereas in the new scheme we get an error in PostTyper that the type Iterable does not conform to its bound `[X0] -> Iterable[X0]`. With this commit, we change the scheme, so that eta-expansion depends on the type parameters of a type itself, instead of the expected type. We should investigate whether we can do a similar change for Scala2 classloading. Check kinds of type parameters Also, do not allow a hk type if the bound is a * type.