| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| | |
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
You are a fireman, leading a team of firemen on a rescue
in a burning building. When you have cleared a room, you place
a sticker on the door which says "Room cleared!" If the other
firemen see that sticker, they will skip that room, knowing
there are no small children or adorable puppies behind it.
As the lead fireman, here is what you should not do: run from
door to door slapping "Room cleared!" stickers on them all, so
the other firemen shrug and go home.
Translation: when recursion depends on a condition, if you
alter the condition before you recurse, you may not recurse at all.
|
|\ \ |
|
| | | |
|
| | | | |
| \ \ | |
| \ \ | |
| \ \ | |
|\ \ \ \ \
| | | | | |
| | | | | |
| | | | | | |
'refs/pull/421/head'; commit 'refs/pull/422/head' into develop
|
| | | | |/
| | | |/|
| | | | |
| | | | | |
Fix SI-5168.
|
| | |/ /
| | | |
| | | |
| | | | |
Fix SI-5083.
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- Consolidating many islands of name organization. Folds NameManglers
into StdNames. Brings more of the string constants together with similar
constants. Move name manipulation methods which produce TypeNames
into object tpnme rather than nme.
- Starting on MethodSymbolApi, ClassSymbolApi, etc so we can put
sensible methods on sensible entities. This pushed into Definitions,
where I pulled a whole bunch out of the api side (or at least marked
my intention to do so -- too many tests use them to make them easy to
remove) and on the compiler side, returned something more specific than
Symbol a bunch of places.
- Added a number of conveniences to Definitions to make it easier to
get properly typed symbols.
Note: one way in which you might notice having better typed Symbols is
with Sets, which have the annoying property of inferring a type based on
what they've been constructed with and then hard failing when you test
for the presence of a more general type. So this:
val mySet = Set(a, b)
println(mySet(c))
..goes from compiling to not compiling if a and b receive more specific
types (e.g. they are MethodSymbols) and c is a Symbol or ClassSymbol or
whatever. This is easily remedied on a site-by-site basis - create
Set[Symbol](...) not Set(...) - but is an interesting and unfortunate
consequence of type inference married to invariance.
The changes to DummyMirror where things became ??? were driven by the
need to lower its tax; type "Nothing" is a lot more forgiving about changes
than is any specific symbol type.
|
| |/ |
|
| |\ \ \ \ \
| | | | | | |
| | | | | | |
| | | | | | | |
'refs/pull/416/head'; commit 'refs/pull/417/head'; commit 'refs/pull/418/head' into develop
|
| | | | | | | |
|
| | | | | |/ |
|
| | | | |/ |
|
| | | |/ |
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
locker.lib:
[javac] Compiling 1 source file to C:\Projects\Kepler\build\locker\classes\library
[javac] C:\Projects\Kepler\src\library\scala\concurrent\impl\Unsafe.java:17: warning: sun.misc.Unsafe is Sun proprietary API and may be removed in a future release
[javac] public final static sun.misc.Unsafe instance;
[javac] ^
[javac] C:\Projects\Kepler\src\library\scala\concurrent\impl\Unsafe.java:20: warning: sun.misc.Unsafe is Sun proprietary API and may be removed in a future release
[javac] sun.misc.Unsafe found = null;
[javac] ^
[javac] C:\Projects\Kepler\src\library\scala\concurrent\impl\Unsafe.java:21: warning: sun.misc.Unsafe is Sun proprietary API and may be removed in a future release
[javac] for(Field field : sun.misc.Unsafe.class.getDeclaredFields()) {
[javac] ^
[javac] C:\Projects\Kepler\src\library\scala\concurrent\impl\Unsafe.java:22: warning: sun.misc.Unsafe is Sun proprietary API and may be removed in a future release
[javac] if (field.getType() == sun.misc.Unsafe.class) {
[javac] ^
[javac] C:\Projects\Kepler\src\library\scala\concurrent\impl\Unsafe.java:24: warning: sun.misc.Unsafe is Sun proprietary API and may be removed in a future release
[javac] found = (sun.misc.Unsafe) field.get(null);
[javac] ^
[javac] 5 warnings
[propertyfile] Updating property file: C:\Projects\Kepler\build\locker\classes\library\library.properties
[stopwatch] [locker.lib.timer: 0.908 sec]
|
| | |
| | |
| | |
| | | |
Another deprecated soul passes on to ether world.
|
| |/ |
|
|/ |
|
|
|
|
|
|
| |
I also tried transforming a comment into an assertion and to
my shock and happy surprise everything still worked. Let's
express those preconditions in code when we can, mmm?
|
| |
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| | |
It depended on the signature of uncheckedWarnings.
|
|/ |
|
|
|
|
| |
For mr. optimizer and his band of merry privates.
|
| |
|
|\ |
|
| |
| |
| |
| | |
And we'll need a separate mechanism for making internal fields public.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
workaround for inliner bug in run/t3835
see SI-5672 for the optimizer bug
tiny switches (2 cases or less) don't make sense anyway,
so this is not a big deal
the annotDepMethType.flags contained -Xexperimental,
which causes Any* to be considered as a valid return type,
before we weren't exposed to this, because the product methods
used (tiny) switches; with this change, they went back to pattern matches
in any case, the -Xexperimental was intended to turn on dependent method types,
not Any* as valid type (I can only assume), and they are now on by default
the other tests were affected by our refusal to emit tiny switches
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
detect partialfunction in cpsannotationchecker
emit apply/isDefinedAt if PF has @cps targs (applyOrElse can't be typed)
further hacky improvements to selective anf
better try/catch support in selective cps using freshly minted anonfun match
make virtpatmat resilient to scaladoc (after uncurry, don't translate matches
TODO: factor out translation all together so presentation compiler/scaladoc can skip it)
|
| |
| |
| |
| |
| |
| | |
the optimizer generates wrong bytecode for switches in arguments
virtpatmat happily emits a switch for a one-case switch, whereas -Xoldpatmat did not
this is not the focus of this test, hence the temporary workaround
|
| | | |
| \ | |
|\ \ \
| | | |
| | | |
| | | | |
'type-destructure' into develop
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Would prefer to bake a little longer, but, scala days.
More elaboration to come.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
@viktorklang
|
| |\| | |
|
| | | | |
|
| | | | |
|
| |\ \ \
| | | | |
| | | | | |
Wip sip14 fixes
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | | |
JVM, also adding EX.reportFailure where it makes sense
|
| | | | |
| | | | |
| | | | |
| | | | | |
same match approach as def isCompleted
|