Permalink
Switch branches/tags
Nothing to show
Commits on Sep 17, 2011
  1. Updated with review comments.

    committed Sep 17, 2011
  2. Updated PagedSeq documentation.

    Mostly minor grammatical quibbles, moved a few lines to top level
    documentation, added some more lines at the cost of verbosity.
    committed Sep 17, 2011
  3. More work on error trees.

    extempore can't live with that level of duplication. I eliminated
    400 lines. I could eliminate more: there are distinctions which seem
    unimportant, but I'm not sure so I left them in place. Example, is a
    "ContextError" something meaningful other than "an error which one emits
    by calling context.error"?
    
    Review by plocinic.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25673 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 17, 2011
  4. fixed svn props, did some cleanup

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25672 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 17, 2011
  5. Removed leading tabs in build.xml

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25671 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 17, 2011
  6. Get svn revision on Windows

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25670 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 17, 2011
  7. Reworked error trees.

    Eliminated the var, the Option[Boolean]s, and the Unit-returning init
    method. If they were accomplishing something I could not discern, I
    trust hubert will now apprise me. Review by plocinic.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25669 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 17, 2011
Commits on Sep 16, 2011
  1. Fix for nonsense comparison in TypeKinds.

    Hey, that new warning works.  No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25668 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 16, 2011
  2. Amend previous commit by suppressing type errors for syntactically in…

    …correct
    
    units only when -Ypresentation-strict is set. no review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25664 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    dragos committed Sep 16, 2011
  3. Better behavior with problematic sources in the presentation compiler:

     - if the presentation compiler crashes while type checking a source file, it puts it into an 
       ignore buffer, and it will not type check it during background compilation rounds.
       Any subsequent calls to waitLoadedTyped will fail with the last exception. 
       To remove it from the ignore list call either 'enableIgnoredFile' or 'askToDoFirst'
       on that file.
     - sources with syntax errors are not type checked during background compilation. This leads
       to less spurious errors. For instance, type errors may occur much earlier in the file than 
       the actual syntax error that caused them.
    
    review by odersky.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25661 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    dragos committed Sep 16, 2011
  4. Added new disabled test for eclipse scala-ide ticket1000609. Correcte…

    …d test framework to fail nicely when the tree retrieved after an has no associated symbol.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25660 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    Mirco committed Sep 16, 2011
Commits on Sep 15, 2011
  1. Removed parens from calls to Name#toString.

    This commit doesn't include the line which would change anything
    interesting (that being making toString in Name a val), it is all
    the changes elsewhere which one would have to make to do that. I
    didn't want to waste them. A quirk of scala is that if you call an
    empty-parameter-list method:
    
      foo.bar() // e.g. x.toString()
      foo.bar   // where you could have called x.toString
    
    then if you decide in the future to make it a val, every call site must
    potentially be modified. This is a bit of a bummer. One can try to
    defend against that future decision by eschewing parentheses, but it's
    not very satisfying or effective. No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25659 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 15, 2011
  2. Fixed stackoverflow problem when initializing large scopes.

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25658 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    odersky committed Sep 15, 2011
Commits on Sep 14, 2011
  1. Create Type hashcodes at construction.

    This saves an unnecessary field (the lazy bitmap) and means hashing
    is faster.  The hashCode is called on every created type anyway because
    of the lookup in unique, so this is pure gain.  No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25657 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 14, 2011
  2. Minor cleanup in Uncurry w/ NullaryMethodTypes.

    No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25656 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 14, 2011
  3. Removed redundant UnCurry transform (now in LiftCode.)

    No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25655 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 14, 2011
Commits on Sep 13, 2011
  1. Reworking TypeMaps to avoid allocations.

    The pieces of TypeMap which returned Option[T] were contributing many
    unnecessary allocations as well as inconsistency and complexity. By
    creating distinguished objects UnmappableTree and UnmappableAnnotation,
    I was able to gain simplicity, eliminate all the Some allocations,
    use the normal mapConserve, and so on.
    
    I also went after the monster that was dropNonConStraintAnnotations by
    generalizing it into "AnnotationFilter", a trait which extends TypeMap.
    SpecializeTypes was able to take advantage of this as well. (The means
    by which (some) annotations are dropped, and the related fact that
    NullaryMethodType returns constant false for isTrivial only so the
    continuations plugin will keep working, leaves the situation still in
    dire need of improvement.)
    
    Review by moors.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25652 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 13, 2011
  2. updated scaladoc comments, did some cleanup

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25651 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 13, 2011
  3. Refine lub calculation.

    When a reasonable lub cannot be arrived at by direct means,
    use the bounds of the lub inputs to derive bounds for the lub
    rather than giving up.  Closes SI-4938, review by moors.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25650 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 13, 2011
  4. Remove assert that fails for IDE. review by Mirco.

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25649 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    plocinic committed Sep 13, 2011
Commits on Sep 12, 2011
  1. Improved getFiles/getDirs in PartestTask; did some cleanup.

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25648 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 12, 2011
  2. Partially reverted r25636 change (forget notice about the starr rebui…

    …ld).
    
    Change originated in my misunderstanding of Ant filters:
    
    The pattern string if <exclude name="<pattern>"/> may not contain
    Ant variables such as eg. ${compiler.excludes}.
    
    Use <excludesfile name="${compiler.excludes}" if="<property>"/>
    instead !
    
    
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25647 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 12, 2011
  3. Fix for params/args zip IOOB crash.

    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25646 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 12, 2011
  4. Removed unused import.

    No review.
    
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25645 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    grek committed Sep 12, 2011
  5. Report erroneous tree instead of Error tree in case we are dealing wi…

    …th presentation compiler. This way scala plugin doesn't have to be aware of Error trees in most common cases. Some minor tweaks
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25644 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    plocinic committed Sep 12, 2011
Commits on Sep 10, 2011
  1. Method to zip value params and args.

    I had all the variations of zip/zipped start logging when they being
    were given differently lengthed arguments, to find out what all we might
    be throwing away. This uncovered at least one bug with free variable
    identification, fixed herein, and also solidifed my belief that we
    should have a lot less ad hoc zipping of things. No review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25643 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 10, 2011
  2. Helping Proxy equal itself.

    Fix for bumpy proxy equals.  Closes SI-4807, no review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25642 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 10, 2011
  3. Improvement of incompatible == warning.

    Didn't notice that ScalaObject would sometimes be the lub
    rather than Object, no review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25641 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 10, 2011
  4. Fixing the optimized build.

    Continuations suddenly needs fjbg.jar on its classpath due
    to transitive dependency, no review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25640 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 10, 2011
Commits on Sep 9, 2011
  1. Fix various InnerClasses bugs.

    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.
    
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25639 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    grek committed Sep 9, 2011
  2. Brought back unrelated type comparison warning.

    Figured out how to turn it on by default, even.
    Closes SI-4979, no review.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25638 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 9, 2011
  3. Added parens to many methods.

    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.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25637 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 9, 2011
Commits on Sep 8, 2011
  1. added missing getExcludedFiles in <scalac> Ant task (same change is p…

    …ending for <pending> Ant task).
    
    A new starr is needed for that features to work in build.xml (and other Ant scripts).
    
    
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25636 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    michelou committed Sep 8, 2011
  2. Allow for the overriding of objects.

    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.
    
    git-svn-id: http://lampsvn.epfl.ch/svn-repos/scala/scala/trunk@25635 5e8d7ff9-d8ef-0310-90f0-a4852d11357a
    extempore committed Sep 8, 2011