diff --git a/src/main/jastadd/Analysis.jrag b/src/main/jastadd/Analysis.jrag
index 27f3a7d89731f351b8a21043e9b2a816cd3d3548..1825fbd8d5e8bed940685b8bf7100e4d5609b797 100644
--- a/src/main/jastadd/Analysis.jrag
+++ b/src/main/jastadd/Analysis.jrag
@@ -228,17 +228,7 @@ aspect Constructors {
   }
 
   //--- needsConstructor ---
-  syn boolean TypeDecl.needsConstructor() {
-    if (componentsTransitive().isEmpty()) {
-      return false;
-    }
-    if (!relationComponents().isEmpty()) {
-      return true;
-    }
-    return hasSuper()
-      && getSuper().decl() != null
-      && getSuper().decl().needsConstructor();
-  }
+  syn boolean TypeDecl.needsConstructor() = !componentsTransitive().isEmpty() && !relationComponentsTransitive().isEmpty();
 
   //--- inConstructor ---
   /**