aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/classfile
Commit message (Collapse)AuthorAgeFilesLines
* implementation of exhaustivity and redundancy checkliu fengyun2016-08-241-0/+10
|
* New string infterpolatorsMartin Odersky2016-08-161-16/+11
| | | | | | Roll `sm` and `i` into one interpolator (also called `i`) Evolve `d` to `em` interpolator (for error messages) New interpolator `ex` with more explanations, replaces disambiguation.
* Remove overloaded constructor for annotationsGuillaume Martres2016-07-271-4/+14
| | | | | | This lead to inference failures when separately compiling t1751 and t294, this did not happen under joint compilation because JavaParser does not create the overloaded constructor
* Refactor handling of unpickled type paramsMartin Odersky2016-07-111-2/+2
| | | | | | | | | | | | | | | | | | | | | | | Under the new hk scheme we discovered that type parameters are sometimes unpickled in the wrong order. The fault was always present but the previous hk schemes were somehow lenient enough in their subtyping rules to not discover the problem. E.g., when reading Coder.scala, dotc believed that parameter `A` of `TraversableOnce#BufferedCanBuildFrom` is higher-kinded and parameter `CC` is first-order where the opposite is true. This commit hardens the way we read type parameters in order to make this swap impossible by design. - Revert auto-healing in derivedAppliedType The healing hid a real error about order of type parameters in Scala2 unpickling which was fixed in the previous commits. The healing caused Map.scala to fail because it is possible that type parameters are mis-prediced to be Nil in an F-bounded context. - Smallish fixes to type applications
* Abstract type parameters out from type symbolsMartin Odersky2016-07-111-1/+1
| | | | | | | | In the new hk scheme, a type parameter can be represented by a refinement without a corresponding symbol. Therefore, we need to disentangle the info inherent in a type parameter from the contents of a type symbol. We achieve this by creating a common super trait "MemerInfo" of Symbol and RefinedType.
* Move Mode to coreMartin Odersky2016-04-011-1/+0
| | | | | Mode is used from a lot of low-level code, does not just reflect Typer info. So it makes more sense top to place it in the core package.
* Add second field to SeqLiteralMartin Odersky2016-03-101-1/+8
| | | | | | | The field keeps track of the element type. This is necessary because JavaSeqLiteral is nonvariant and the elements might be empty, so we cannot always compute the type from the element types.
* Shorten ..Class.typeRef to ..TypeMartin Odersky2015-11-091-2/+2
| | | | | Since we now have two forms of (almost) everything in Definitions, might as well profit from it.
* Renamings in DefinitionsMartin Odersky2015-11-091-2/+2
| | | | | | TypeRef becomes Type, thus removing duplicates. Where ...Type was used in an extraction (e.g. ArrayType(...), FunctionType(...)), we now use ...Of.
* Surivive Cyclic References when unpickling Scala 2 HK typesMartin Odersky2015-09-081-1/+2
| | | | | | | Closes $778. It seems impossible (or very hard) to avoid Cyclic References when unpickling Scala2 files. So we try to survive them instead. Review by @DarkDimius
* Make ClassfileConstants thread-safe.Martin Odersky2015-05-262-34/+29
|
* Pickling modularization reorgMartin Odersky2015-05-024-0/+1770
The pickling package got rather large and confusing with three separate tasks that each had their own conventions: read JVM classfiles, read Scala2 pickle info, read Tasty. The classes for each task are now in separate packages.