| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
Add support for raw docstrings in ASTs
|
| | |
|
| | |
|
| |
| |
| |
| | |
This commit also adds a printer for use by dottydoc.
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This commit fixes errors that would've occurred in this situation:
```
/** Docstring 1 */ <- this one would've been chosen
/** Docstring 2 */
/** Docstring 3 */
class Class
```
And this situation:
```
/** Docstring 1 */
trait Trait
/** Docstring 2 */ <- this one would've been chosen
```
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
|\ \
| |/
|/| |
Check Java classes are not used as objects
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Following code should not pass Ycheck:
import java.lang.Math
val myMath: Math.type = Math
myMath.sqrt(3.0)
id(myMath)
|
|\ \
| | |
| | | |
Improvements to cyclic checking, avoidance, named parameters
|
| | |
| | |
| | |
| | |
| | |
| | | |
Now verifies that the named type parameters of an overriding
type or class are the same as the named type parameters of
an overridden type.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Also: In a TypeMap, the variance of the prefix is unchanged
(was: always 0). This brings it in line with TypeAccumulator
and the subtyping rules.
|
| | | |
|
| | |
| | |
| | |
| | | |
We should not return a ClassInfo as a value type.
|
| | |
| | |
| | |
| | | |
No need to form the glb.
|
| | | |
|
| | |
| | |
| | |
| | |
| | | |
Do it only if at least one of the types has unnamed parameters. This is
a fundamental conflict with how we deal with intersections and unions.
|
| | |
| | |
| | |
| | |
| | |
| | | |
When instantiating a type variable, make the instance has the same named
type parameters as the upper bound. This is the analogue of kind-correctness
for named type parameters.
|
| | |
| | |
| | |
| | |
| | | |
Add methods for expressing what the named type parameters of a class or type are.
Also, add a method that widens a type so that is has a specified set of named type parameters.
|
| | |
| | |
| | |
| | | |
Explicitly given type parameters were printed twice.
|
| | |
| | |
| | |
| | | |
Type was printed in raw form.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
vcInlineMethods could produce a different type on rewire which led to a -Ycheck failure. We now insert
a cast when that happens.
Test case: pos/flowops1.scala with -Ycheck:vcInline.
|
| | |
| | |
| | |
| | |
| | | |
The previous formulation broke for named parameters.
Test case in flowops1.scala.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Simplified logic and now check prefixes of TypeRefs.
Without the simplified logic we would get false cyclic errors for ski.scala.
Test case: flowops.scala
Fixes #1185.
|
|\ \ \
| | | |
| | | | |
Make erased value type take a TypeRef instead of a ClassSymbol
|
| | | | |
|
| | |/
| |/|
| | |
| | | |
To address #1198, we need to avoid putting symbols in ErasedValueTypes.
|
|\ \ \
| | | |
| | | | |
Two fixes to TermRefWithSignature.newLikeThis
|
| | | |
| | | |
| | | |
| | | |
| | | | |
Used to not support more precise prefixes.
Assumed that symbol does not change.
|
| |/ /
| | |
| | | |
Used to compute `asMemberOf(prefix)` twice.
|
|/ / |
|
|\ \
| | |
| | | |
First of a series of compiler design documents
|
| | | |
|
| | |
| | |
| | |
| | | |
Give a one-line explanation what each phase does in Compiler.
|
| | |
| | |
| | |
| | |
| | | |
Mode is used from a lot of low-level code, does not just reflect Typer info.
So it makes more sense top to place it in the core package.
|
|/ /
| |
| |
| | |
builds
|
| |
| |
| |
| |
| |
| |
| |
| | |
This does not yet unable the checks that `@switch` verifies that
the compiler was indeed able to perform the optimization.
This implementation also does not support guards. A match with
guards will never be optimized as a switch.
|
| | |
|
| |
| |
| |
| |
| |
| | |
This is a simpler fix than the previous one.
Local methods, cannot change `this` and do not need to go through
FullParameterization.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If the method that recurses over a different type arguments,
if this method is specialised, it would lead to method not
being tail-rec anymore.
Eg:
def foo[@specialized A, @specialized B]: Unit = foo[B, A]
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
TailRec methods remain members of enclosing class,
it means that they can refer to methods that require this.type.
It means that tailrec, unlike value classes is not allowed to widen
type of $this to it's full self type.
Fixes #1089
|
|\ \
| |/
|/| |
Repl fixes and tests
|