| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
- extended the notion of triviality to array types
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
- rewrote some parts,
- added some comments.
|
|
|
|
|
|
|
| |
- 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
|
|
|
|
|
|
| |
- Correctly differentiate between methods that differ only in the return
type
|
|
|
|
|
|
|
| |
in the interface of a Scala class and if they are private they are
not accessible from the implementation class. Giving them assembly
visibility solves the problem.
|
| |
|
| |
|
|
|
|
|
|
| |
- use the new parameter to the constructor of ScalaClassType, to avoid a
further call to setParents in some cases
|
|
|
|
|
| |
- added SCALACLASSTYPE_EMPTYARRAY (for run time types)
|
| |
|
|
|
|
|
| |
- Fixed lookup of symbols (bug 396)
|
|
|
|
|
|
| |
- Added some tests to avoid the inlining of methods already inherited
through the super class.
|
|
|
|
|
|
|
| |
- Added the following methods: getMainOwner, getMainClassOrNone,
getEnclosingPackageClassOrNone, getSourceDirectoryOrNull,
getSourceFileOrNull, getUnitOrNull
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
- Changed AbstractFileReader to store the abstract file instead of its
path.
|
| |
|
|
|
|
|
|
| |
- Split the Reporter class into a Reporter interface and an
AbstractReporter and a ConsoleReporter class.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
- Added a dummy "codegen" phase to enable/disable code generation.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
- bug fix: computation of the display fixed for classes which inherit
directly from Java classes, - bug fix: return type of instantiation
methods is now correct (ScalaClassType only for static methods, Type
otherwise), - bug fix: fixed the work-around for the analyzer bug, which
was adding some instantiation methods twice in some cases.
|
|
|
|
|
|
| |
- bug fix: use correct parent index for classes inheriting directly from
Java classes
|
|
|
|
|
|
| |
- handle a few more "special" types (All, AllRef, etc.), various bug
- fixes
|
|
|
|
|
|
|
| |
- bug fix: nested private classes are no longer renamed and made public,
- introduced a few hacks to work around problems caused by our use of
setOwner (to be removed during next redesign)
|
|
|
|
|
| |
- added a few methods and fields related to run time types
|
| |
|