google / google/closure-compiler
INTERNAL COMPILER ERROR on union of array and rest params
- Dominant language
- JavaScript
- Stars
- 7.7k
- Forks
- 1.2k
- Avg merge
- 2d 12h
- Merged PRs (30d)
- 6
Description
```js
/**
* @param {...number|!Array} a
*/
function foo(a) {}
foo(1, 2, 3);
foo([1, 2, 3]);
```
```
java.lang.RuntimeException: INTERNAL COMPILER ERROR.
Unexpected variable foo
Node(NAME foo): input0:6:0
foo(1, 2, 3);
Parent(CALL): input0:6:0
foo(1, 2, 3);
at com.google.javascript.jscomp.VarCheck.visit(VarCheck.java:210)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:645)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:717)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:641)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:717)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:641)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:717)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:641)
at com.google.javascript.jscomp.NodeTraversal.traverseChildren(NodeTraversal.java:717)
at com.google.javascript.jscomp.NodeTraversal.traverseBranch(NodeTraversal.java:641)
at com.google.javascript.jscomp.NodeTraversal.traverseRoots(NodeTraversal.java:339)
at com.google.javascript.jscomp.VarCheck.process(VarCheck.java:148)
at com.google.javascript.jscomp.PhaseOptimizer$NamedPass.process(PhaseOptimizer.java:296)
at com.google.javascript.jscomp.PhaseOptimizer.process(PhaseOptimizer.java:228)
at com.google.javascript.jscomp.Compiler.optimize(Compiler.java:2189)
at com.google.javascript.jscomp.Compiler.compileInternal(Compiler.java:788)
at com.google.javascript.jscomp.Compiler.access$000(Compiler.java:86)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:729)
at com.google.javascript.jscomp.Compiler$2.call(Compiler.java:726)
at com.google.javascript.jscomp.CompilerExecutor.runInCompilerThread(CompilerExecutor.java:118)
at com.google.javascript.jscomp.Compiler.runInCompilerThread(Compiler.java:756)
at com.google.javascript.jscomp.Compiler.compile(Compiler.java:726)
```
https://closure-compiler-debugger.appspot.com/#input0%3D%252F**%250A%2520*%2520%2540param%2520%257B...number%257C!Array%253Cnumber%253E%257D%2520a%250A%2520*%252F%250Afunction%2520foo(a)%2520%257B%257D%250A%250Afoo(1%252C%25202%252C%25203)%253B%250Afoo(%255B1%252C%25202%252C%25203%255D)%253B%250A%250A%26input1%26conformanceConfig%26externs%26refasterjs-template%26includeDefaultExterns%3D1%26CHECK_SYMBOLS%3D1%26CHECK_TYPES%3D1%26CLOSURE_PASS%3D1%26COLLAPSE_PROPERTIES%3D1%26COMPUTE_FUNCTION_SIDE_EFFECTS%3D1%26DEVIRTUALIZE_PROTOTYPE_METHODS%3D1%26GENERATE_EXPORTS%3D1%26INLINE_VARIABLES%3D1%26MISSING_PROPERTIES%3D1%26PRESERVE_TYPE_ANNOTATIONS%3D1%26PRETTY_PRINT%3D1%26PROPERTY_RENAMING%3D1%26REMOVE_UNUSED_PROTOTYPE_PROPERTIES%3D1%26REMOVE_UNUSED_PROTOTYPE_PROPERTIES_IN_EXTERNS%3D1%26SMART_NAME_REMOVAL%3D1%26TRANSPILE%3D1%26VARIABLE_RENAMING%3D1
Contributor guide
Assessment
This issue has not been assessed yet.