浏览代码

Merge pull request #12373 from ghalliday/issue21806

HPCC-21806 Ensure all global modules can be accessed with legacy import

Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 年之前
父节点
当前提交
9eb01dc3c9
共有 1 个文件被更改,包括 8 次插入4 次删除
  1. 8 4
      ecl/hql/hqlrepository.cpp

+ 8 - 4
ecl/hql/hqlrepository.cpp

@@ -65,7 +65,9 @@ void getImplicitScopes(HqlScopeArray& implicitScopes, IEclRepository * repositor
     {
         IHqlScope & scope = rootScopes.item(i);
         if (scope.isImplicit())
+        {
             implicitScopes.append(OLINK(scope));
+        }
     }
 }
 
@@ -75,11 +77,13 @@ extern HQL_API void importRootModulesToScope(IHqlScope * scope, HqlLookupContext
     IEclRepository * eclRepository = ctx.queryRepository();
     if (eclRepository)
     {
-        HqlScopeArray rootScopes;
-        getRootScopes(rootScopes, eclRepository, ctx);
-        ForEachItemIn(i, rootScopes)
+        HqlExprArray rootSymbols;
+        eclRepository->queryRootScope()->getSymbols(rootSymbols);
+        rootSymbols.sort(compareSymbolsByName);
+
+        ForEachItemIn(i, rootSymbols)
         {
-            IHqlScope & cur = rootScopes.item(i);
+            IHqlExpression & cur = rootSymbols.item(i);
             IIdAtom * curName = cur.queryId();
             OwnedHqlExpr resolved = eclRepository->queryRootScope()->lookupSymbol(curName, LSFpublic, ctx);
             if (resolved)