Index: pkg/kernel/testcases/input/DeltaBlue.dart |
diff --git a/pkg/kernel/testcases/input/DeltaBlue.dart b/pkg/kernel/testcases/input/DeltaBlue.dart |
index cb606f89c34f259f930d1bf1d8412997aa901bc8..1b58f52f5e18b55881b197b0d7aa89e6fe51285c 100644 |
--- a/pkg/kernel/testcases/input/DeltaBlue.dart |
+++ b/pkg/kernel/testcases/input/DeltaBlue.dart |
@@ -46,7 +46,6 @@ class DeltaBlue { |
} |
} |
- |
/** |
* Strengths are used to measure the relative importance of constraints. |
* New strengths may be inserted in the strength hierarchy without |
@@ -54,15 +53,19 @@ class DeltaBlue { |
* this class, so == can be used for value comparison. |
*/ |
class Strength { |
- |
final int value; |
final String name; |
const Strength(this.value, this.name); |
- Strength nextWeaker() => |
- const <Strength>[STRONG_PREFERRED, PREFERRED, STRONG_DEFAULT, NORMAL, |
- WEAK_DEFAULT, WEAKEST][value]; |
+ Strength nextWeaker() => const <Strength>[ |
+ STRONG_PREFERRED, |
+ PREFERRED, |
+ STRONG_DEFAULT, |
+ NORMAL, |
+ WEAK_DEFAULT, |
+ WEAKEST |
+ ][value]; |
static bool stronger(Strength s1, Strength s2) { |
return s1.value < s2.value; |
@@ -81,19 +84,16 @@ class Strength { |
} |
} |
- |
// Compile time computed constants. |
-const REQUIRED = const Strength(0, "required"); |
+const REQUIRED = const Strength(0, "required"); |
const STRONG_PREFERRED = const Strength(1, "strongPreferred"); |
-const PREFERRED = const Strength(2, "preferred"); |
-const STRONG_DEFAULT = const Strength(3, "strongDefault"); |
-const NORMAL = const Strength(4, "normal"); |
-const WEAK_DEFAULT = const Strength(5, "weakDefault"); |
-const WEAKEST = const Strength(6, "weakest"); |
- |
+const PREFERRED = const Strength(2, "preferred"); |
+const STRONG_DEFAULT = const Strength(3, "strongDefault"); |
+const NORMAL = const Strength(4, "normal"); |
+const WEAK_DEFAULT = const Strength(5, "weakDefault"); |
+const WEAKEST = const Strength(6, "weakest"); |
abstract class Constraint { |
- |
final Strength strength; |
const Constraint(this.strength); |
@@ -157,7 +157,6 @@ abstract class Constraint { |
* Abstract superclass for constraints having a single possible output variable. |
*/ |
abstract class UnaryConstraint extends Constraint { |
- |
final Variable myOutput; |
bool satisfied = false; |
@@ -173,8 +172,8 @@ abstract class UnaryConstraint extends Constraint { |
/// Decides if this constraint can be satisfied and records that decision. |
void chooseMethod(int mark) { |
- satisfied = (myOutput.mark != mark) |
- && Strength.stronger(strength, myOutput.walkStrength); |
+ satisfied = (myOutput.mark != mark) && |
+ Strength.stronger(strength, myOutput.walkStrength); |
} |
/// Returns true if this constraint is satisfied in the current solution. |
@@ -211,7 +210,6 @@ abstract class UnaryConstraint extends Constraint { |
} |
} |
- |
/** |
* Variables that should, with some level of preference, stay the same. |
* Planners may exploit the fact that instances, if satisfied, will not |
@@ -219,7 +217,6 @@ abstract class UnaryConstraint extends Constraint { |
* optimization". |
*/ |
class StayConstraint extends UnaryConstraint { |
- |
StayConstraint(Variable v, Strength str) : super(v, str); |
void execute() { |
@@ -227,13 +224,11 @@ class StayConstraint extends UnaryConstraint { |
} |
} |
- |
/** |
* A unary input constraint used to mark a variable that the client |
* wishes to change. |
*/ |
class EditConstraint extends UnaryConstraint { |
- |
EditConstraint(Variable v, Strength str) : super(v, str); |
/// Edits indicate that a variable is to be changed by imperative code. |
@@ -244,19 +239,16 @@ class EditConstraint extends UnaryConstraint { |
} |
} |
- |
// Directions. |
const int NONE = 1; |
const int FORWARD = 2; |
const int BACKWARD = 0; |
- |
/** |
* Abstract superclass for constraints having two possible output |
* variables. |
*/ |
abstract class BinaryConstraint extends Constraint { |
- |
Variable v1; |
Variable v2; |
int direction = NONE; |
@@ -272,21 +264,23 @@ abstract class BinaryConstraint extends Constraint { |
*/ |
void chooseMethod(int mark) { |
if (v1.mark == mark) { |
- direction = (v2.mark != mark && |
- Strength.stronger(strength, v2.walkStrength)) |
- ? FORWARD : NONE; |
+ direction = |
+ (v2.mark != mark && Strength.stronger(strength, v2.walkStrength)) |
+ ? FORWARD |
+ : NONE; |
} |
if (v2.mark == mark) { |
- direction = (v1.mark != mark && |
- Strength.stronger(strength, v1.walkStrength)) |
- ? BACKWARD : NONE; |
+ direction = |
+ (v1.mark != mark && Strength.stronger(strength, v1.walkStrength)) |
+ ? BACKWARD |
+ : NONE; |
} |
if (Strength.weaker(v1.walkStrength, v2.walkStrength)) { |
- direction = Strength.stronger(strength, v1.walkStrength) |
- ? BACKWARD : NONE; |
+ direction = |
+ Strength.stronger(strength, v1.walkStrength) ? BACKWARD : NONE; |
} else { |
- direction = Strength.stronger(strength, v2.walkStrength) |
- ? FORWARD : BACKWARD; |
+ direction = |
+ Strength.stronger(strength, v2.walkStrength) ? FORWARD : BACKWARD; |
} |
} |
@@ -340,7 +334,6 @@ abstract class BinaryConstraint extends Constraint { |
} |
} |
- |
/** |
* Relates two variables by the linear scaling relationship: "v2 = |
* (v1 * scale) + offset". Either v1 or v2 may be changed to maintain |
@@ -349,13 +342,12 @@ abstract class BinaryConstraint extends Constraint { |
*/ |
class ScaleConstraint extends BinaryConstraint { |
- |
final Variable scale; |
final Variable offset; |
- ScaleConstraint(Variable src, this.scale, this.offset, |
- Variable dest, Strength strength) |
- : super(src, dest, strength); |
+ ScaleConstraint( |
+ Variable src, this.scale, this.offset, Variable dest, Strength strength) |
+ : super(src, dest, strength); |
/// Adds this constraint to the constraint graph. |
void addToGraph() { |
@@ -395,17 +387,14 @@ class ScaleConstraint extends BinaryConstraint { |
out.stay = ihn.stay && scale.stay && offset.stay; |
if (out.stay) execute(); |
} |
- |
} |
- |
/** |
* Constrains two variables to have the same value. |
*/ |
class EqualityConstraint extends BinaryConstraint { |
- |
EqualityConstraint(Variable v1, Variable v2, Strength strength) |
- : super(v1, v2, strength); |
+ : super(v1, v2, strength); |
/// Enforce this constraint. Assume that it is satisfied. |
void execute() { |
@@ -413,7 +402,6 @@ class EqualityConstraint extends BinaryConstraint { |
} |
} |
- |
/** |
* A constrained variable. In addition to its value, it maintain the |
* structure of the constraint graph, the current dataflow graph, and |
@@ -421,7 +409,6 @@ class EqualityConstraint extends BinaryConstraint { |
* constraint solver. |
**/ |
class Variable { |
- |
List<Constraint> constraints = <Constraint>[]; |
Constraint determinedBy; |
int mark = 0; |
@@ -447,9 +434,7 @@ class Variable { |
} |
} |
- |
class Planner { |
- |
int currentMark = 0; |
/** |
@@ -468,7 +453,7 @@ class Planner { |
*/ |
void incrementalAdd(Constraint c) { |
int mark = newMark(); |
- for(Constraint overridden = c.satisfy(mark); |
+ for (Constraint overridden = c.satisfy(mark); |
overridden != null; |
overridden = overridden.satisfy(mark)); |
} |
@@ -615,7 +600,6 @@ class Planner { |
} |
} |
- |
/** |
* A Plan is an ordered list of constraints to be executed in sequence |
* to resatisfy all currently satisfiable constraints in the face of |
@@ -637,7 +621,6 @@ class Plan { |
} |
} |
- |
/** |
* This is the standard DeltaBlue benchmark. A long chain of equality |
* constraints is constructed with a stay constraint on one end. An |