| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|\
| |
| | |
Tree transformer&TreeTransform
|
| |
| |
| |
| |
| |
| |
| |
| | |
1) using fast tracks in case node type isn't altered by Transformation;
2) using pre-computed hints(nxTransformXXX arrays) to quickly jump to next transformation interested in transforming particular Tree type;
3) using pre-computed hints(nxPrepareXXX arrays) to know which transformations are going to 'prepare' for transforming particular Tree type;
4) recomputing those hints in case some transformation changed implementation class during 'prepare';
5) TreeTransform is now responsible of calling transformFollowing on nodes created by it.
|
|/
|
|
|
|
|
|
| |
Two fixes:
1) Avoid the infinite recursion in checkAccessible if the accessibility check fails.
2) Make accessibility succeed for the test, and in general if the target denotation does not have a symbol.
Added original test in pos and a negative test which makes accessibility fail.
|
|\
| |
| | |
For some tests context is required, it should be passed to checker phase.
|
| | |
|
|\ \
| |/
|/| |
Fix/#34 pathresolvers
|
| |
| |
| |
| | |
Right now this one fails.
|
|\ \
| |/
|/|
| | |
Infrastructure for per-phase tests, with inline source as a string.
|
| | |
|
| |
| |
| |
| | |
We need to use Object as parent then, but this was forgotten.
|
| | |
|
|/
|
|
|
|
|
|
|
|
|
| |
Template parents always were constructor calls before. This is not correct because in a situation like the one
elaborated in templateParents, the trait D has the class C as supertype, but it does not call its constructor (in fact, if we added a () parameter list to make it into a constructor this would be wrong because C takes parameters.
Now parents can be either types or constructor calls.
The logic in Namer and Typer that deals with parents is cleaned up. In particular, we now construct any synthetic class parent as a full type, before calling normalizeToClassRefs. This obviates the forwardRefs logic that needed to be done in a cleanup of Namers.
Also added two more checks: (1) All parents except the first one must point to traits. (2) A trait may not call a parent class constructor.
|
| |
|
|
|
|
| |
blacklisted file.
|
|
|
|
|
| |
And silence some of the error messages we print so the build log
doesn't go above 4MB (Travis' limit)
|
| |
|
|\ |
|
| |
| |
| |
| | |
File name issues
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
Compiler tests can now be run with configurable number of compilers and runs in a compiler.
|
| |
| |
| |
| | |
... because there's no way to reload them in a new run.
|
|/
|
|
|
| |
Otherwise we get spurious "compiled twice" errors on every symbol defined in a run after the first one.
Also, fixed a bug so that now run ids are correctly incremented.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
some nested import.
This also changes the criterion when a root import is disabled.
A root import is now disabled if there is an inner import from the same package or module, and the inner import contains at least one disabling clause X => _. (The latter crierion is new; without it, we would consider something like
import scala.{collections => c}
as a hiding import for Scala, which seems to go too far.)
|
|
|
|
| |
Instead of doing a wildApprox of the whole type, we fuse with the logix for method types and just do a wild approx of the single method type argument we have to test.
|
|
|
|
|
|
|
|
| |
In particular, need to unify polyparams before replacing one with the other, if the result wiould lead to a cyclic constraint.
Also: Avoid setting `inst` field of a type variable if a subtype operation is in progress, because the constraint might be retracted, and the instantiation should be retracted with it.
Third, tighter checks of cyclic constraint, and deep subtype recursions can now be demanded to cause an abort.
|
|
|
|
| |
Caused a cyclic reference error when compiling the three files in test "testNonCyclic".
|
|
|
|
|
|
|
|
|
|
| |
If we look for aprototype of the form
select(name, FunProto(args, ...))
it's important that the result type of the FunProto type is a wildcard type, because implicit views are disabled for that match.
--- this commit achieves the first bootstrap of dotty! ---
|
| |
|
|
|
|
|
|
| |
- fix wrong directories
- add xml where needed to teh classpath
- reduce expected stub # because xml was added
|
| |
|
|
|
|
| |
Happened (albeit non-deterministally) when compiling parsing/*.scala
|
| |
|
| |
|
|
|
|
| |
Previousely, compiling all of dotc/core caused a cyclic reference. The cyclic reference was caused by evaluating a module val, which caused it to evaluate its type, which caused the evaluation of all preceding imports, which led via some hops back to the same module val. We now break the cycle by computing the signature of a module val without going through its type.
|
| |
|
|
|
|
| |
If the refinement in a refined type refers to a local symbol, drop it and return only the parent.
|
| |
|
|
|
|
| |
Previously, if forceDegree = noBottom, we failed the test if a type variable was minimized to Null or Nothing. Now we succeed and maximize the type variable instead. It seems Scala2x does soemthing similar, at least the change is needed to make PathResolvers.scala compile.
|
| |
|
|
|
|
| |
Need to pass a current context to be able to find instances of typevars.
|
|
|
|
| |
When removing logging, it turned out that Coder no longer compiled. The problem was tracked to safeUnderlyingTypeParams which did not force enough.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and I believe should not compile under Scala2x either. The problem is in line 361 of TreeInfo.scala
methPart(tree) match { ...
Here,
tree: tpd.Tree
methPart: (tree: this.Tree): Tree
So we need to show that
tpd.Tree <: this.Tree
LHS expands to
ast.Tree[Type]
RHS expands to
ast.Tree[T] where T >: Untyped is TreeInfo's type parameter
Since Tree is contravariant, we need to etablish
T <: Type
but I see nothing that could prove this. The Dotty typechecker detected the problem, yet Scala2x's didn't. Need to follow up on why not. For now, adding the necessary constraint to the codebase.
|
| |
|