aboutsummaryrefslogtreecommitdiff
path: root/compiler
Commit message (Collapse)AuthorAgeFilesLines
...
| * | Generate synthetic productElement/productArity methods above 22Olivier Blanvillain2017-04-062-28/+56
| | |
| * | Workaround #1932 (bug trigged by desugaring changes)Olivier Blanvillain2017-04-061-1/+1
| | |
* | | Fix type errorMartin Odersky2017-04-111-1/+1
| | |
* | | Better documentation of sharable structures in Names, NameKindsMartin Odersky2017-04-112-1/+5
| | |
* | | Adapt isPackageObject to semantic namingMartin Odersky2017-04-112-3/+4
| | | | | | | | | | | | Used a hardcoded string before, which caused test failures.
* | | Fix pickling/unpickling of namesMartin Odersky2017-04-113-3/+12
| | | | | | | | | | | | | | | Running the test suite with the pickling printer on showed up two more problems which are fixed in this commit.
* | | Fix rebase breakageMartin Odersky2017-04-114-22/+6
| | |
* | | Make extension method names semanticMartin Odersky2017-04-113-10/+29
| | |
* | | Lazy entering of names with internal $'s in package scopesMartin Odersky2017-04-1113-66/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Names with internal $'s are entered in package scopes only if - we look for a name with internal $'s. - we want to know all the members of a package scope This optimization seems to be fairly effective. The typical range of package scopes that need $-names is between 0 and 20%. The optimization seems to improve execution time of all unit tests by about 3%. Also. drop the inheritance from Iterable to Scope. The reason is that we now need a context parameter for toList and other Iterable operations which makes them impossible to fit into the Iterable framework.
* | | Scope refactoringMartin Odersky2017-04-113-56/+31
| | | | | | | | | | | | | | | | | | Since we now have separate package-scopes, it's easier to have them take into account the special role played by the scala package. So we can drop the funky logic of `makeScalaSpecial`.
* | | Avoid setter in NameMartin Odersky2017-04-112-2/+2
| | | | | | | | | | | | and fix a bug in TreeUnpickler
* | | Fix and activate package scopesMartin Odersky2017-04-114-14/+33
| | | | | | | | | | | | Prevviously they were actually unused.
* | | Introduce mangled methodMartin Odersky2017-04-114-6/+13
| | | | | | | | | | | | Mangled is like toSimpleName, except that it keeps the term/type distinction.
* | | Keep package member names mangledMartin Odersky2017-04-116-11/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | Once we start using unencoded operators internally, we will face the problem that one cannot decode realiably a class file filename. We therefore turn things around, keeping members of package scopes in mangled and encoded form. This is compensated by (1) mangling names for lookup of such members and (2) when unpickling from Scala 2 info or Tasty, comparing mangled names when matching a read class or module object against a root.
* | | Simplify classfile parser "own name" checkingMartin Odersky2017-04-111-12/+5
| | | | | | | | | | | | | | | | | | | | | Simplifies the test that the class represented by a classfile is the class logically referenced by the file. The simplification is needed if we want to populate package scopes with unmangled classnames.
* | | Don't unmangle names in ClassfileParserMartin Odersky2017-04-111-13/+12
| | | | | | | | | | | | | | | Classfile parsing is about JVM-level names, not Scala level ones. So it is more consistent to use mangled names throughout.
* | | Memoize toSimpleNameMartin Odersky2017-04-111-1/+6
| | | | | | | | | | | | | | | | | | | | | toSimpleName is called a lot from the backend, so it makes sense to memoize it. It would be even better to communicate with the backend using strings, because then we would not have to enter all these simple names in the name table.
* | | Bugfix in stripModuleClassSuffixMartin Odersky2017-04-111-2/+2
| | |
* | | Further simplification for NameMartin Odersky2017-04-117-34/+17
| | |
* | | Merge likeTyped and likeKinded into likeSpacedMartin Odersky2017-04-112-23/+19
| | |
* | | Names are no longer SeqsMartin Odersky2017-04-1116-139/+124
| | | | | | | | | | | | | | | | | | | | | | | | Drop Seq implementation of name. This implementation was always problematic because it entailed potentially very costly conversions to toSimpleName. We now have better control over when we convert a name to a simple name.
* | | Run compileStdLib only as junit testMartin Odersky2017-04-111-1/+3
| | | | | | | | | | | | It fails without any test output in partest
* | | Cleanups of NameOpsMartin Odersky2017-04-116-100/+15
| | | | | | | | | | | | Remove unused functionality
* | | Make outer select names semanticMartin Odersky2017-04-119-24/+27
| | |
* | | Make module var names semanticMartin Odersky2017-04-115-25/+5
| | |
* | | Avoid duplicate hashCode/equalsMartin Odersky2017-04-113-5/+4
| | |
* | | Fix dropModule logicMartin Odersky2017-04-112-3/+3
| | |
* | | Fix ParallelTesting NPEMartin Odersky2017-04-111-1/+2
| | |
* | | Make field names semanticMartin Odersky2017-04-114-22/+12
| | |
* | | Make "direct names" semanticMartin Odersky2017-04-114-5/+7
| | |
* | | Revise qualified namesMartin Odersky2017-04-118-87/+63
| | | | | | | | | | | | | | | 1. Fix problem in fullNameSeparated 2. Revise expandedName operations
* | | Fix inner class name table emission with semantic namesGuillaume Martres2017-04-111-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The backend contains: val outerName = innerClassSym.rawowner.javaBinaryName // Java compatibility. See the big comment in BTypes that summarizes the InnerClass spec. val outerNameModule = if (innerClassSym.rawowner.isTopLevelModuleClass) outerName.dropModule Where `dropModule` is defined in the backend interface as: def dropModule: Name = n.stripModuleClassSuffix This will only work as expected if `javaBinaryName` returns a name with proper semantic information, but before this commit we just used the output of `fullNameSeparated` which contains no semantic information.
* | | New unmangling for ExpandedNameMartin Odersky2017-04-113-45/+40
| | |
* | | Decentralize unmangling, add new nameKindsMartin Odersky2017-04-1110-58/+62
| | | | | | | | | | | | | | | | | | | | | Start scheme where unmangling is done by NameKinds instead of in NameOps. Also add namekinds for protected accessors.
* | | Fix rebase breakageMartin Odersky2017-04-111-0/+1
| | |
* | | Rename NameExtractor -> NameKindMartin Odersky2017-04-1134-123/+121
| | |
* | | Make freshName semanticMartin Odersky2017-04-1128-173/+244
| | |
* | | Redefine definesNewNameMartin Odersky2017-04-113-8/+18
| | | | | | | | | | | | | | | | | | | | | Make it a method of info instead of a convention over tags, because it's less fragile that way. Also, add UniqueName extractor.
* | | Add ShadowedName and AvoidClashNameMartin Odersky2017-04-1111-32/+26
| | |
* | | Streamline pickling and unpickling of namesMartin Odersky2017-04-113-24/+18
| | |
* | | Get rid of SuperAccessor flagMartin Odersky2017-04-1112-17/+23
| | |
* | | Get rid of ExpandedName flagMartin Odersky2017-04-1120-48/+57
| | |
* | | Fix PrefixNameExtractor mkStringMartin Odersky2017-04-111-1/+3
| | |
* | | Drop Config.semanticNames optionMartin Odersky2017-04-1111-185/+97
| | | | | | | | | | | | | | | We now handle only semantic names. Also, name extractor tags and TASTY name tags are now aligned.
* | | Add missing fileMartin Odersky2017-04-111-0/+148
| | |
* | | Eliminate TastyNamesMartin Odersky2017-04-1111-219/+107
| | |
* | | Add NameExtractorsMartin Odersky2017-04-119-202/+90
| | | | | | | | | | | | | | | Use a new scheme for creating and accessing semantic names which is based on semantic name extractors with nested info classes.
* | | Don't forget ExpandedName when unpickling SuperAccessorsMartin Odersky2017-04-111-1/+1
| | |
* | | Fix to fieldName for trait settersMartin Odersky2017-04-111-1/+1
| | |
* | | Properly integrate TraitSetter namesMartin Odersky2017-04-113-13/+28
| | |