summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix various InnerClasses bugs.Grzegorz Kossakowski2011-09-091-9/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes two major problems: 1. InnerClasses table missed entries that would close the chain between nested and top-level class. 2. In some situations, classes corresponding to objects would be not be reported in the InnerClasses table. For details it's the best to check SI-4819, SI-4820 and SI-4983. First problem mentioned above was straightforward to fix so I won't be going into details. The second one deserves more attention. From now, classes corresponding to objects are properly reported as inner classes. Also, members (classes, objects) of objects are reported as inner classes of classes corresponding to objects. There's one caveat though: top level objects get two classes (regular and mirror). Members of top-level objects are declared as inner classes of *mirror* class and not regular one. The reason for that is to allow importing them from Java. For example: object A { class B } will be compiled into following classes: A, A$, A$B. If we declared A$B as inner class of A$ (regular class for objects) then it would be impossible to import B using "import A.B" or "import A$.B" constructs. The reason for that is that Java compiler seems to blindly put dollars instead of looking at InnerClasses attribute. Since non-top-level objects don't have a mirror class it's impossible to use the same solution. Thus, in case like this: object A { object B { class C } } it's impossible to import C from Java. That's the tradeoff for fixing other (more serious) problems. It's never been possible to do that in a clean way so we are not making situation worse. As a nice consequence of this change, we get better way to refer to inner members of top-level objects. It's been reflected in one of test-cases that is updated by this change. Fixes SI-4789 SI-4819 SI-4820 SI-4983 and possibly some other tickets related to reflection. Review by extempore, dragos.
* Brought back unrelated type comparison warning.Paul Phillips2011-09-091-11/+14
| | | | | | Figured out how to turn it on by default, even. Closes SI-4979, no review.
* Added parens to many methods.Paul Phillips2011-09-097-54/+54
| | | | | | | | scalac -Xlint said: warning: side-effecting nullary methods are discouraged: suggest defining as `def initErrorCheck()` instead x 56. Plus a couple other linty things. No review.
* added missing getExcludedFiles in <scalac> Ant ...michelou2011-09-0823-173/+234
| | | | | | | | | added missing getExcludedFiles in <scalac> Ant task (same change is pending for <pending> Ant task). A new starr is needed for that features to work in build.xml (and other Ant scripts).
* Allow for the overriding of objects.Paul Phillips2011-09-0815-131/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Various and sundry manipulations to allow for objects to be overridden when the mood is right. It is not enabled by default. The major contributor of change turned out to be the decoupling of the FINAL flag (and the "isFinal" test which examines only that flag) and the many semantics which were attributed to this interpretation of finality in different circumstances. Since objects no longer have the FINAL flag automatically applied (only top-level objects and those marked final in source code do) we need apply a more nuanced test. Fortunately there is such a nuanced test: isEffectivelyFinal, which is always true if the FINAL flag is set but also in various other circumstances. In almost every case, you should be testing "isEffectivelyFinal", not "isFinal". To enable overridable objects, use: -Yoverride-objects -Xexperimental // includes the above and others Remain to be done: working out transition logistics. Most likely this would involve bumping the scala signature version, and all objects in versions before that would be assumed final. Review by moors.
* Refinement of murmurhash implementation.Paul Phillips2011-09-087-43/+199
| | | | | | Integrates recent speed improvements to algorithm. Contributed by Ruediger Keller, no review.
* Fixes #1000349: Dot completion doesn't work whe...Martin Odersky2011-09-071-0/+2
| | | | | | Fixes #1000349: Dot completion doesn't work when calling a no-arg method with no parens
* Another problem solved for reflexive compiler.Martin Odersky2011-09-075-27/+29
|
* I missed inlining warnings - need to get better...Hubert Plociniczak2011-09-072-38/+33
| | | | | I missed inlining warnings - need to get better glasses. No review
* Some cleanup related to last commitHubert Plociniczak2011-09-071-12/+6
|
* First refactoring related to Error trees.Hubert Plociniczak2011-09-0721-886/+2861
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There are no more direct calls to context.error from Typers and Infer, so more work needs to be done to finish it for Implicits and Namers. I am pushing it to trunk so that all of you can share my pain (and complain). Please do not add any more context.error randomly in that code, instead deal with it appropriately (by creating specific error tree). I was trying to be as informative when it comes to error tree names as possible, but if you feel like changing names to something more appropriate then feel free to do so. When it comes to printing error messages I tried to follow test suite as closily as possible but obviously there were few changes to some tests (mostly positive, I believe). On my machine performance drawback was neglible but I am working on more aggressive caching to reduce the penalty of containsError() calls even more. Any suggestions welcome. At the moment the code supports both styles i.e. throwing type errors for the cases that are not yet handled and generating error trees. But in the future we will drop the former completely (apart from cyclic errors which can pop up almost everywhere). Review by odersky, extempore and anyone who feels like it.
* Tighten the CPS plugin constraints.Iulian Dragos2011-09-071-0/+1
|
* Fixed MissingRequirementError extractor (the re...Micro Dotta2011-09-071-2/+2
| | | | | | | Fixed MissingRequirementError extractor (the return type of unapply method went from Option[String] to Serializable during r25612). Review by moors.
* Added footer command line option to ScalaDoc so...Heather Miller2011-09-073-2/+28
| | | | | | | | Added footer command line option to ScalaDoc so ScalaDoc users aren't forced to have the EPFL/Typesafe copyright notice in their API docs. Now comes with the ability for users to add their own footer. Review by ureche.
* Improves the usability of Scaladoc when images ...Heather Miller2011-09-062-30/+11
| | | | | | Improves the usability of Scaladoc when images are not available. Closes SI-4943.
* Removed erroneous throw which was stealthily ki...Martin Odersky2011-09-061-1/+0
| | | | | Removed erroneous throw which was stealthily killing the build.
* Intersection types made specializable.Paul Phillips2011-09-061-0/+1
| | | | | | | | | | | | | Formerly a specializable type parameter would be missed if in an intersection. trait Trait[@specialized T] { def f[T](x: Foo[T] with Bar) = x } Now that is specialized, as it already was in the "Foo[T]" case. Closes SI-4794, no review.
* more reflect changesMartin Odersky2011-09-053-2/+10
|
* More refinements to reflection and the reflecti...Martin Odersky2011-09-0514-54/+76
| | | | | More refinements to reflection and the reflective compiler.
* Offer warning when demonstrably non-side-effect...Paul Phillips2011-09-059-21/+40
| | | | | | | | Offer warning when demonstrably non-side-effecting expressions appear in statement position, which should be unintentional by definition. Threw in removal of six places with useless discarded expressions which the warning informed me about. No review.
* Removed the type parameter from sliding, no rev...Paul Phillips2011-09-034-7/+7
| | | | | Removed the type parameter from sliding, no review.
* Docspree documentation for Stream from Derek WyattJosh Suereth2011-09-021-71/+485
|
* Some great AnyVal class hierarchy documentation...Josh Suereth2011-09-0210-49/+2862
| | | | | | Some great AnyVal class hierarchy documentation from Iain McGinniss. No Review.
* Updated copyright notice in scaladoc. No review.Heather Miller2011-09-011-3/+1
|
* Made it possible to supply a custom Global to t...Paul Phillips2011-09-016-6/+57
| | | | | | | | | | | | | | | | | | | | | | | | | | | Made it possible to supply a custom Global to the core scala runners. The absence of "Global pluggability", combined with the fact that most of the functionality in Global is unnecessarily rigid due to the phases being implemented as objects, means that it has been close to impossible to do interesting compiler development in a way which doesn't require modifying the scalac source tree. This then leaves you continually subject to punishment by code drift as the various places you were forced to modify change out from under you. This is somewhat less true now, thanks to new option: -Yglobal-class The primary wielders of Global (fsc/scala/scalac) now instantiate the compiler via a (Settings, Reporter) => Global factory method in the Global companion. If -Yglobal-class was given, that class (which must have a (Settings, Reporter) constructor) will be instantiated if possible, falling back on the standard one. See test/files/pos/CustomGlobal.scala for a working example. (It's not in run because I would have to be able to give partest a different set of flags for successive compiles in the same test.) Review by odersky.
* Document the usage and methods of scala.sys.pro...Josh Suereth2011-08-316-10/+315
| | | | | | | | | Document the usage and methods of scala.sys.process. From the first international scaladoc marathon. Contributed by: Daniel Sobral
* Small tweak to reflection to make package types...Martin Odersky2011-08-311-1/+1
| | | | | | Small tweak to reflection to make package types same as for SymbolLoaders
* Better handling of presentation compiler shutdown.Iulian Dragos2011-08-312-8/+60
| | | | | | | | | | of deadlocks: when the PC was asked to shutdown, all work items in the work queue would be left pending, and no response would be set. This commit attempts to clean up a bit better: a shutdown request clears the work queue and all pending loaded&typed or parsed-entered requests by setting their responses to 'MissingResponse'. review by odersky.
* More fixes to reflection and reflective compiler.Martin Odersky2011-08-303-24/+63
|
* Twist to make crashes more robust :-) (by avoid...Martin Odersky2011-08-301-1/+2
| | | | | | Twist to make crashes more robust :-) (by avoiding exceptions that get raised when printing debug output in erasure).
* removing more debug output from reflection.Martin Odersky2011-08-301-2/+2
|
* Added extraneous test where classes are verifie...Josh Suereth2011-08-293-0/+107
| | | | | | | Added extraneous test where classes are verified by loading them in non-boot classloaders one at a time. These are not wired into the standard workflow, but available optionally. Review by rytz
* Added copyright notice to all scaladoc pages.Heather Miller2011-08-292-0/+12
|
* Added package object support to reflection fram...Martin Odersky2011-08-2910-85/+91
| | | | | | Added package object support to reflection framework. Removed debug output and made some speed improvements.
* More changes to get Reflect compiler working.Martin Odersky2011-08-2917-104/+188
|
* Gave partial function an empty member.Paul Phillips2011-08-281-2/+9
|
* Another bit of stray debugging output involving...Paul Phillips2011-08-271-1/+1
| | | | | | Another bit of stray debugging output involving good old symbol #431. Oh, symbol #431, why must you haunt our dreams. No review.
* Fixing up a few instances of suboptimal reversi...Paul Phillips2011-08-274-4/+4
| | | | | Fixing up a few instances of suboptimal reversing, no review.
* Replaced various now-unnecessary casts with str...Paul Phillips2011-08-277-7/+7
| | | | | | Replaced various now-unnecessary casts with straight getClass calls. Closes SI-4780, no review.
* Fixed bug in Sorted "to" not using the ordering.Paul Phillips2011-08-271-2/+1
|
* Fixing the buildMartin Odersky2011-08-261-3/+4
|
* Removing debug output that slipped into main co...Martin Odersky2011-08-263-4/+4
| | | | | | Removing debug output that slipped into main compiler and broke the build.
* More fixes/debug code for reflection.Martin Odersky2011-08-266-12/+43
|
* Always include `liftcode` phase in a compiler run.Grzegorz Kossakowski2011-08-262-2/+1
| | | | | | | | | | | | | | It turns out that `liftcode` phase must be always executed or other phases will fail. Specifically, at the moment `explicitouter` seems to depend on `liftcode`. One can observe compiler crash by compiling scala/Array.scala file without `liftcode` included. At `explicitouter` phase compiler will crash with assertion error saying it cannot lift some code. Review by odersky
* Some kind of scaladoc quoting fix from the sbt ...Paul Phillips2011-08-251-6/+6
| | | | | Some kind of scaladoc quoting fix from the sbt guy, no review.
* Recent icode checking tests were leaving a bit ...Paul Phillips2011-08-252-3/+7
| | | | | | | Recent icode checking tests were leaving a bit of a mess in the filesystem. Taught them to clean up after themselves. I knew I'd pick up a few useful tricks from my kids. No review.
* Made -Xprompt more useful, less crashy and more...Paul Phillips2011-08-255-22/+21
| | | | | | | | | | | | | | | | | | | | | | Made -Xprompt more useful, less crashy and more open to showing you the stack trace without aborting. For example, the following would resume compilation after showing the trace. % scala -deprecation -Xprompt -nc -e 'case class Foo' foo.scala:1: warning: case classes without a parameter list have been deprecated; use either case objects or case classes with `()' as parameter list. case class Foo ^ a)bort, s)tack, r)esume: s java.lang.Exception [...] at scala.tools.nsc.ast.parser.Parsers$UnitParser.deprecationWarning(Parsers.scala:207) at scala.tools.nsc.ast.parser.Parsers$Parser.paramClauses(Parsers.scala:2058) at scala.tools.nsc.ast.parser.Parsers$Parser$$anonfun$classDef$1.apply(Parsers.scala:2557) at scala.tools.nsc.ast.parser.Parsers$Parser$$anonfun$classDef$1.apply(Parsers.scala:2545) No review.
* Fixes and temporary debug scaffolding for refle...Martin Odersky2011-08-254-27/+49
| | | | | Fixes and temporary debug scaffolding for reflect code.
* Fixed build problemsMartin Odersky2011-08-242-2/+2
|
* Class that can be used for memoizing types in r...Martin Odersky2011-08-241-0/+15
| | | | | Class that can be used for memoizing types in reified trees