    /** Sets an inferred return type. */
    public FunctionBuilder withInferredReturnType(JSType returnType) {
 diff --git a/src/com/google/javascript/rhino/jstype/FunctionType.java b/src/com/google/javascript/rhino/jstype/FunctionType.java
-index 6a4d2f46..f36d49cc 100644
+index 6a4d2f46..0cae0e3a 100644
 --- a/src/com/google/javascript/rhino/jstype/FunctionType.java
 +++ b/src/com/google/javascript/rhino/jstype/FunctionType.java
-@@ -488,9 +488,13 @@ public class FunctionType extends PrototypeObjectType {
-           JSType newReturnType = leastSuper ?
-               call.returnType.getLeastSupertype(other.call.returnType) :
-               call.returnType.getGreatestSubtype(other.call.returnType);
--          return cloneWithNewReturnType(
--              newReturnType,
--              call.returnTypeInferred || other.call.returnTypeInferred);
-+          return new FunctionType(
-+              registry, null, null,
-+              new ArrowType(
-+                  registry, call.parameters, newReturnType,
-+                  call.returnTypeInferred ||
-+                  other.call.returnTypeInferred),
-+              typeOfThis, null, false, false);
-         }
-       }
+@@ -514,7 +514,7 @@ public class FunctionType extends PrototypeObjectType {
  
-@@ -512,13 +516,6 @@ public class FunctionType extends PrototypeObjectType {
-         super.getGreatestSubtype(that);
-   }
- 
--  FunctionType cloneWithNewReturnType(JSType newReturnType, boolean inferred) {
--    return new FunctionType(
+   FunctionType cloneWithNewReturnType(JSType newReturnType, boolean inferred) {
+     return new FunctionType(
 -        registry, null, source,
--        new ArrowType(
--            registry, call.parameters, newReturnType, inferred),
--        typeOfThis, null, false, false);
--  }
- 
-   /**
-    * Given a constructor or an interface type, get its superclass constructor
++        registry, null, null,
+         new ArrowType(
+             registry, call.parameters, newReturnType, inferred),
+         typeOfThis, null, false, false);

diff --git a/src/com/google/javascript/jscomp/FunctionTypeBuilder.java b/src/com/google/javascript/jscomp/FunctionTypeBuilder.java
index 01fa8bad..b19e8a6e 100644
--- a/src/com/google/javascript/jscomp/FunctionTypeBuilder.java
+++ b/src/com/google/javascript/jscomp/FunctionTypeBuilder.java
@@ -71,7 +71,6 @@ final class FunctionTypeBuilder {

 
   /**
    * Infer the role of the function (whether it's a constructor or interface)
@@ -524,7 +493,7 @@ final class FunctionTypeBuilder {
           .withName(fnName)
           .withSourceNode(sourceNode)
           .withParamsNode(parametersNode)
