| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
A transformer that provides a convenient way to create
companion objects.
|
|/
|
|
|
|
|
| |
1) reorders companion objects so that they allways follow matching
classes
2) removes imports and named arguments
3) rewrites all trees holding types are to TypeTrees
|
|\
| |
| | |
Fix/#50 volatile
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Volatile checking needs to take all intersections into account; previously these
could be discarded through needsChecking.
Plus several refactorings and additions.
1) Module vals now have Final and Stable flags set
2) All logic around isVolatile is now in TypeOps; some of it was moved from Types.
3) Added stability checking to Select and SelectFromType typings.
Todo: We should find a better name for isVolatile. Maybe define the negation instead under the name
"isRealizable"?.
|
|/
|
|
|
|
|
|
|
| |
1) New method compileFiles which allows one to compile the content of a directory one file or directory
after another.
2) max constraint is printed to typr.
Added new test pos_all. Other pos tests can be retired.
|
| |
|
|\
| |
| | |
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.
|