| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
If args to a method are alias types, dealias to see if they
contain Any before warning about inferring it. Similarly for
return and expected types.
|
|
|
| |
Avoid spurious italics...
|
|
|
| |
Reported by hu zhifeng -- thanks!
|
|\
| |
| | |
Merge 2.10.x to 2.11.x
|
| |\ |
|
| | |\
| | | |
| | | | |
SI-4339 Backpatch event errors and attr fix
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Because the compiler and library share some code in this
version, compiler must exclude xml tags that look like
Scala operators, such as `<:`.
This is an upstream port of:
scala-xml/commit/968f7bd94e934c781c19e25847ab09ac98cfbaf6
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Improve attribute parsing and propagate errors
across event thread. Otherwise tests just hang.
This is tested, right?
This is an upstream port of scala-xml
5f2cfadeb9e8574ed66f37dc7a7a868eb129a8a9
|
| | |\ \
| | | | |
| | | | | |
Scaladoc js location synch more robust
|
| | |/ /
| | | |
| | | |
| | | |
| | | |
| | | | |
Tested on:
- Mac: FF35/Safari 8/Chrome 41
- Win: IE11
|
| |\| |
| | | |
| | | |
| | | |
| | | |
| | | | |
Conflicts:
src/library/scala/concurrent/Promise.scala
test/files/jvm/future-spec/PromiseTests.scala
|
| | |\ \
| | | | |
| | | | | |
SI-8689 Avoid internal error in Promise after sequence of completions
|
| | | |/
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Calling `completeWith` when the `DefaultPromise` is already completed,
leads to callbacks not being properly executed.
This happened because `Future.InternalCallbackExecutor` extends
`BatchingExecutor`[1] which assumes `unbatchedExecute` to be async,
when in this case it is sync, and if there is an exception thrown
by executing the batch, it creates a new batch with the remaining
items from the current batch and submits that to `unbatchedExecute`
and then rethrows, but if you have a sync `unbatchedExecute`, it will
fail since it is not reentrant, as witnessed by the failed `require`
as reported in this issue.
This commit avoids problem by delegating `completeWith` to
`tryComplete`, which has the effect of using `onComplete` +
`tryComplete` i.s.o. `complete`, which means that when it fails
(because of a benign race condition between completers) it won't
throw an exception.
It has been tested by the minimized reproducer.
[1] Actually, in the 2.10.x branch where this patch is starting out,
"The BatchingExecutor trait had to be inlined into
InternalCallbackExecutor for binary compatibility.". This comment
will be more literally correct in the context of 2.11.x and beyond
|
| |\| | |
|
| | |\ \
| | | |/
| | |/| |
Backported fix for SI-7753 to 2.10.x.
|
| | |/ |
|
| | |\
| | | |
| | | | |
New CI validation scripts
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Currently not validating the IDE, pending fix for
https://github.com/scala-ide/uber-build/issues/48.
The new infrastructure is documented over at:
- https://github.com/scala/scabot
- https://github.com/scala/scala-jenkins-infra
- [jenkins jobs definitions](https://github.com/scala/scala-jenkins-infra/tree/master/templates/default/jobs/validate)
|
| | |\
| | | |
| | | | |
SI-9027 Backport xml parser fix
|
| | |/
| | |
| | |
| | |
| | |
| | | |
Fingers crossed, I have no local java 6 here to test.
No test because no q"" on 2.10.
|
|\ \ \
| | | |
| | | | |
fixes pluginsEnterStats
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Initial implementation of pluginsEnterStats was incorrect, because I got
the foldLeft wrong, making it perpetuate the initial value of stats.
This worked fine if zero or one macro plugins were active at a time,
but broke down if there were multiple of such plugins (concretely,
I discovered this issue when trying to marry macro paradise with scalahost).
|
|\ \ \ \
| |/ / /
|/| | | |
SI-9172 FlatMapped views throw exception on filter
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Errant `self.length` changed to `length`.
No tests; found and tested by collections-laws.
|
|\ \ \
| | | |
| | | | |
Scaladoc js location synch more robust
|
|/ / /
| | |
| | |
| | |
| | |
| | | |
Tested on:
- Mac: FF35/Safari 8/Chrome 41
- Win: IE11
|
|\ \ \
| | | |
| | | | |
SI-9126 Missing .seqs causes problems with parallel GenXs
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Added `.seq` in two essential places so that a parallel collection passed as an argument won't mess up side-effecting sequential computations in `List.flatMap` and `GenericTraversableTemplate.transpose` (thanks to retronym for finding the danger spots).
Tests that `.seq` is called by constructing a `GenSeq` whose `.seq` disagrees with anything non-`.seq` (idea & working implementation from retronym).
Also updates the `.seq` test for `Vector#++` to use the new more efficient method.
|
|\ \ \
| |/ /
|/| | |
SI-8801 Another test for fixed exponential-time compilation
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Turns out that SI-9157 was a duplicate of SI-8801. This commit
adds Paul's test, whose compile time is now back in the troposphere.
% time qscalac test/files/pos/t8801.scala
real 0m1.294s
user 0m3.978s
sys 0m0.240s
|
|\ \ \
| | | |
| | | | |
SI-9153 More complete and stable results for completions
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The checkfile of the tests added in the last commit offered
a type member from `RichInt` in the completions for the type
`Int`. However, only term members can be extension methods;
type members cannot.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Three items of background are needed to understand this bug.
1. When typechecking an application like `qual.m({stats; expr})`, the
argument is typechecked using the formal parameter type of `m` as the
expected type. If this fails with a type error located within in
`expr`, the typer instead re-typechecks under `ContextMode.ReTyping`
without an expected type, and then searches for an implicit adaptation
to enable `view(qual).m(args)`. Under this mode, `Typer#typed1`
clears the type of incoming trees.
2. The presentation compiler performs targetted operations like
type completions by:
- typechecking the enclosing tree, registering all typechecker
`Context`s created in the process (`registerContext`)
- finding the smallest enclosing `Context` around the target
position (`doLocateContext`)
- Using this context to perform implicit search, which can
contribute members to the completion. (`applicableViews` within
`interactive.Global#typeMembers`)
3. When verifiying whether or not a candidate implicit is applicable
as a view from `F => T`, implicit search typechecks a dummy call
of the form `q"candiate(${Ident("<argument>").setType(typeOf[F])})".
Now, picture yourself at the nexus of these three storms.
In the enclosed test case, we search for completions at:
x + 1.<caret>
1. Because the code is incomplete, the application of `Int#+`
doesn't typecheck, and the typer also tries to adapt `x` to a
method applicable to the re-typechecked argument.
2. This process registers a context with `retypechecking` set to
true. (If multiple contexts at the same position are registered,
the last one wins.)
3. Implicit search uses this context to typecheck
`Predef.Ensuring(<argument>.setType(Int))`, but the argument
is promptly stripped of its type and retypechecking fails
as there is no definition named `<argument>` in scope.
As such, we missed out on extension methods, like `ensuring` in the
list of completions.
This commit changes the presentation compiler to turn off retyping
mode in the context before starting to work with it. (Are the other
modes that might cause similar bugs?)
Once I made that change, I noticed that the results the enclosed test
was not stable. I tracked this down to the use of a `HashMap` to
carry the applicable implicit views, together with the way that
the presentation compiler removes duplicates. This commit
switched to a `LinkedHashMap`.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This avoids a minor inefficiency of interning the name on
each implicit candidate. Instead, we follow the usual practice
and use a pre-baked name from `StdNames`.
|
|\ \ \ \
| | | | |
| | | | | |
Optimization of IterableLike.scala
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Changed takeRight to have two tighter loops instead of one with a conditional. See about 10% performance improvement.
Other changes were (surprisingly, in some cases) not a win. Overall, IterableLike is pretty well optimized.
|
|\ \ \ \
| | | | |
| | | | | |
SI-8917 collection.mutable.BitSet's &= operator doesn't clear end
|
| |/ / /
| | | |
| | | |
| | | | |
Made &= run to the end of its own bitset, ignoring the size of what it's &-ing with (which is exactly what you want for &=).
|
|\ \ \ \
| | | | |
| | | | | |
Fix SI-7943 -- make `TrieMap.getOrElseUpdate` atomic.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Override `getOrElseUpdate` method in `TrieMap`.
The signature and contract of this method corresponds closely to the
`computeIfAbsent` from `java.util.concurrent.ConcurrentMap`.
Eventually, `computeIfAbsent` should be added to
`scala.collection.concurrent.Map`.
Add tests.
Review by @Ichoran
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Fix the Scaladoc tests under Java 8
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Partest seems to require a second copy of the `filters` find
in the root of the Scaladoc tests.
This file ignores JVM-specific console output, like everone's
favourite nag:
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
Not sure what changed to make this necessary, maybe a partest
upgrade? The first failing build was on Feb 14:
https://scala-webapps.epfl.ch/jenkins/view/2.N.x/job/scala-nightly-auxjvm-2.11.x/287/
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
SI-9164 Fix thread safety of Scaladoc diagram generator
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
In a bug reminiscent of SI-7603 / ab8a223, when running multiple
instances of Scaladoc in one JVM/classloader, we are exposed to
race conditions in unprotected mutable state in a top-level object.
This commit moves that state into the `Universe` object, which
corresponds to a single Scaladoc instance. It also removes a little
premature abstraction from the code.
Note: the statistics code is still not thread safe, but this is no
worse than the compiler itself, and not a real problem, as they are
only enabled begind a `-Y` option.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
SI-9148: Appends companion type to link tooltips
|
| | | | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Simpler & Scala.js-friendly `ClassTag.unapply`
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
It needs a packed build. Skip the optimization of only
compiling junit tests when those source change,
since we should also rebuild when e.g., library source changes
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Inline overloaded calls to `unapply`, so we can get rid of them in 2.13.
Note that theres a lot of `box(unbox(x))` going on behind the scenes.
Is this needed?
|