| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
- accept the creation of compound types with non-empty refinements, but
fail as soon as isSameType/isSubType is attempted
|
|
|
|
|
|
|
| |
- fixed asInstanceOf when applied to null, so that it works according
to the spec, - use a local variable in the "two steps" translation of
isInstanceOf, to avoid duplicated evaluation
|
| |
|
|
|
|
|
| |
- extended the notion of triviality to array types
|
|
|
|
|
| |
- finer-grained statistics for instances: count unique instances too
|
|
|
|
|
| |
Fixed the implicit coercion of Enums to their underlying type
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- use the mini-transformer when targetting the MSIL backend; this phase
is not applicable for the MSIL backend; - do not initialize certain
values if the mini-transformer is used; this is necessary with the MSIL
backend which leaves some uninitilized fields in Definitions that are
needed by TypesAsValues.
|
| |
|
| |
|
|
|
|
|
|
|
| |
- added weakIsInstance method in ScalaClassType, which make it possible
to slightly optimise instance tests when the type is that of a known
class (e.g. x.isInstanceOf[C[T]])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- changed pattern matcher to use the erased versions of asInstanceOf
when possible, to gain some speed when run time types are enabled; i.e.
instead of generating code like this:
if (x.isInstanceOf[List[Int]]) {
val temp$ = x.asInstanceOf[List[Int]];
...
}
the pattern matcher now generates code like that:
if (x.isInstanceOf[List[Int]]) {
val temp$ = x.asInstanceOf$erased[List[Int]];
...
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- introduced isInstanceOf$erased and asInstanceOf$erased methods, which
work on the erased types; things to note:
* before TypesAsValues phase, either variant can be used, although
the erased ones need to be used with caution, when speed
matters;
* after TypesAsValues phase, only the erased variants should be
used (done automatically by TreeGen);
* when run time types are disabled, the TypesAsValues phase is not
skipped anymore: it is turned into a trivial phase which
rewrites all non-erased instanceof/casts into erased ones.
|
|
|
|
|
|
| |
- pass null as ancestor code when it is empty, instead of creating an
array each time
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- use TypeConstructor.FUNCTION_OUTER as a fake outer instance for
classes nested inside functions
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- Avoid reimplementing foreach, forall, exists, find, foldLeft,
foldRight by forwarding them to their implementation in scala.Iterator
|
|
|
|
|
| |
Added a toList method to override the one from scala.Seq
|
|
|
|
|
| |
- added documentation page "Scala Plugin for Eclipse".
|
|
|
|
|
|
| |
- rewrote some parts,
- added some comments.
|
|
|
|
|
|
| |
- bug fix: increase the timeout while waiting for the parents to be
computed
|
|
|
|
|
|
|
| |
- changed the format of the ancestor code, to shrink it (hopefully),
- put only non-trivial types in the ancestor cache, pass only strongly
- non-trivial parents to instantiation methods,
|
|
|
|
|
|
| |
- removed NewMember class and all related code, all of which was
obsolete
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- added a new kind of literal, SYMBOL_NAME, which is a string literal
whose value is the name of the attached symbol - modified mkLocalRef to
handle static members
|
|
|
|
|
|
| |
- added a new kind of literal, SYMBOL_NAME, which is a string literal
whose value is the name of the attached symbol
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
- renamed "checkCastability" (in Type and subclasses) to "cast", which
is nicer and closer to Java 1.5, - renamed "display" to "ancestors" in
run-time types
|
|
|
|
|
| |
- added workaround for \spacefactor problem (see comment in tex source).
|
| |
|
| |
|