From 2458b5ce591710a4e28d124f176b29c4481678ba Mon Sep 17 00:00:00 2001 From: paltherr Date: Tue, 9 Dec 2003 16:04:00 +0000 Subject: - Added class MakeBoxingExplicitPhase --- config/list/compiler.lst | 1 + .../transformer/MakeBoxingExplicitPhase.java | 50 ++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 sources/scalac/transformer/MakeBoxingExplicitPhase.java diff --git a/config/list/compiler.lst b/config/list/compiler.lst index 8bf998b33a..d2c8d54fb0 100644 --- a/config/list/compiler.lst +++ b/config/list/compiler.lst @@ -118,6 +118,7 @@ transformer/ExpandMixinsPhase.java transformer/ExplicitOuterClassesPhase.java transformer/LambdaLift.java transformer/LambdaLiftPhase.java +transformer/MakeBoxingExplicitPhase.java transformer/OwnerTransformer.java transformer/TailCall.java transformer/TailCallPhase.java diff --git a/sources/scalac/transformer/MakeBoxingExplicitPhase.java b/sources/scalac/transformer/MakeBoxingExplicitPhase.java new file mode 100644 index 0000000000..b901fad647 --- /dev/null +++ b/sources/scalac/transformer/MakeBoxingExplicitPhase.java @@ -0,0 +1,50 @@ +/* ____ ____ ____ ____ ______ *\ +** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala ** +** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL ** +** /_____/\____/\___/\____/____/ ** +\* */ + +// $Id$ + +package scalac.transformer; + +import scalac.Global; +import scalac.Phase; +import scalac.PhaseDescriptor; +import scalac.Unit; +import scalac.checkers.TreeChecker; +import scalac.symtab.Definitions; + +/** + * This phase makes boxing and unboxing of primitive values and arrays + * explicit. + */ +public class MakeBoxingExplicitPhase extends Phase { + + //######################################################################## + // Private Fields + + private final Definitions definitions; + private final TreeChecker checker; + + //######################################################################## + // Public Constructors + + /** Initializes this instance. */ + public MakeBoxingExplicitPhase(Global global, PhaseDescriptor descriptor) { + super(global, descriptor); + this.definitions = global.definitions; + this.checker = new TreeChecker(definitions); + } + + //######################################################################## + // Public Methods + + public void apply(Unit[] units) { + for (int i = 0; i < units.length; i++) { + assert checker.check(units[i]); + } + } + + //######################################################################## +} -- cgit v1.2.3