| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This must have been me when I eliminated some of the
remaining distinction between TypeRef(_, moduleClass, Nil) and
SingleType(_, moduleClass). Sorry I didn't track it down sooner. Review by anyone who is around because this is overdue.
|
|\
| |
| | |
Avoids loading scala.package and scala.reflect.package from source if a ...
|
| |
| |
| |
| |
| |
| | |
classfile exists.
We know that loading these packages from source leads to compilation errors. To reproduce: Update scala.reflect.package, make sure it is on the source path and recompile anything using it. You will get a number of errors having to do with ClassTags and macro expansions. With the patch, these errors go away because the package is not loaded as long as a classfile exists.
|
|\ \
| | |
| | | |
Closes SI-5878
|
| | |
| | |
| | |
| | | |
We need to impose an additional rule on value classes: They may not unbox directly or indirectly to themselves.
|
|\ \ \
| | | |
| | | | |
IDE improvements, with particular focus on making worksheets work.
|
| | | |
| | | |
| | | |
| | | | |
Debug changes
|
| | | |
| | | |
| | | |
| | | | |
Adds a raw string interpolator raw"..." which does not do any escape sequence processing.
|
| | | |
| | | |
| | | |
| | | | |
Adds method askForResponse which returns a response immediately instead of waiting for a result. That way, one can wait for an ask's result using a timeout.
|
| | | |
| | | |
| | | |
| | | | |
Code instrumentation needs to see a consistent snapshot of a source file. To achieve that we disable interrupts during getInstrumented.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
To try it out:
run "instrument worksheet" as usual in the REPL. Worksheet needs to have enclosing object definition. Say it is named "Obj".
This will generate a file Obj$instrumented. You can compile that file separately and run it using Java. It should reproduce itself.
|
|\ \ \ \
| | | | |
| | | | | |
`ScriptSourceFile` should not hard-code `OffsetPosition`.
|
| | |_|/
| |/| |
| | | |
| | | | |
The presentation compiler should support script source files as well, but it needs range positions. This commit
fixes an oversight when `RangePosition` was introduced.
|
|\ \ \ \
| | | | |
| | | | | |
Partest instrumentation fixes
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The previous implementation was wrong because it
would always enable profiling after call to
`Instrumenation.getStatistics` method. Now we are
checking the profiling status and enable it again
only when it was enabled before.
Review by @phaller.
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Extend instrumenting infrastructure to instrument
classes in `instrumented` package. This is useful
because very often you need to put your classes
into non-empty package. E.g. inliner doesn't work
properly with empty package at the moment so in
order to test any behaviour we need to put classes
in some other package that is instrumented.
Added testing code for that to instrumentation
test-case.
Review by @phaller.
|
|\ \ \ \
| | | | |
| | | | | |
SI-6140 Scaladoc infinite recursion in wiki parser
|
| | | | |
| | | | |
| | | | |
| | | | | |
introduced by dc70d1b7.
|
|\ \ \ \ \
| | | | | |
| | | | | | |
Issue/4560
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit cb4fd65825f3c88908103e48d0d7e89d70d26c22.
Conflicts:
src/compiler/scala/tools/nsc/symtab/Types.scala
src/compiler/scala/tools/nsc/typechecker/Contexts.scala
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 124cf3f9cbdc582a432c13edd229ba9b8726b99f.
Conflicts:
src/compiler/scala/tools/nsc/transform/CleanUp.scala
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This reverts commit 7127d8293775905acd0d04e21d9e045b5c029261.
Conflicts:
test/files/run/t4560.scala
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Following this commit are reversions of three prior commits which
introduced difficulties of their own, plus extra tests for this
issue and SI-4601, all of which I pinched from jrudolph.
Maybe there was a good reason for some of the complicated code
related to this ticket. I took the naive position that if we avoided
generating a method call to a particular receiver if the receiver
has no such method, we would encounter fewer NoSuchMethodErrors.
I would believe one can construct a scenario which this doesn't
handle correctly, but it's hard to believe this isn't a big
improvement. Review by @jrudolph, @odersky.
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-6142: warn @inline-methods ending up not inlined (rightfully or not)
|
| | |_|/ / /
| |/| | | | |
|
|\ \ \ \ \ \
| | | | | | |
| | | | | | | |
SI-5958 This deserves a stable type
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
`this` (or the self variable) passed as an actual argument to a method
should receive a singleton type when computing the method's resultType
this is necessary if the method's type depends on that argument
|
| |_|_|_|_|/
|/| | | | |
| | | | | |
| | | | | |
| | | | | | |
... in a less nice way than I would like. Essentially, we mask type errors at later stages that arise from comparing existentials and skolems because we know that they are not tracked correctly through all tree transformations. Never mind that all these types are going erased anyway shortly afterwards. It does not smell nice. But as I write in the comment, maybe the best way out is to
avoid skolems altogether. Such a change by far exceeds the scope of this pull request however.
|
| | | | | | |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
This pretty much takes us down to deprecation and inliner warnings.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
Since we were blessed with spurious warnings.
With this commit I have eliminated every warning in trunk
except for deprecation, feature, and inliner warnings, plus
one due to SI-6146. I'm not going to count "pattern matcher
performance warnings" which are presently preventing me from
turning on -unchecked even though there are no genuine
-unchecked warnings remaining. Hey, get your own option!
Conflicts:
src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
And also non-exhaustive matches.
And added -nowarn to the build options for scalacheck,
we don't need to hear the warnings for code we aren't
able to fix.
|
| | | | | | |
|
| |/ / / /
|/| | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Don't warn on "uncheckable" type patterns if they can be
statically guaranteed, regardless of their runtime checkability.
This covers patterns like Seq[Any] and lots more.
Review by @adriaanm.
|
|/ / / / |
|
|\ \ \ \
| | | | |
| | | | | |
SI-6075 cleans up api.StandardNames
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
I removed most of the stuff from api.StandardNames and reorganized all names.
In the new scheme of things (as documented in the comments to StandardNames):
1) base.StandardNames contains names necessary for building trees. For example,
tpnme.WILDCARD_STAR is necessary to build some invocations of varargs methods,
and nme.CONSTRUCTOR is necessary to build invocations of constructors.
2) api.StandardNames hosts names that are core to doing reflection. E.g.,
to get to a package object, you need to find a member named nme.PACKAGE,
to strip off the whitespace from the name of an underlying field of a val,
you need nme.LOCAL_SUFFIX_STRING.
Note that we don't need nme.MODULE_SUFFIX_STRING, because module name mangling
is encapsulated in java mirrors.
|
|\ \ \ \ \
| |_|_|/ /
|/| | | | |
SI-6112 exposes symbol mutators in macro universe
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In makro.Universe we expose the most hardcore fragments of the compiler API
that don't make sense / can't be made use of in runtime reflection API.
makro.Universe is already refining Tree to include setters for
symbols, types and positions. Now we bring Symbol up to speed.
|
|\ \ \ \
| | | | |
| | | | | |
SI-4440 workaround: avoid outer accessor that'll vanish
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
outer accessors of final classes are dropped in constructors
apply some foresight in explicit outer and replace those doomed outer checks by `true`
(since this is unfortunate, we generate an unchecked warning)
|
| |_|/
|/| | |
|
|\ \ \
| | | |
| | | | |
SI-6058 makes JavaMirror caches weak
|
| | |/
| |/|
| | |
| | |
| | |
| | | |
As discussed on reflection meeting on 2012/07/19, runtime reflection caches
need to be weak. This way we prevent leaks in long-running reflection-based
applications (the primary target here being SBT).
|
|\ \ \
| |/ /
|/| | |
SI-6117 regression involving import ambiguity.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Today I learned that
foo.member("bar") != foo.member("bar")
if bar is overloaded, because each lookup of an overloaded member
creates a new symbol (with equivalent OverloadedTypes.) How should symbols
be compared so these do not appear unequal? Is there a method which
unpacks the alternatives and compares them individually? It seems likely
there are additional bugs which arise from not covering this case.
Since this bug is in the context of importing, if the prefixes are
identical then I can compare the names instead of the symbols and this
issue goes away. But for the rest of the time during which one might
encounter overloaded symbols, that would be a very lossy operation,
since the overloaded symbol might be encoding any subset of the members
with that name.
There are lots of references to "OverloadedSymbol" in the comments of
various methods in Types, but no such class is visible in the history.
If we had such a thing, we could refine its equals method to recognize
equivalent overloads.
Review by @odersky.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Stop recording symbols once the shutdown hook is triggered
so that the symbols created in the act of dumping the symbols
do not pollute the view of what symbols were created naturally.
|
| | |
| | |
| | |
| | | |
"If the names don't fit, do not commit!"
|
|\ \ \
| | | |
| | | | |
[doc] Fix example of `Ordering.on` usage.
|
| | |/
| |/| |
|