Kaynağa Gözat

Merge pull request #3706 from ghalliday/issue8293

HPCC-8293 Generate a better error message selecting an unknown member

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 12 yıl önce
ebeveyn
işleme
7f69a3ed1c
1 değiştirilmiş dosya ile 8 ekleme ve 1 silme
  1. 8 1
      ecl/hql/hqlgram2.cpp

+ 8 - 1
ecl/hql/hqlgram2.cpp

@@ -3139,7 +3139,14 @@ IHqlExpression *HqlGram::lookupSymbol(_ATOM searchName, const attribute& errpos)
         if (modScope)
         {
             OwnedHqlExpr resolved = modScope->lookupSymbol(searchName, LSFrequired|LSFsharedOK, lookupCtx);
-            if (resolved && (modScope != containerScope) && !isExported(resolved))
+            if (!resolved)
+            {
+                if (modScope->queryName())
+                    reportError(ERR_OBJ_NOSUCHFIELD, errpos, "Object '%s' does not have a member named '%s'", modScope->queryName()->str(), searchName->str());
+                else
+                    reportError(ERR_OBJ_NOSUCHFIELD, errpos, "Object does not have a member named '%s'", searchName->str());
+            }
+            else if ((modScope != containerScope) && !isExported(resolved))
                 reportError(HQLERR_CannotAccessShared, errpos, "Cannot access SHARED symbol '%s' in another module", searchName->str());
             return resolved.getClear();
         }