aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* Fix TreeTypeMap and mapSymbols to create a copy of decls for duplicated classes.Dmitry Petrashko2015-04-021-1/+1
| | | | | | | Without this fix the duplicated classes and the original ones share the same reference to a scope, instead of having each a separate one. @alexsikia this should fix your problems
* Merge pull request #432 from dotty-staging/patmat-optionsDmitry Petrashko2015-03-301-1/+7
|\ | | | | Fix #431: Options make 2 steps of decoding instead of one
| * Fix #431: Options make 2 steps of decoding instead of oneDmitry Petrashko2015-03-251-1/+7
| |
* | Merge pull request #441 from smarter/fix/applyOverloaded-non-initodersky2015-03-281-1/+7
|\ \ | | | | | | Make tpd#applyOverloaded work with methods other than <init>
| * | Make tpd#applyOverloaded work with methods other than <init>Guillaume Martres2015-03-281-1/+7
| | |
* | | Implicits#viewExists: return false after typer instead of AssertionErrorGuillaume Martres2015-03-271-0/+1
|/ / | | | | | | | | | | | | | | This way, tpd#applyOverloaded can safely be used after typer. This issue was encoutered while working on value classes, step 3 of SIP-15 contains the following peephole optimization: new C(e) == new C(f) => e == f Which requires us to do overloading resolution.
* | Merge pull request #425 from smarter/fix/isNullableClassodersky2015-03-262-11/+12
|\ \ | |/ |/| Fix isNullableClass to also work after Erasure
| * Fix isNullableClass to also work after ErasureGuillaume Martres2015-03-232-11/+12
| | | | | | | | | | | | | | | | | | | | Incidentally this means that: val d = null.asInstanceOf[Double] is now correctly transformed to: val d = scala.Double.unbox(null) Previously it was translated to: val d = null: Double Which is wrong and fails in the backend.
* | Merge pull request #428 from dotty-staging/trait-constructorsDmitry Petrashko2015-03-255-9/+55
|\ \ | | | | | | New phase: trait constructors
| * | New phase trait constructors.Dmitry Petrashko2015-03-252-1/+38
| | | | | | | | | | | | | | | Renames constructors in traits so that backend will call them with invokeInterface, instead of invokeSpecial Also makes sure that renamed constructor bodies conforms to type of method
| * | Emit abstract flag for non-abstract traitsDmitry Petrashko2015-03-251-1/+2
| | |
| * | Style fixes in InterceptedMethodsDmitry Petrashko2015-03-251-3/+3
| | |
| * | Make CollectEntryPoints stable against type aliases.Dmitry Petrashko2015-03-251-4/+12
| |/
* | Merge pull request #430 from dotty-staging/fix/#429-enclosingMethodDmitry Petrashko2015-03-251-1/+2
|\ \ | | | | | | Fix #429
| * | Fix #429Martin Odersky2015-03-251-1/+2
| |/ | | | | | | enclosingMethod should not crash on NoDenotation.
* / Make implicit conversion from Position to Coord work for NoPositionGuillaume Martres2015-03-251-1/+3
|/
* Remove check for duplicates in module val names.Dmitry Petrashko2015-03-231-4/+0
| | | | They are not lifted and they are allowed.
* InterceptedMethods: enable interception of == and !=Guillaume Martres2015-03-231-1/+1
|
* Have derivedValueClass run at initial stageMartin Odersky2015-03-222-6/+13
| | | | | | Fixes #412, by calling derivesFrom in isDerivedValueClass at initial phase. Rewrite of 789dc0c070bde6ce8634aa89e73e31ec1233a6f8 by @smarter. Does the same thing in Symbol#isDerivedValueClass.
* Invalidate companions of classes lifted by FlatMapMartin Odersky2015-03-211-2/+21
| | | | | | | RestoreScopes enters classes lifted by FlatMap into the enclosing package scope. It should also invalidate any companions because otherwise we risk linking up a new class with a previously generated companion which exists only as a Java classfile.
* Fix Ycheck printing a lot of error about symbols that don't actually exist.Dmitry Petrashko2015-03-191-1/+1
|
* Merge pull request #394 from dotty-staging/add/unpicklingDmitry Petrashko2015-03-1873-538/+3823
|\ | | | | Add/unpickling
| * Fixing conflicts between #361 and #394Dmitry Petrashko2015-03-181-1/+1
| |
| * Bringing back fix to TreeMap.transform(ValDef) that was lost during rebaseDmitry Petrashko2015-03-181-1/+1
| |
| * Tweaks to pickle formatMartin Odersky2015-03-186-17/+17
| | | | | | | | | | MODULE -> OBJECT, as suggested by Simon. Header is 4 hex digits, not 8 chars.
| * Added missing patch to DefaultInit drop.Martin Odersky2015-03-181-1/+0
| |
| * Simplifications to pickled flagsMartin Odersky2015-03-184-32/+27
| | | | | | | | | | 1) Avoiud serializing redunant flags that come with modules 2) Drop DEFAULTinit flag - it's not used.
| * Drop environment from pickled closures.Martin Odersky2015-03-182-9/+9
| | | | | | | | It is always empty anyway. Side benefit: We can get rid of NOTYPE, too.
| * Change to PickleFormatMartin Odersky2015-03-184-8/+6
| | | | | | | | | | Remove 3rd argument of BIND types. It can be reconstructed on unpickling.
| * Add support of Shadowed names to TastyPrinterMartin Odersky2015-03-181-0/+1
| |
| * Simplifications to TASTy formatMartin Odersky2015-03-183-19/+14
| | | | | | | | | | 1) Drop the length field of BYNAMEparam 2) Eliminate EMPTYTREE
| * Remove Throw from picklingMartin Odersky2015-03-183-8/+0
| |
| * Two more tweaks to make pickling invariant under printingMartin Odersky2015-03-183-5/+16
| | | | | | | | | | | | | | | | | | 1) DefDefs with implicit method types generate implicit parameters 2) Super accessors are inserted after class parameters. With these changes files in core also print the same after pickling, with the exception of Types and TypeOps which have some spurious differences: Types are equal but appear in more simplified form after pickling.
| * Homogenize printing of super calls.Martin Odersky2015-03-181-9/+10
| |
| * Homogenize package ids and literalsMartin Odersky2015-03-181-3/+10
| | | | | | | | | | | | | | | | | | The unpickled term in a package id is different from the original but the type is the same. In a literal prefer constants in the types over thsoe in the terms. With this change, we get identical typed tree output also for core/pickled.
| * Further harmonization between typing and unpicklingMartin Odersky2015-03-181-3/+5
| | | | | | | | | | 1) Prefixes in selections are widened if unstable 2) DefDefs get Method flag set
| * Drop choice of separator in expanded name.Martin Odersky2015-03-185-14/+17
| | | | | | | | | | It's not used and is too low-level anyway. Expanded names should be a semantic concept, the choice of separator is irrelevant.
| * Pickle signatures using qualified names.Martin Odersky2015-03-182-2/+10
| | | | | | | | | | Would like to do use more semantic names in pickled file, but it's hard without having semantic names to start with.
| * Harmonize treatment of simplified between typer and unpicklerMartin Odersky2015-03-182-5/+5
| | | | | | | | | | | | | | | | We got some spurious differences in the types in TemplateParents because simplification was done in Typer but not in Unpickler. With the change we get perfect matches for all files in pickleOK also if we print their types.
| * Fix unpickling parameter aliasesMartin Odersky2015-03-181-3/+7
| | | | | | | | The type of a parameter alias is an ExprType, was the underlying type.
| * Pickle shadowed namesMartin Odersky2015-03-186-7/+33
| | | | | | | | | | | | | | | | | | Shadowed names in types need to be pickled and treated on unpickling. We choose to make Shadowed a separate TastyName class, to avoid the ad-hoc name-mangling in current dotc. When names are redone Shadowed will also become a special class in the compiler proper.
| * Rename inheritedName -> shadowedNameMartin Odersky2015-03-184-7/+7
| | | | | | | | The new name is more consistent with the usage (e.g. NamedType#shadowed).
| * Show compilation unit which failed pickling in tests.Martin Odersky2015-03-181-3/+3
| |
| * Fix to pickling literalsMartin Odersky2015-03-181-2/+7
| | | | | | | | | | | | | | | | Need to pickle the type, not the constant stored in the literal, because constant folding might have adapted the type, but leaves the constant value unchanged. An example is in pickleOK/unions.scala where a float 1.0f was adapted to Double, so should be pickled as a Double 1.0.
| * Re-org of pickling framework to enter before readMartin Odersky2015-03-184-73/+112
| | | | | | | | | | Need to enter all top-level symbols before reading any of them, in order to avoid stale symbols.
| * Refinements to pickling testing frameworkMartin Odersky2015-03-181-8/+5
| | | | | | | | | | | | | | We now unpickle all files first, and print afterwards. This helps in avoiding stale symbols that happen otherwise when we print a reference to a symbol that has not yet been unpickled. But it's not yet enough.
| * Don't print implicit for classes in homogenized viewMartin Odersky2015-03-181-1/+2
| | | | | | | | | | Implicits get pickled only for terms. So implicit class prints differently when unpickled.
| * Avoid treating setters as class parameters when picklingMartin Odersky2015-03-181-1/+2
| |
| * Harmonize parameterless constructors between unpickling and namerMartin Odersky2015-03-182-7/+11
| | | | | | | | | | | | Should get an () parameter list in both cases. (In fact, that's pretty annoying, it woul be better if we did not have this restriction. But in any case it has to be the same for Namer and Unpickler.)
| * Deal gracefully with out-of-scope references wehn unpicklingMartin Odersky2015-03-183-5/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Out-of scope references are evil but do arise. Dotc currently produces them in two cases (t1957.scala and Typer.scala) because it does not correctly hygenize dependent methods used as closurs. I beleive scalac wil generate them in more instances. The changes can produce dependent method types used in closures. Essentially the problem was that the depndency was not recognized in Typers when the closure was first created, because it badly interfered with type inference. But when unpickling the same closure the dependency is recognized. It's too late to fail now, we better deal with this gracefully. That's why there is now a mode bit "AllowDependentFunctions" which should be turned on only for unpickling, which reconstitutes dependent functions as closures without complaining.