summaryrefslogtreecommitdiff
path: root/test/files
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | | | Merge pull request #3453 from Ichoran/issue/4997Adriaan Moors2014-02-051-1/+1
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-4997 deprecate StringLike.linesIterator for StringLike.lines
| * | | | | | | SI-4997 deprecate StringLike.linesIterator for StringLike.linesRex Kerr2014-01-311-1/+1
| | |/ / / / / | |/| | | | | | | | | | | | | | | | | | | Deprecated. lines is by far more consistent with the rest of the naming in the library.
* | | | | | | Merge pull request #3462 from retronym/ticket/8233Adriaan Moors2014-02-053-0/+37
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8233 Fix regression in backend with boxed nulls
| * | | | | | | SI-8233 Fix regression in backend with boxed nullsJason Zaugg2014-02-053-0/+37
| | |_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regressed in SI-7015 / 1b6661b8. We do need to "unbox" the null (ie, drop a stack from and load a null) in general. The only time we can avoid this is if the tree we are adapting is a `Constant(Literal(null))`. I've added a test for both backends. Only GenICode exhibited the problem.
* | | | | | | Merge pull request #3400 from retronym/ticket/8170Adriaan Moors2014-02-052-0/+52
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8170 Fix regression in TypeRef#transform w. PolyTypes
| * | | | | | | SI-8170 Fix regression in TypeRef#transform w. PolyTypesJason Zaugg2014-01-222-0/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regressed in SI-8046 / edc9edb7, by my hand. At the time, I noticed the problem: transform wasn't accounting for the potential Poly-Type-ness of its argument, and this would lead to under-substituted types. The commit comment of edc9edb7 shows an example. But the remedy wasn't the right one. The root problem is that a TypeMap over a PolyType can return one with cloned type parameter symbols, which means we've lose the ability to substitute the type arguments into the result. This commit detects up front whether the type-under-transform is a PolyType with the current TypeRef's type parameters, and just runs the `asSeenFrom` over its result type.
* | | | | | | | Merge pull request #3465 from pavelpavlov/list-head-valAdriaan Moors2014-02-051-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | PR #3233 cleanup
| * | | | | | | | PR #3233 cleanupPavel Pavlov2014-02-051-1/+1
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - `::.head` became a `val`; excessive accessor removed - SerializationProxy moved to `object List`
* / | | | | | | Fix typo in compiler's error message: anoynmous => anonymousPavel Pavlov2014-02-051-3/+3
|/ / / / / / /
* | | | | | | Merge pull request #3424 from som-snytt/issue/7322Adriaan Moors2014-02-011-0/+11
|\ \ \ \ \ \ \ | |_|/ / / / / |/| | | | | | SI-7322 Interpolator idents must be encoded
| * | | | | | SI-7322 Interpolator idents must be encodedSom Snytt2014-01-291-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise, they are not found. This matters for term names with a differential encoding. Footnote, normally ident() encodes, but INTERPOLATIONID is !isIdent, so that is not used here. Maybe that would be the better improvement.
* | | | | | | Merge pull request #3425 from retronym/ticket/7700Jason Zaugg2014-01-312-0/+19
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-7700 @unspecialized, Part Deux: Now Working.
| * | | | | | | SI-7700 @unspecialized, Part Deux: Now Working.Jason Zaugg2014-01-312-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This annotation was introduced to allow us to mark methods within a specialized trait as immune from specialization. In particular, this is desirable for `Function1.{andThen, compose}`. However, it seems we need to check for this in two places in the specialization code base. The feature is now backed with a test.
* | | | | | | | Merge pull request #3357 from retronym/ticket/8143Adriaan Moors2014-01-315-19/+34
|\ \ \ \ \ \ \ \ | |_|_|_|/ / / / |/| | | | | | | SI-8143 Regressions with override checks, private members
| * | | | | | | SI-8143 Regressions with override checks, private membersJason Zaugg2014-01-145-19/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These regressed in e609f1f20b, which excluded all private methods from overriding checks. We should only exclude private[this] members on the low end of a pair, as was done before that commit, and, we must also exclude private members on the high side. Why? Warning: reverse engineered intuition follows. We need to report an error when if a private method in a subclass has matches a less-private method in the super class and report an error, lest the user be fooled into thinking it might be invoked virtually. On the other hand, adding a private method to a super class shouldn't invalidate the choice names of public members in its superclasses. I've removed the test case added by that commit and will lodge a reworked version of it that Paul provided as a new issue. That shows a bug with qualified private + inheritance. In addition, the expectation of `neg/accesses.check` is reverted to its 2.10.3 version, which I believe is correct. When it was changed in e609f1f20b it sprouted a variation, `neg/accesses-2`, which has now changed behaviour. The intent of that test will be captured in the aforementioned issue covering qualified private inheritance.
* | | | | | | | Merge pull request #3416 from retronym/topic/any-val-implicitAdriaan Moors2014-01-305-22/+42
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | Prohibit views targeting AnyVal
| * | | | | | | | Prohibit views targeting AnyValJason Zaugg2014-01-275-22/+42
| | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Library changes in Scala 2.10 mean that we are left with the unfortunate situation of admitting: scala> "": AnyVal res0: AnyVal = We already have explicit checks in place to prevent views targeting `AnyRef`. This commit balances this out by prohibiting `AnyVal`, as well. The enclosed test shows that this case is now prevented. If multiple implicits views are applicable, the ambiguity error is still raised; these check comes right at the end. Maybe that ought to be changed, but I don't think it matters too much. I've also disabled this prohibition under -Xsource:2.10.
* | | | | | | | Merge pull request #3426 from retronym/ticket/8199Grzegorz Kossakowski2014-01-291-0/+105
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | SI-8199 Account for module class suffix in -Xmax-classfile-name
| * | | | | | | | SI-8199 Account for module class suffix in -Xmax-classfile-nameJason Zaugg2014-01-291-0/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The class file name of an inner class is based on the flattened name of its owner chain. But, if this is going to be unreasonably long, it is shortened with the help of a MD5 hash. However, after this shortening takes place, we sneakily add one more character (the infamous '$') to the name when it is used for the module class. It is thus possible to exceed the limit by one. The enclosed test failed on Mac with "filename too long" because of this. I have also tested for trait implementatation classes, but these seem to be suffixed with "$class" before the name compactification runs, so they weren't actually a problem. This change is binary incompatible as separately compiled defintions and usages of named, inner classes need to agree on this setting. Most typically, however, these long names crop up for inner anonymous classes / functions, which are not prone to the binary incompatiblity, assuming that their creation hasn't be inlined to a separately compiled client.
* | | | | | | | | Merge pull request #3374 from densh/si/6844-8076Jason Zaugg2014-01-296-4/+61
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | SI-6844 SI-8076 improve handling of function parameters in quasiquotes
| * | | | | | | | | SI-8076 improve support for implicit argument listDenys Shabalin2014-01-162-2/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds support for construction and deconstruction of implicit argument list which was originally suggested by @cvogt. 1. Splicing vale into implicit argument list automatically adds implicit flag to them: val x = q"val x: Int" q"def foo(implicit $x)" // <=> q"def foo(implicit x: Int)" 2. One might extract implicit argument list separately from other argument lists: val q”def foo(...$argss)(implicit ..$impl)" = q"def foo(implicit x: Int) // argss is Nil, impl contains valdef for x But this doesn't require you to always extract it separatly: val q”def foo(...$argss)" = q"def foo(implicit x: Int) // argss contains valdef for x
| * | | | | | | | | SI-6844 restrict splicing in parameter positionDenys Shabalin2014-01-164-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously were a bit too permissive on how splicing in function parameter position worked. This made confusing things like possible: val x = TermName(“x”) q”def foo($x)” Now you can either splice trees in that position (ValDefs) or you have to provide type if you splice a name.
* | | | | | | | | | Merge pull request #3402 from densh/si/7275Eugene Burmako2014-01-292-16/+64
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | SI-7275 allow flattening of blocks with ..$
| * | | | | | | | | Addresses feedback from JasonDenys Shabalin2014-01-271-1/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Adds tests for new synthetic unit stripping. 2. Marks implementation-specific parts of Holes as private. 3. Trims description of iterated method a bit. 4. Provides a bit more clear wrapper for q interpolator. 5. Refactors SyntacticBlock, adds documentation. 6. Makes q"{ ..$Nil }" return q"" to be consist with extractor.
| * | | | | | | | | SI-7275 allow flattening of blocks with ..$Denys Shabalin2014-01-232-15/+40
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit extends current splicing rules to allow flattening of trees into other trees. Without such support it is impossible to correctly create vals with patterns and use it in other location as they could expand into multiple-statement blocks: scala> q"val (a, b) = (1, 2)" res0: reflect.runtime.universe.Tree = { <synthetic> <artifact> private[this] val x$1 = scala.Tuple2(1, 2): @scala.unchecked match { case scala.Tuple2((a @ _), (b @ _)) => scala.Tuple2(a, b) }; val a = x$1._1; val b = x$1._2; () } scala> q"..$res0; println(a + b)" res1: reflect.runtime.universe.Tree = { <synthetic> <artifact> private[this] val x$1 = scala.Tuple2(1, 2): @scala.unchecked match { case scala.Tuple2((a @ _), (b @ _)) => scala.Tuple2(a, b) }; val a = x$1._1; val b = x$1._2; println(a.$plus(b)) }
* | | | | | | | | | SI-8182 Avert crash due to type args in patternSom Snytt2014-01-272-0/+40
| |_|_|_|/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Error out type args on binary op after emitting error. Let the parse limp into the whirring blades.
* | | | | | | | | Merge pull request #3411 from som-snytt/issue/7919-si-nlJason Zaugg2014-01-251-0/+6
|\ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | Newline after empty string interp
| * | | | | | | | | SI-7919 Newline after empty string interpSom Snytt2014-01-241-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Consume the newline non-raw for safe handling after single-line interpolation.
* | | | | | | | | | Merge pull request #3412 from retronym/ticket/2066-2.10-compatJason Zaugg2014-01-252-0/+72
|\ \ \ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | -Xsource:2.10: lenient treatment of variance in <:<, =:=
| * | | | | | | | | | SI-2066 -Xsource:2.10: lenient treatment of variance in <:<, =:=Jason Zaugg2014-01-242-0/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The soundness hole was exploited in Scalaz. They have fixed their codebase correctly for Scalac 7.1.x, but have less freedom to break source compatiblity in 7.0.x. After this commit, they could choose to compile that branch with -Xsource:2.10
* | | | | | | | | | | Merge pull request #3410 from densh/si/8171Eugene Burmako2014-01-241-1/+7
|\ \ \ \ \ \ \ \ \ \ \ | |/ / / / / / / / / / |/| | | | | | | | | | SI-8171 make tq"" an alias for empty type tree
| * | | | | | | | | | SI-8171 make tq"" an alias for empty type treeDenys Shabalin2014-01-241-1/+7
| | |_|_|_|_|_|_|/ / | |/| | | | | | | |
* | | | | | | | | | Merge pull request #3388 from rklaehn/issue/7445Adriaan Moors2014-01-242-7/+6
|\ \ \ \ \ \ \ \ \ \ | |_|/ / / / / / / / |/| | | | | | | | | ListMap.tail is returning wrong result
| * | | | | | | | | SI-7445 ListMap.tail is returning wrong resultRuediger Klaehn2014-01-202-7/+6
| | |_|_|_|_|_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reverted the commit that introduced the bug, and modified HashMap to no longer assume that tail is O(1). Review by @Ichoran, @soc
* | | | | | | | | Merge pull request #3404 from gkossakowski/java8-supportGrzegorz Kossakowski2014-01-243-5/+11
|\ \ \ \ \ \ \ \ \ | |_|/ / / / / / / |/| | | | | | | | Preliminary support for building and testing with Java 8
| * | | | | | | | Make abstract-report2 test less dependent on std library.Grzegorz Kossakowski2014-01-212-5/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace the use of `Ordering` by custom, dummy trait Xyz defined in test's source. By not inheriting from Ordering in abstract-report2 we make the test less dependent on both Scala and Java library. The reason we are less dependent on Java is because Ordering extends Java's comparator. This change is motivated by the fact that Java 8 introduced default method `reversed` to Comparator interface and we get a failure due to conflicting inheritance: -abstract-report2.scala:9: error: trait Bippy inherits conflicting members: - method reversed in trait TraversableOnce of type => List[(T2, String)] and - method reversed in trait Comparator of type ()java.util.Comparator[T3] -(Note: this can be resolved by declaring an override in trait Bippy.) -trait Bippy[T1, T2, T3] extends Collection[T1] with TraversableOnce[(T2, String)] with Ordering[T3] - ^
| * | | | | | | | Work-around for partest failure due to JDK bug.Grzegorz Kossakowski2014-01-211-0/+2
| |/ / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | JDK7 and JDK8 have a bug that causes JVM to print some warning about applets that is unrelated to whatever we are testing in Scala. Let's work it around using test/files/filters mechanism that allows us to filter out output lines based on regexp.
* | | | | | | | Merge pull request #3401 from xeno-by/topic/freshEugene Burmako2014-01-221-3/+3
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | | SI-6879 improves Context.freshName
| * | | | | | | SI-6879 improves Context.freshNameEugene Burmako2014-01-221-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of per-compilation unit unique counters, the freshName API now uses a per-Global counter. Fresh names now also contain dollars to exclude clashes with supported user-defined names (the ones without dollar signs). This doesn’t fix the bug, because per-Global counters get created anew every time a new Global is instantiated, and that provides some potential for name clashes even for def macros, but at least it completely excludes clashes in typical situations.
* | | | | | | | Expose seq field for variable arity definitionsDenys Shabalin2014-01-221-0/+19
| |_|_|_|_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 2.11 we've changed TupleClass, ProductClass and FunctionClass endpoints to be exposed as (Int => Symbol) functions that never throw exceptions but rather return NoSymbol instead of previous error-prone indexed access on array that could explode. While simplifying one use case (indexed access) it complicated ability to check if symbol at hand is in fact a tuple, product or function: (1 to 22).map(TupleClass).toList.contains(symbol) To cover this extra use case we add a seq method to the variable arity class definitions that exposes a corresponding sequence of class symbols: TupleClass.seq.contains(symbol)
* | | | | | | Merge pull request #3382 from soc/topic/std-inJason Zaugg2014-01-211-1/+1
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | | Improve naming of ReadStdin
| * | | | | | Improve naming of ReadStdinSimon Ochsenreither2014-01-181-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need to say everything twice, methods are already prefixed with “read”.
* | | | | | | Merge pull request #3392 from xeno-by/topic/untypecheckEugene Burmako2014-01-218-8/+8
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | deprecates resetAllAttrs and resetLocalAttrs in favor of the new API
| * | | | | | | deprecates resetAllAttrs and resetLocalAttrs in favor of the new APIEugene Burmako2014-01-218-8/+8
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We now have c.untypecheck, which is supposed to be a counterpart of c.typecheck in the sense that it goes back from typed trees to untyped ones: http://stackoverflow.com/questions/20936509/scala-macros-what-is-the-difference-between-typed-aka-typechecked-an-untyped. Let’s hope that c.untypecheck will soon be able to solve our problems with partially/incorrectly attributed trees emitted by macros: https://groups.google.com/forum/#!topic/scala-internals/TtCTPlj_qcQ.
* | | | | | | Merge pull request #3368 from retronym/ticket/8151Grzegorz Kossakowski2014-01-212-16/+0
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | SI-8151 Remove -Yself-in-annots and associated implementation
| * | | | | | | SI-8151 Remove -Yself-in-annots and associated implementationJason Zaugg2014-01-152-16/+0
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This experimental option typechecked arguments of annotations with an injected value in scope named `self`: @Foo(self.foo < 1) This has been slated for removal [1] for some time. This commit removes it in one fell swoop, without any attempt at source compatibility with code that constructs or pattern matches on AnnotatedType. [1] https://groups.google.com/d/msg/scala-internals/VdZ5UJwQFGI/C6tZ493Yxx4J
* | | | | | | Merge pull request #3365 from retronym/ticket/8133Jason Zaugg2014-01-214-0/+33
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | Fix regression with package objects, overloading
| * | | | | | | SI-8133 Fix regression with package objects, overloadingJason Zaugg2014-01-144-0/+33
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Regressed in f5c336d56, a refactoring of `typedIdent`. In that commit, an (ostensibly) accidental change arrived, equivalent to: - val pre1 = if (qual == EmptyTree) NoPrefix else if (sym.isTopLevel) sym.owner.thisType else qual.tpe + val pre1 = if (sym.isTopLevel) sym.owner.thisType else if (qual == EmptyTree) NoPrefix else qual.tpe Here, `qual` is a tree returned in the successful result of `Context#lookup`. This change itself looks innocuous (top level symbols can be prefixed with a qualifier or not, right?), but it exposed us to a bug in `makeAccessible`. It is responsible for rewriting, e.g, `scala.List` to `scala.package.List`. It has a few cases, but one of them relies relies on typechecking `Ident(nme.PACKAGE)`, and hoping that it will bind to the right place. That's fraught with danger, and breaks in the enclosed tests. This commit binds that Ident symbolically, and in the process factors a tiny bit of code in common with `TreeGen`. (More work is still needed here!) In the next commit, I'm going to revert the change to `pre1`. That would have also fixed the regression, albeit symptomatically.
* | | | | | | Merge pull request #3385 from xeno-by/ticket/8158Eugene Burmako2014-01-204-1/+53
|\ \ \ \ \ \ \ | |_|_|/ / / / |/| | | | | | fixes some typos and types
| * | | | | | addresses pull request feedbackEugene Burmako2014-01-202-2/+2
| | | | | | |