diff --git a/src/com/google/javascript/jscomp/deps/JsFileParser.java b/src/com/google/javascript/jscomp/deps/JsFileParser.java index 654747ee47f..d53a7f1182c 100644 --- a/src/com/google/javascript/jscomp/deps/JsFileParser.java +++ b/src/com/google/javascript/jscomp/deps/JsFileParser.java @@ -199,9 +199,8 @@ private DependencyInfo parseReader(String filePath, private void setModuleType(ModuleType type) { if (moduleType != type && moduleType != ModuleType.NON_MODULE) { - // TODO(sdh): should this be an error? errorManager.report( - CheckLevel.WARNING, JSError.make(ModuleLoader.MODULE_CONFLICT, file.toString())); + CheckLevel.ERROR, JSError.make(ModuleLoader.MODULE_CONFLICT, file.toString())); } moduleType = type; } diff --git a/src/com/google/javascript/jscomp/deps/ModuleLoader.java b/src/com/google/javascript/jscomp/deps/ModuleLoader.java index 37be3bbda39..0be407b1f07 100644 --- a/src/com/google/javascript/jscomp/deps/ModuleLoader.java +++ b/src/com/google/javascript/jscomp/deps/ModuleLoader.java @@ -39,7 +39,7 @@ */ public final class ModuleLoader { - public static final DiagnosticType MODULE_CONFLICT = DiagnosticType.warning( + public static final DiagnosticType MODULE_CONFLICT = DiagnosticType.error( "JSC_MODULE_CONFLICT", "File has both goog.module and ES6 modules: {0}"); /** According to the spec, the forward slash should be the delimiter on all platforms. */ diff --git a/test/com/google/javascript/jscomp/LazyParsedDependencyInfoTest.java b/test/com/google/javascript/jscomp/LazyParsedDependencyInfoTest.java index a585ebfcb16..e609e18987a 100644 --- a/test/com/google/javascript/jscomp/LazyParsedDependencyInfoTest.java +++ b/test/com/google/javascript/jscomp/LazyParsedDependencyInfoTest.java @@ -20,6 +20,7 @@ import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.javascript.jscomp.CompilerOptions.LanguageMode; import com.google.javascript.jscomp.deps.DependencyInfo; import com.google.javascript.jscomp.deps.ModuleLoader; import com.google.javascript.jscomp.deps.SimpleDependencyInfo; @@ -122,15 +123,17 @@ public void testParseIsLazy() { public void testModuleConflict() { Compiler compiler = new Compiler(); - compiler.initOptions(new CompilerOptions()); + CompilerOptions options = new CompilerOptions(); + options.setLanguageIn(LanguageMode.ECMASCRIPT6_STRICT); + compiler.initOptions(options); JsAst ast = new JsAst(SourceFile.fromCode("file.js", "export let foo = 42;")); SimpleDependencyInfo delegate = new SimpleDependencyInfo("", "my/js.js", EMPTY, EMPTY, ImmutableMap.of("module", "goog")); DependencyInfo info = new LazyParsedDependencyInfo(delegate, ast, compiler); - assertThat(Arrays.asList(compiler.getErrorManager().getWarnings())).isEmpty(); + assertThat(Arrays.asList(compiler.getErrorManager().getErrors())).isEmpty(); assertThat(info.getLoadFlags()).containsExactly("module", "es6", "lang", "es6"); - assertThat(Arrays.asList(compiler.getErrorManager().getWarnings())) + assertThat(Arrays.asList(compiler.getErrorManager().getErrors())) .containsExactly(JSError.make(ModuleLoader.MODULE_CONFLICT, "my/js.js")); }