aboutsummaryrefslogtreecommitdiff
path: root/compiler/src/dotty/tools/dotc/core/Symbols.scala
Commit message (Collapse)AuthorAgeFilesLines
* Rename NameExtractor -> NameKindMartin Odersky2017-04-111-1/+1
|
* Make freshName semanticMartin Odersky2017-04-111-1/+2
|
* PolishingsMartin Odersky2017-04-061-2/+2
|
* Further refactoringsMartin Odersky2017-04-061-3/+3
| | | | | - Use TypeLambda instead of PolyType. - Further harmonize factory operations
* Break out functionality from MethodTypeMartin Odersky2017-04-061-5/+5
| | | | | and generalize MethodParam to ParamRef, and TypeParamInfo to ParamInfo
* Drop mixed MethodType apply methodMartin Odersky2017-03-141-1/+1
| | | | | | The dropped method takes direct parameter types but a result type expression. Since parameter types are now in general dependent as well, that method is mostly redundant.
* Fix Symbol#sourceFile not working after FlattenGuillaume Martres2017-03-141-4/+7
| | | | | The SourceFile annotation is only present on the non-flattened top-level class.
* Treat implicit by-name arguments as lazy valuesMartin Odersky2017-02-171-0/+4
| | | | | | | | | | With the previous rules, the two test cases produce a diverging implicit expansion. We avoid this by creating for every implicit by-name argument of type T a lazy implicit value of the same type. The implicit value is visible for all nested implicit searches of by-name arguments. That way, we tie the knot and obtain a recursive lazy value instead of a diverging expansion.
* Merge pull request #1832 from dotty-staging/fix-1810odersky2016-12-201-7/+17
|\ | | | | Fix #1812, Symbols.mapSymbols shouldn't replace denotations
| * Fix #1812, Symbols.mapSymbols shouldn't force annotation transformation.Dmitry Petrashko2016-12-191-1/+2
| | | | | | | | Reasoning similar to one in the previous commit also applies to annotations.
| * Fix #1812, Symbols.mapSymbols shouldn't replace denotationsDmitry Petrashko2016-12-191-6/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It will use lazy types instead. The current version transforms a type, with a context that has denotations that may be forcefully replaced by mapSymbols. Types created during this transformation may cache denots, that are-to-be replaced. This is very problematic as this method is called from TreeTypeMap.withMappedSyms in a fixed-point cycle, creating new symbols on every iteration. Those cached denotations could make types keep symbols from previous iterations indefinitely. The changed version does not transform the types eagerly, and instead makes them lazy. Assuming there are no cycles, this should ensure correct ordering. Unfortunatelly, at this point in the compiler we basically always touch everything, and we can't even transform the info of denotation without this denotations info. We basically have a chicked&egg problem here. To solve it, I use the same trick as used by other lazy types by assigning an approximation of future type first. This allows to pass the tests and makes dotty more robust, but I suspect this isn't a complete fix and new similar bugs may arrive.
* | Merge pull request #1775 from dotty-staging/add-implicit-funtypesodersky2016-12-181-0/+4
|\ \ | | | | | | Add implicit function types
| * | initialDenot method for symbolsMartin Odersky2016-12-171-0/+4
| |/ | | | | | | | | | | | | This avoids denotation transforms when called at a later phase because it cuts out current. Not needed in final version of ShortcutImplicits, but I thought it was good to have.
* / Make errors are not swept under the carpetMartin Odersky2016-12-171-2/+5
|/ | | | | | | | | Typer#ensureReported's comment outlines an example where errors could go unreported, resulting in error trees after typer without any reported error messages. This commit makes sure that at least one error is reported if a tree node has an error type. Fixes #1802.
* Revert fix to #1701.Martin Odersky2016-11-241-1/+1
| | | | | | | | | | | Fengyun's original solution was the right one. We cannot NOT enter a package class into its parent scope, because reloading the denotation with .member will fail. So we need to enter it and compensate by adding a clause to `qualifies` in `typedIdent`. Weirdly, this was noted only when running tasty_bootstrap from a custom classpath in the new build setup. So it was pretty tricky to diagnose.
* Workaround last issue with -Ytest-picklerGuillaume Martres2016-11-221-1/+1
| | | | | | | We run checkNoPrivateLeaks in the unpickler since last commit and this is causing an issue related to privacy leaks. Give up and workaround it since we're going to redesign how we handle privacy leaks because of https://github.com/lampepfl/dotty/issues/1723 anyway.
* Move compiler and compiler tests to compiler dirFelix Mulder2016-11-221-0/+602