| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | |\ \ \
| | | | | | |
| | | | | | | |
SI-6581 fixed by inlining `Actor.self`.
|
| | | | |/ /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This avoids the necessary type cast that was preventing leakage of internal migration classes.
Review by @phaller
|
| | | |\ \ \
| | | | | | |
| | | | | | | |
Fixes SI-5031 for separate compilation scenario.
|
| | | | |/ /
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When you have a conflicting member in package object and normal package that share the same namespace we remove the latter ClassSymbol from the scope. Now, this has an unpleasant consequence that companionClass/companionModule/companionSymbol no longer work correctly as they rely on finding the correspondent symbol using decls of the owner.
This fixes the problem of SI-5031 for separate compilation. Why the above change matters for finding foo.bar.Foo? Because when parsing the class we needed information about the static module (and we have the correct module symbol when completing the info). It's just that 043ce6d0565c9d5d960 relied on no longer valid assumptions. So we were getting NoSymbol and sym.exist was failing.
Obviously a more complete solution would be better if we didn't rely on the scope but that's too big to change for 2.10.0.
|
| | | | |/
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* Removes actors-migration hooks from partest
* Removes actors-migration code
* removes actors-migration tests
* removes actors-migration distribution packaging.
|
| | |\ \ \
| | | | | |
| | | | | | |
Fix for SI-6597, implicit case class crasher.
|
| | |/ / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It seems to me like every call to scope.lookup in the
compiler is a latent bug. If a symbol is overloaded, you
get one at random. (See the FIXME comment in f5c336d5660
for more on this.)
|
| | |\ \ \
| | | | | |
| | | | | | |
Merge 2.10.0-wip into 2.10.x.
|
| | |\ \ \ \
| | | | | | |
| | | | | | | |
SI-6488: Fix for race with open I/O fds
|
| | | | | | | |
|
| | |\ \ \ \ \
| | | |/ / / /
| | |/| | | | |
Fixes SI-6559 - StringContext not using passed in escape function.
|
| | |/ / / /
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
As reported by Curtis Stanford, with indication of what to fix. standardInterpolator was not correctly
calling the passed in process function, so raw strings were not really raw.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Ticket/revert primitive array opt
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
This reverts commit 8265175ecc42293997d59049f430396c77a2b891.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 092345a24c22a821204fb358d33272ae8f7353be.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
SI-6611 Tighten up an unsafe array optimization
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The net was cast too wide and was unsafely optimizing away array
copies.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
Improvements to scope lookup.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
I'm reverting 14704da1b8 because it isn't yet used anywhere,
but leaving it in the history because I or someone is going to
put it to work.
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Code reviewer prodded me into figuring out where my earlier
attempts to simplify the import logic broke down. Now it should
be much easier to follow.
|
| | | | | | | |
|
| | | | | | | |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Calls to scope.lookup have until this commit discarded any symbols
after the first, even at the same nesting depth. Some call sites which
did this were innocuous, because they were only checking if
lookup(name) != NoSymbol. To make this clearer in the future, I added
a method which communicates the intent: containsName. And I added an
even more relevant one, which falls between "lookup" and "lookupAll".
def lookupUnshadowedEntries(name: Name)
That method will be put to work in symbol lookup, allowing us
to put to bed methods like "correctForPackageObject".
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
If you called filter on an overloaded symbol, it tried to
return itself if no alternatives were filtered out. The test
being performed, however, would only ever be true if the
list call was to the (non-existent) "filterConserve", which
is to say that in general,
xs ne xs.filter(_ => true)
The upshot is that we were creating a new symbol on every filter
call to an overloaded symbol. To make completely sure this would
be a performance winner, I also eliminated the closure and perform
the filtering locally.
|
|\ \ \ \ \ \ \
| | | | | | | |
| | | | | | | | |
SI-6567 Warning for Option(implicitView(foo))
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
I've seen the reported problem before in the wild. It seems
worthy of a special warning, so long as we advocate Option.apply
as an alternative to `if (x == null) Some(x) else None`.
It is behind -Xlint at the moment, an option that could do with
some promotion.
|
|\ \ \ \ \ \ \ \
| |_|_|/ / / / /
|/| | | | | | | |
Expanded unused warnings.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Factor out 8x duplicated bit of UnPicklers.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Sometimes unused vals have side effecting right hand sides,
and it looks like one or maybe two slipped through my net.
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
According to "git diff" the difference from master to this
commit includes:
Minus: 112 vals, 135 vars
Plus: 165 vals, 2 vars
Assuming all the removed ones were vals, which is true from 10K feet,
it suggests I removed 80 unused vals and turned 133 vars into vals.
There are a few other -Xlint driven improvements bundled with this,
like putting double-parentheses around Some((x, y)) so it doesn't
trigger the "adapting argument list" warning.
|
| |/ / / / / /
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
Now warns on unused private and local terms and types.
In addition it warns when a local var is read-only past
the point of its creation - something I never would have
guessed would be such a gold mine. Over 100 vars in trunk
turn into vals.
|
|\ \ \ \ \ \ \
| |/ / / / / /
|/| | | | | | |
Fix for SI-6426, importable _.
|
|/ / / / / /
| | | | | |
| | | | | |
| | | | | | |
Prohibit `_` as an identifier, it can only bring badness.
|
|\ \ \ \ \ \
| |/ / / / /
|/| | | | | |
Comment to link code to a relevant JIRA ticket
|
|/ / / / / |
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Warn about unused private members. Get rid of warnings (and their privates).
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
That's a lot of unused code. Most of this is pure cruft; a small
amount is debugging code which somebody might want to keep around,
but we should not be using trunk as a repository of our personal
snippets of undocumented, unused, unintegrated debugging code. So
let's make the easy decision to err in the removing direction.
If it isn't built to last, it shouldn't be checked into master.
|
|/ / / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Warnings enabled via -Xlint. It's one of the most requested
features. And it is hard to argue we don't need it: see the
99 methods removed in the next commit.
This should close SI-440.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Saving symbol lookup from typedIdent.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Turns out putting a group of case classes at what feels like
the top level might not be top-level enough, like if your "top"
is Analyzer and you wind up with different outer pointers in
every instance of Typer. Moved the whole bundle to SymbolTable.
|
| | | | | | |
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This completes the transition. Typer's bevy of special
cases to influence symbol lookup are encoded in its local
"qualifies" method, which it passes to lookupSymbol.
This allows access to be done correctly without infecting
Typer with such pedestrian concerns.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Apply convenience methods to strip away complications.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Greasing the wheels for Typer's well-being.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Given that it's just a reimplementation of Option, we may as
well not also reimplement methods like map and getOrElse at
every call site.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This unifies several disparate/ad-hoc mechanisms for
excluding symbols from eligibility in a single predicate.
This is the method on Context:
def lookupSymbol(name: Name, qualifies: Symbol => Boolean)
The logic is largely that which was buried in typedIdent,
except that I fixed SI-3160 so that import foo._ does not
inject foo's private members into your namespace.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Too many unrelated things are intermingled. If you
want to know what symbol corresponds to a particular name
in a particular context, you shouldn't have to involve
either a Tree or a Typer to find that out. I toiled line
by line over typedIdent until it had shed its redundancies
and freed itself from the bowels of typed1.
The mechanism of name lookup is such that adding a
qualifier when the occasion calls for it is inseperable
without a lot more effort. So to preserve a sane interface
I devised this small partitioning of outcomes.
case class LookupSucceeded(qualifier, symbol)
case class LookupAmbiguous(msg)
case class LookupInaccessible(symbol, msg)
case class LookupNotFound(msg)
|