Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit aea8d39

Browse files
committed
Output module-local enum in legacy module.
Related to #872. Tested: unit tests
1 parent c0f3389 commit aea8d39

File tree

5 files changed

+68
-0
lines changed

5 files changed

+68
-0
lines changed

src/main/java/com/google/javascript/clutz/DeclarationGenerator.java

+1
Original file line numberDiff line numberDiff line change
@@ -1893,6 +1893,7 @@ private void visitEnumType(String symbolName, String qualifiedName, EnumType typ
18931893
emit(elementsTypeName);
18941894
emit(";");
18951895
emitBreak();
1896+
typesUsed.add(elementsTypeName);
18961897
return;
18971898
}
18981899

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Generated from src/test/java/com/google/javascript/clutz/testdata/partial/declare_legacy_namespace_enu.js
2+
declare namespace ಠ_ಠ.clutz.declare.legacy.namespace.enu {
3+
export import E = module$contents$declare$legacy$namespace$enu_E ;
4+
}
5+
declare module 'goog:declare.legacy.namespace.enu' {
6+
import enu = ಠ_ಠ.clutz.declare.legacy.namespace.enu;
7+
export = enu;
8+
}
9+
// Generated from src/test/java/com/google/javascript/clutz/testdata/partial/declare_legacy_namespace_enu.js
10+
declare namespace ಠ_ಠ.clutz {
11+
enum module$contents$declare$legacy$namespace$enu_E {
12+
A = 1.0 ,
13+
B = 2.0 ,
14+
C = 3.0 ,
15+
}
16+
}
17+
declare namespace ಠ_ಠ.clutz.module$exports$declare$legacy$namespace$enu {
18+
export import E = ಠ_ಠ.clutz.module$contents$declare$legacy$namespace$enu_E ;
19+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// This test is the same as declare_legacy_namespace_enum.js with the
2+
// difference that it doesn't use "enum" which is reserved keyword and triggers
3+
// separate flow in Clutz.
4+
5+
goog.module('declare.legacy.namespace.enu');
6+
goog.module.declareLegacyNamespace();
7+
8+
/**
9+
* @enum {number}
10+
*/
11+
const E = {
12+
A: 1,
13+
B: 2,
14+
C: 3
15+
};
16+
17+
exports.E = E;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
declare namespace ಠ_ಠ.clutz.declare.legacy {
2+
let namespace : { enum : { E : module$contents$declare$legacy$namespace$enum_E } };
3+
}
4+
declare module 'goog:declare.legacy.namespace.enum' {
5+
import enum_ = ಠ_ಠ.clutz.declare.legacy.namespace;
6+
export default enum_.enum;
7+
}
8+
// Generated from src/test/java/com/google/javascript/clutz/testdata/partial/declare_legacy_namespace_enum.js
9+
declare namespace ಠ_ಠ.clutz {
10+
enum module$contents$declare$legacy$namespace$enum_E {
11+
A = 1.0 ,
12+
B = 2.0 ,
13+
C = 3.0 ,
14+
}
15+
}
16+
declare namespace ಠ_ಠ.clutz.module$exports$declare$legacy$namespace$enum {
17+
export import E = ಠ_ಠ.clutz.module$contents$declare$legacy$namespace$enum_E ;
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
goog.module('declare.legacy.namespace.enum');
2+
goog.module.declareLegacyNamespace();
3+
4+
/**
5+
* @enum {number}
6+
*/
7+
const E = {
8+
A: 1,
9+
B: 2,
10+
C: 3
11+
};
12+
13+
exports.E = E;

0 commit comments

Comments
 (0)