diff --git a/lib/6to5/traverse/scope.js b/lib/6to5/traverse/scope.js index b8e61e7510..cdaee0f2df 100644 --- a/lib/6to5/traverse/scope.js +++ b/lib/6to5/traverse/scope.js @@ -179,13 +179,13 @@ Scope.prototype.getInfo = function () { var info = block._scopeInfo = {}; - var bindings = info.bindings = object(); + var bindings = info.bindings = object(); var references = info.references = object(); var types = info.types = object(); var declarationKinds = info.declarationKinds = { - "var": object(), - "let": object(), - "const": object() + "const": object(), + "var": object(), + "let": object() }; var add = function (node, reference) { @@ -195,8 +195,14 @@ Scope.prototype.getInfo = function () { if (!reference) { for (var key in ids) { + var id = ids[key]; + + if (id.typeAnnotation) { + types[id] = id.typeAnnotation; + } + if (declarationKinds["let"][key] || declarationKinds["const"][key]) { - throw self.file.errorWithNode(ids[key], "Duplicate declaration " + key, TypeError); + throw self.file.errorWithNode(id, "Duplicate declaration " + key, TypeError); } }