| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Fixed stackoverflow problem when initializing large scopes.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
| |
Removed redundant UnCurry transform (now in LiftCode.)
No review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Improved getFiles/getDirs in PartestTask; did some cleanup.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Partially reverted r25636 change (forget notice about the starr
rebuild).
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 !
|
| |
|
|
|
|
|
| |
No review.
|
|
|
|
|
|
|
| |
Report erroneous tree instead of Error tree in case we are dealing with
presentation compiler. This way scala plugin doesn't have to be aware of
Error trees in most common cases. Some minor tweaks
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Fix for bumpy proxy equals. Closes SI-4807, no review.
|
|
|
|
|
|
| |
Didn't notice that ScalaObject would sometimes be the lub rather than
Object, no review.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Figured out how to turn it on by default, even.
Closes SI-4979, no review.
|
|
|
|
|
|
|
|
| |
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 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).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Integrates recent speed improvements to algorithm.
Contributed by Ruediger Keller, no review.
|
|
|
|
|
|
| |
Fixes #1000349: Dot completion doesn't work when calling a no-arg method
with no parens
|
| |
|
|
|
|
|
| |
I missed inlining warnings - need to get better glasses. No review
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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 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 are not available. Closes
SI-4943.
|
|
|
|
|
| |
Removed erroneous throw which was stealthily killing the build.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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 refinements to reflection and the reflective compiler.
|
|
|
|
|
|
|
|
| |
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 review.
|
| |
|
|
|
|
|
|
| |
Some great AnyVal class hierarchy documentation from Iain McGinniss. No
Review.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.process.
From the first international scaladoc marathon.
Contributed by: Daniel Sobral
|
|
|
|
|
|
| |
Small tweak to reflection to make package types same as for
SymbolLoaders
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
Twist to make crashes more robust :-) (by avoiding exceptions that get
raised when printing debug output in erasure).
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|