You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/12/17 07:41:21 UTC

[royale-compiler] 07/07: more diagnostics

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit 89c4826b85654988d88a719500feaa412e3643e2
Author: Alex Harui <ah...@apache.org>
AuthorDate: Sun Dec 16 23:10:19 2018 -0800

    more diagnostics
---
 .../config/CompilerDiagnosticsConstants.java       |  1 +
 .../compiler/internal/graph/GoogDepsWriter.java    | 34 ++++++++++++++++++++--
 2 files changed, 33 insertions(+), 2 deletions(-)

diff --git a/compiler-common/src/main/java/org/apache/royale/compiler/config/CompilerDiagnosticsConstants.java b/compiler-common/src/main/java/org/apache/royale/compiler/config/CompilerDiagnosticsConstants.java
index 9b6ce58..76eb483 100644
--- a/compiler-common/src/main/java/org/apache/royale/compiler/config/CompilerDiagnosticsConstants.java
+++ b/compiler-common/src/main/java/org/apache/royale/compiler/config/CompilerDiagnosticsConstants.java
@@ -40,5 +40,6 @@ public class CompilerDiagnosticsConstants
     public static final int FILE_UTILS = 4096;
     public static final int ROYALEJSPROJECT = 8192;
     public static final int COMPC_PHASES = 16384;
+    public static final int GOOG_DEPS = 32768;
 
 }
diff --git a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
index 0ce93dc..d81c594 100644
--- a/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
+++ b/compiler-jx/src/main/java/org/apache/royale/compiler/internal/graph/GoogDepsWriter.java
@@ -28,6 +28,7 @@ import java.io.PrintWriter;
 import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -37,6 +38,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.royale.compiler.clients.problems.ProblemQuery;
 import org.apache.royale.compiler.common.DependencyType;
 import org.apache.royale.compiler.common.DependencyTypeSet;
+import org.apache.royale.compiler.config.CompilerDiagnosticsConstants;
 import org.apache.royale.compiler.internal.codegen.js.goog.JSGoogEmitterTokens;
 import org.apache.royale.compiler.internal.driver.js.JSCompilationUnit;
 import org.apache.royale.compiler.internal.driver.js.goog.JSGoogConfiguration;
@@ -354,7 +356,35 @@ public class GoogDepsWriter {
 			roots.add(mainUnit);
 			requireMap.remove(mainName);
 			
+			if ((CompilerDiagnosticsConstants.diagnostics & CompilerDiagnosticsConstants.GOOG_DEPS) == CompilerDiagnosticsConstants.GOOG_DEPS)
+			{
+				Collection<ICompilationUnit> units = graph.getCompilationUnits();
+				System.out.println("Contents of graph:");
+				for (ICompilationUnit unit : units)
+				{
+					try {
+						System.out.println(unit.getQualifiedNames().toString());
+					} catch (InterruptedException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}					
+				}
+			}
 			List<ICompilationUnit> order = graph.topologicalSort(requireMap.values());
+			if ((CompilerDiagnosticsConstants.diagnostics & CompilerDiagnosticsConstants.GOOG_DEPS) == CompilerDiagnosticsConstants.GOOG_DEPS)
+			{
+				Collection<ICompilationUnit> units = graph.getCompilationUnits();
+				System.out.println("Contents of graph in order:");
+				for (ICompilationUnit unit : order)
+				{
+					try {
+						System.out.println(unit.getQualifiedNames().toString());
+					} catch (InterruptedException e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}					
+				}
+			}
 			ArrayList<GoogDep> depsInOrder = new ArrayList<GoogDep>();
 			for (ICompilationUnit unit : order)
 			{
@@ -502,9 +532,9 @@ public class GoogDepsWriter {
 
 			// first scan requires in case this is a module and some have been externed
 			int j = main.fileInfo.googProvideLine + 1;
-			while (!fileLines.get(j).contains(JSGoogEmitterTokens.GOOG_REQUIRE.getToken()))
+			while (j < fileLines.size() && !fileLines.get(j).contains(JSGoogEmitterTokens.GOOG_REQUIRE.getToken()))
 				j++;
-			while (fileLines.get(j).contains(JSGoogEmitterTokens.GOOG_REQUIRE.getToken()))
+			while (j < fileLines.size() && fileLines.get(j).contains(JSGoogEmitterTokens.GOOG_REQUIRE.getToken()))
 			{
 				String line = fileLines.get(j);
 				int c = line.indexOf(JSGoogEmitterTokens.GOOG_REQUIRE.getToken());