Program: 19266
Project: 19266
Buggy source:
private void visitNamespacePropertyDeclaration(Node declNode,Node recv,String pname){
  checkArgument(declNode.isGetProp() || NodeUtil.isObjLitProperty(declNode),declNode);
  checkArgument(currentScope.isNamespace(recv));
  if (declNode.isGetterDef()) {
    pname=getCommonTypes().createGetterPropName(pname);
  }
 else   if (declNode.isSetterDef()) {
    pname=getCommonTypes().createSetterPropName(pname);
  }
  if (declNode.isStringKey() && currentScope.isNamespace(declNode.getFirstChild())) {
    return;
  }
  EnumType et=currentScope.getEnum(QualifiedName.fromNode(recv));
  if (et != null && et.enumLiteralHasKey(pname)) {
    return;
  }
  Namespace ns=currentScope.getNamespace(QualifiedName.fromNode(recv));
  JSDocInfo jsdoc=NodeUtil.getBestJSDocInfo(declNode);
  PropertyType pt=getPropTypeHelper(jsdoc,declNode,null);
  JSType propDeclType=pt.declType;
  JSType propInferredFunType=pt.inferredFunType;
  boolean isConst=isConst(declNode);
  if (propDeclType != null || isConst) {
    JSType previousPropType=ns.getPropDeclaredType(pname);
    if (ns.hasSubnamespace(new QualifiedName(pname)) || (ns.hasStaticProp(pname) && previousPropType != null && !suppressDupPropWarning(jsdoc,propDeclType,previousPropType))) {
      warnings.add(JSError.make(declNode,REDECLARED_PROPERTY,pname,"String_Node_Str" + ns));
      declNode.getParent().putBooleanProp(Node.ANALYZED_DURING_GTI,true);
      return;
    }
    if (propDeclType == null) {
      propDeclType=mayInferFromRhsIfConst(declNode);
    }
    ns.addProperty(pname,declNode,propDeclType,isConst);
    declNode.putBooleanProp(Node.ANALYZED_DURING_GTI,true);
    if (declNode.isGetProp() && isConst) {
      declNode.putBooleanProp(Node.CONSTANT_PROPERTY_DEF,true);
    }
  }
 else   if (propInferredFunType != null) {
    ns.addUndeclaredProperty(pname,declNode,propInferredFunType,false);
  }
 else {
    Node initializer=NodeUtil.getRValueOfLValue(declNode);
    JSType t=initializer == null ? null : simpleInferExprType(initializer);
    if (t == null) {
      t=getCommonTypes().UNKNOWN;
    }
    ns.addUndeclaredProperty(pname,declNode,t,false);
  }
}

Fixed version (ground truth):
private void visitNamespacePropertyDeclaration(Node declNode,Node recv,String pname){
  checkArgument(declNode.isGetProp() || NodeUtil.isObjLitProperty(declNode),declNode);
  checkArgument(currentScope.isNamespace(recv));
  if (declNode.isGetterDef()) {
    pname=getCommonTypes().createGetterPropName(pname);
  }
 else   if (declNode.isSetterDef()) {
    pname=getCommonTypes().createSetterPropName(pname);
  }
  if (declNode.isStringKey() && currentScope.isNamespace(declNode.getFirstChild())) {
    return;
  }
  EnumType et=currentScope.getEnum(QualifiedName.fromNode(recv));
  if (et != null && et.enumLiteralHasKey(pname)) {
    return;
  }
  Namespace ns=currentScope.getNamespace(QualifiedName.fromNode(recv));
  JSDocInfo jsdoc=NodeUtil.getBestJSDocInfo(declNode);
  PropertyType pt=getPropTypeHelper(jsdoc,declNode,null);
  JSType propDeclType=pt.declType;
  JSType propInferredFunType=pt.inferredFunType;
  boolean isConst=isConst(declNode);
  if (propDeclType != null || isConst) {
    JSType previousPropType=ns.getPropDeclaredType(pname);
    declNode.putBooleanProp(Node.ANALYZED_DURING_GTI,true);
    if (ns.hasSubnamespace(new QualifiedName(pname)) || (ns.hasStaticProp(pname) && previousPropType != null && !suppressDupPropWarning(jsdoc,propDeclType,previousPropType))) {
      warnings.add(JSError.make(declNode,REDECLARED_PROPERTY,pname,"String_Node_Str" + ns));
      declNode.getParent().putBooleanProp(Node.ANALYZED_DURING_GTI,true);
      return;
    }
    if (propDeclType == null) {
      propDeclType=mayInferFromRhsIfConst(declNode);
    }
    ns.addProperty(pname,declNode,propDeclType,isConst);
    if (declNode.isGetProp() && isConst) {
      declNode.putBooleanProp(Node.CONSTANT_PROPERTY_DEF,true);
    }
  }
 else   if (propInferredFunType != null) {
    ns.addUndeclaredProperty(pname,declNode,propInferredFunType,false);
  }
 else {
    Node initializer=NodeUtil.getRValueOfLValue(declNode);
    JSType t=initializer == null ? null : simpleInferExprType(initializer);
    if (t == null) {
      t=getCommonTypes().UNKNOWN;
    }
    ns.addUndeclaredProperty(pname,declNode,t,false);
  }
}