aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Some small doc changesMartin Odersky2014-02-162-1/+10
|
* Avoid forming And/Or types with equal operands.Martin Odersky2014-02-142-10/+12
| | | | This can happen in particular in derivedAnd/Or type, when applying a substitution or other mapping which identifies two types that were different before.
* Streamlined treatment of ThisType in subtype checks.Martin Odersky2014-02-141-28/+13
|
* Two performance optimizationsMartin Odersky2014-02-136-57/+71
| | | | | 1) Split out wildApprox into separate function 2) Be more careful not to follow static prefix chains where not needed
* Some changes in the interest of speedups.Martin Odersky2014-02-129-73/+89
|
* Fixed a bug in LRUcache which prevented sizes >= 8.Martin Odersky2014-02-123-3/+6
|
* Wrapped up definition of attachments.Martin Odersky2014-02-112-41/+68
|
* COnverted symOfTree and expandedTree to attachments.Martin Odersky2014-02-113-18/+30
|
* New scheme for attachments.Martin Odersky2014-02-1117-27/+114
| | | | | | | Added general way to put attachments on some base type (which needs to inherit from Attachment.Container). Used it to turn typedTree map into an attachment. Also, moved DotClass to dotc.util.
* Merge branch 'wip/bring-forward': Incremental compilationMartin Odersky2014-02-1010-1337/+171
|\ | | | | | | | | 1) Make definitions load symbols in current run 2) Change handling of invalid parents. Instead of a copied denotation, we now invalidate the caches of the existing one. (Copying was not enough, as old versions of denotations kept leaking in).
| * New scheme for incremental invalidation of parents.Martin Odersky2014-02-106-74/+87
| |
| * Make Definitions load all symbols in current runId.Martin Odersky2014-02-106-1287/+61
| |
| * WIP: Fixes to bring symbols forwardMartin Odersky2014-02-093-20/+64
|/
* Get rid of CompleteInCreationContextMartin Odersky2014-02-092-8/+5
| | | | The only remaining completers that complete in creation context are the source completers defined in Namers. So a separate abstraction is no longer needed.
* Symbol loaders no longer complete with creation contextMartin Odersky2014-02-098-197/+189
| | | | | | Instead current ctx is passed through everywhere. Question: can we factor out ctx better?
* Getting rid of some CompleInCreationContextsMartin Odersky2014-02-094-17/+16
|
* Making completer take an implicit contextMartin Odersky2014-02-0911-71/+97
| | | | | | | As a first step, we make the complete method in LazyType take an implicit context parameter. This requires a fairly large propagation of implicit contexts. The implicit parameter is ignored for classes inheriting from CompleteInCreationContext (which until now are all completers). The next step will be to make the complete methods of selective lazy types take the current context, rather than the creation context.
* Fix for creating right number of compilers in BenchMartin Odersky2014-02-091-3/+1
|
* Move maxConstraint computation to RunInfo to avoid references to stale symbols.Martin Odersky2014-02-093-11/+12
|
* Skolems are permanent, but not packages.Martin Odersky2014-02-091-3/+5
|
* Generalize test infrastructureMartin Odersky2014-02-071-7/+11
| | | | Compiler tests can now be run with configurable number of compilers and runs in a compiler.
* Invalidate companions after indexing.Martin Odersky2014-02-071-13/+10
| | | | Invalidating them before indexing means symbols are touched before a new version is entered, which leads to "compiled twice" errors.
* Replace open package module logic by special member lookups in a package class.Martin Odersky2014-02-073-46/+52
| | | | Rather than fiddling with scopes, which can lead to race conditions, we now special case member lookup and mamber name filters in ClassDenotations that represent packages.
* Make skolems live forever...Martin Odersky2014-02-061-1/+1
| | | | ... because there's no way to reload them in a new run.
* Catch stale referencesMartin Odersky2014-02-063-7/+10
| | | | If a NamedType was denoted a SymDenotation one run, but stops being defined in the next, throw a staleSymbol error.
* Checking for already existing symbols before creating new ones.Martin Odersky2014-02-064-14/+25
| | | | | 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.
* Fix bug for reading type arguments in ClassfileParserMartin Odersky2014-02-065-10/+13
|
* Commenting out unused alternative isSubType implementation.Martin Odersky2014-02-031-281/+283
|
* Dropping eligibility of conforms as an implicit conversion.Martin Odersky2014-02-031-8/+3
| | | | "conforms" is no longer special-cased to be eligible as a implicit conversion. Only implicit methods are eligible, whereas conforms is an implicit value with an apply method. So far, "conforms" as an implicit conversion masked in effect some type inference bugs. With the previous two commits, it is no longer necessary because two type inference bugs got fixed.
* Fine-tuning contexts for resolve overloadingMartin Odersky2014-02-031-1/+1
| | | | When resolving overloading with a fun proto type, we need to evaluate the arguments in the current context, not in an exploring context. Reason: The argument types might contain type valiables that are constrained in the context and that needs to be maintained.
* More robust constant foldingMartin Odersky2014-02-031-2/+7
| | | | Can now also convert a constant to a type that's lower-bounded by a primitive numeric type.
* New benchmark class that allows tuning for #compilers and #runsMartin Odersky2014-02-032-7/+15
| | | | | | | | by command line options like #compilers 3 #runs 10 This would create one after another 3 compiler instances and perform 10 runs in each.
* Fix problems with TypeVar instantiationMartin Odersky2014-02-033-10/+13
| | | | | 1) Simplify skipped one level over arguments of AndType/OrType. 2) variances needs to follow instantiated typevars
* Optimize subtype test between refined types with multiple refinementsMartin Odersky2014-02-032-8/+84
| | | | We now pair refinedInfos with the same name as deeply as wek can (before only went to depth 1).
* Relaxing check that implicits must have explicit return typeMartin Odersky2014-02-027-10/+10
| | | | | | Now this is required only for members of a template. Local statements can still have implicits with no result type. (Maybe we need to get back on this). Also, changed Dotty itself and tests to adhere to the new restriction.
* Improve eligible caching in implicit search.Martin Odersky2014-02-021-1/+1
| | | | Improves effectiveness of elidable cache from ~66% to ~85% and reduces # of implicits that need to be checked after discarding to about 20% what it was before.
* Adding checks for implicit definitionsMartin Odersky2014-02-022-1/+24
| | | | | | | 1) Result type may not be empty 2) Parameters of implicit conversions may not be singletons Reason for 2) is that we can do a much better caching for eligible implicits if we can widen singleton arguments in ViewProto. This leads to consicderable speedups in implicit search which seem to be hard to get without the restriction.
* Avoid accessing implicits that come from root imports that are hidden by ↵Martin Odersky2014-02-024-12/+37
| | | | | | | | | | | | 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.)
* wip for implicits handling root imports.Martin Odersky2014-02-022-9/+11
|
* Cheaper eligibility test for PolyTypes.Martin Odersky2014-02-021-10/+17
| | | | 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.
* Fix checking for disabled root importsMartin Odersky2014-02-021-5/+5
| | | | Needs to be done always when hitting a wildcard import, not just when something was found
* Rename dotty.Predef -> dotty.DottyPredefMartin Odersky2014-02-022-2/+2
| | | | to avoid accidental confusion with scala.Predef
* Refactoring implicit discardsMartin Odersky2014-02-012-27/+42
| | | | | (1) Moved into refMatches, to avoid normalize on references that are discarded anyway (2) Added another check if the expected type is a value class
* Revert "Dropping a type annotation, which is no longer needed."Martin Odersky2014-02-011-1/+2
| | | | This reverts commit 7cb292fad14dc9ee7f1325f83df0328ffa8f2194.
* Make argument types of viewproto undergo WildApprox before testing for ↵Martin Odersky2014-02-013-15/+25
| | | | | | eligibility. Unless we do this, typevars would sneak into eligibility checks.
* Dropping a type annotation, which is no longer needed.Martin Odersky2014-01-311-2/+1
|
* Replacing most occurrences of HashMap with AnyRefMapMartin Odersky2014-01-307-31/+43
|
* Performance improvements to NamedType#denotMartin Odersky2014-01-301-29/+48
|
* Add early discarding of methods for eligible check.Martin Odersky2014-01-292-6/+33
| | | | MethodTypes and PolyTypes now check their argument for compatibility before setting up a complete isApplicable test.
* Better implicit loggingMartin Odersky2014-01-292-5/+20
|