aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Fixed ScannerTest to make it work with relative pathsMartin Odersky2014-02-061-2/+2
|
* Made showclass tests more robust if fewer stubs are generated than the limit.Martin Odersky2014-02-061-1/+1
|
* Fix bug for reading type arguments in ClassfileParserMartin Odersky2014-02-066-17/+17
|
* Merge pull request #7 from DarkDimius/pathsLukas Rytz2014-02-064-14/+14
|\ | | | | Modified tests to use relative paths
| * Merge branch 'master' of github.com:lampepfl/dotty into pathsDmitry Petrashko2014-02-063-29/+70
| |\ | | | | | | | | | | | | Conflicts: readme.md
| * | One more absolute path changed to relativeDmitry Petrashko2014-02-061-1/+1
| | |
| * | Update readmeDmitry Petrashko2014-02-061-0/+1
| | |
| * | Use relative paths in testsDmitry Petrashko2014-02-064-13/+13
| | |
* | | Create LICENSE.mdLukas Rytz2014-02-061-0/+16
| |/ |/|
* | Contributing guideVlad Ureche2014-02-062-1/+65
| |
* | Update and rename readme.md to README.mdVlad Ureche2014-02-062-28/+6
|/
* Commenting out unused alternative isSubType implementation.Martin Odersky2014-02-032-286/+292
|
* 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-034-10/+16
| | | | | 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-028-11/+11
| | | | | | 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-022-1/+12
| | | | 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-026-14/+39
| | | | | | | | | | | | 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-022-10/+18
| | | | 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-022-5/+16
| | | | 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
|
* Implements refined printing of ViewProtoMartin Odersky2014-01-291-0/+3
|
* Fixing equality for selection protosMartin Odersky2014-01-292-7/+12
| | | | | | They no longer can be accidentally equal to refinement type. Todo: Disentangle selection protos entirely from Refinement types? See branch disentangle-selectproto.
* Better tracking of implicit searchMartin Odersky2014-01-292-4/+14
| | | | We now track eligible calls and the number of refs tested in an eligible call.
* Selective caching of SelectionProtos and ViewProtosMartin Odersky2014-01-276-74/+112
| | | | | | We cache SelectionProtos if their "compat" parameter is "NoViewsAllowed". We always cache ViewProtos. That's important for implicit search, because this enables eligible refs to be better cached. To make this work, we add a case to WildApprox which massages SelectionProtos so they also get noViewsAllowed in the compat parameter.
* Cache result of narrow on Methods.Martin Odersky2014-01-272-2/+16
| | | | narrow is exercised a lot after the improvement to normalize. So it's important to cache it in order not to bust `uniques` with NoprefixTermRefs.
* Accept method types directly in isApplicable.Martin Odersky2014-01-274-18/+24
| | | | This lets us streamline normalize, and avoid to create FunctionTypes if the expected type is a FunProto or ViewProto.
* Instrumentation on total isSubType calls.Martin Odersky2014-01-261-4/+9
|
* New treatment of uniquesMartin Odersky2014-01-2610-145/+300
| | | | | | | | To avoid to always create a type before checking its uniqueness we specialize on the three most common categories: RefinedTypes, TypeBounds and NamedTypes. Each category gets its own uniques map. Hashing is disentangled from Types. The new treatement seems to give some improvement (2-5%?) but not much.
* Refactored RefinedTypes to favor the case where refinedInfo is independent ↵Martin Odersky2014-01-262-8/+17
| | | | of type itself.
* Better caching of typesMartin Odersky2014-01-262-20/+31
| | | | | | | | | | | Now, PolyTypes, BoundTypes and TypeVars are cached, too. This leads to the following changes: - unique types table 135K -> 310K - uncached types 923K -> 0.5K (these are types that are cachable, but contain an uncached part) - cached type allocs 3420K -> 4322K - runtime on dotc (24KLOC) 31sec -> 20sec So, it's a big net win, but we should watch the size of the uniue types table; possibly make it weak.
* Special casing of numeric widenings in viewExistsMartin Odersky2014-01-261-2/+13
| | | | | | To save time we handle these directly, rather than looking for implicit conversions. Reason: this saves time (looks like 5-10% of frontend), and we know these are always available. The scheme would be foiled if someone introduced additional implicit conversions between numeric types. We could detect and forbid that.
* Some more statistic samplingMartin Odersky2014-01-268-32/+68
|
* Update to 2.11Martin Odersky2014-01-262-11/+4
| | | | Previous flagsString is no longer accessible. Have to use Dotty's mechanism to show flags,
* Statistics now also computes call counts of tracked operations.Martin Odersky2014-01-261-5/+23
|
* Add text markers around "hot" tracing operations.Martin Odersky2014-01-264-7/+7
| | | | That way they can be easily removed by search and replace, which gives us a clearer picture of the runtime profiles.
* Breaking out gc() method in TyperState.Martin Odersky2014-01-262-9/+30
| | | | Will need to call from type comparer if instantiations were delayed