Эх сурвалжийг харах

Fix SpecificConstraint which only handles matching of instances of same constraint

Nils Adermann 14 жил өмнө
parent
commit
9b8ab7d710

+ 5 - 5
src/Composer/Package/LinkConstraint/SpecificConstraint.php

@@ -17,21 +17,21 @@ namespace Composer\Package\LinkConstraint;
  *
  * @author Nils Adermann <naderman@naderman.de>
  */
-class SpecificConstraint implements LinkConstraintInterface
+abstract class SpecificConstraint implements LinkConstraintInterface
 {
     public function matches(LinkConstraintInterface $provider)
     {
         if ($provider instanceof MultiConstraint) {
             // turn matching around to find a match
             return $provider->matches($this);
-        } else if ($provider instanceof get_class($this)) {
+        } else if ($provider instanceof $this) {
             return $this->matchSpecific($provider);
         }
 
         return true;
     }
 
-    abstract public function matchSpecific($provider);
-
-    abstract public function __toString();
+    // implementations must implement a method of this format:
+    // not declared abstract here because type hinting violates parameter coherence (TODO right word?)
+    // public function matchSpecific(<SpecificConstraintType> $provider);
 }