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

Commit 2ba4a31

Browse files
nbeloglazovcopybara-github
authored andcommitted
Add "Generated from" comments to 'declare module' statements in Clutz.
PiperOrigin-RevId: 278417519
1 parent 9f9919e commit 2ba4a31

168 files changed

Lines changed: 253 additions & 8 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -523,14 +523,15 @@ String produceDts(Depgraph depgraph) {
523523
if (symbol == null) {
524524
// Sometimes goog.provide statements are used as pure markers for dependency management, or
525525
// the defined provides do not get a symbol because they don't have a proper type.
526-
emitGeneratedFromFileComment(provideToFile.get(provide));
526+
SourceFile file = provideToFile.get(provide);
527+
emitGeneratedFromFileComment(file);
527528
emitNamespaceBegin(getNamespace(emitName));
528529
emit("let");
529530
emit(getUnqualifiedName(emitName));
530531
emit(": any;");
531532
emitBreak();
532533
emitNamespaceEnd();
533-
declareModule(provide, true, emitName);
534+
declareModule(provide, true, emitName, file);
534535
continue;
535536
}
536537
if (symbol.getType() == null) {
@@ -539,7 +540,7 @@ String produceDts(Depgraph depgraph) {
539540
JSType moduleType = compiler.getTypeRegistry().getGlobalType(rewritenProvide);
540541
if (moduleType != null) {
541542
declareTypedefNamespace(symbol, moduleType, provides);
542-
declareModule(provide, /* isDefault */ true, rewritenProvide);
543+
declareModule(provide, /* isDefault */ true, rewritenProvide, symbol.getSourceFile());
543544
} else {
544545
emitComment("Skipping symbol " + symbol.getName() + " due to missing type information.");
545546
}
@@ -562,7 +563,7 @@ String produceDts(Depgraph depgraph) {
562563
namespace = getNamespace(symbol.getName());
563564
}
564565
declareNamespace(namespace, symbol, emitName, isDefault, transitiveProvides, false);
565-
declareModule(provide, isDefault, emitName);
566+
declareModule(provide, isDefault, emitName, symbol.getSourceFile());
566567
}
567568
// In order to typecheck in the presence of third-party externs, emit all extern symbols.
568569
processExternSymbols();
@@ -676,7 +677,7 @@ private void processReservedSymbols(TreeSet<String> provides, TypedScope topScop
676677
emitNamespaceEnd();
677678
for (String property : properties) {
678679
// Assume that all symbols that are siblings of the reserved word are default exports.
679-
declareModule(property, true, property, true);
680+
declareModule(property, true, property, true, var != null ? var.getSourceFile() : null);
680681
}
681682
}
682683
}
@@ -1401,16 +1402,22 @@ private boolean isConstructor(@Nullable JSDocInfo docInfo) {
14011402
return docInfo != null && docInfo.isConstructor();
14021403
}
14031404

1404-
private void declareModule(String name, boolean isDefault, String emitName) {
1405-
declareModule(name, isDefault, emitName, false);
1405+
private void declareModule(
1406+
String name, boolean isDefault, String emitName, StaticSourceFile sourceFile) {
1407+
declareModule(name, isDefault, emitName, /* inParentNamespace= */ false, sourceFile);
14061408
}
14071409

14081410
private void declareModule(
1409-
String name, boolean isDefault, String emitName, boolean inParentNamespace) {
1411+
String name,
1412+
boolean isDefault,
1413+
String emitName,
1414+
boolean inParentNamespace,
1415+
StaticSourceFile sourceFile) {
14101416
if (GOOG_BASE_NAMESPACE.equals(name)) {
14111417
// goog:goog cannot be imported.
14121418
return;
14131419
}
1420+
emitGeneratedFromFileComment(sourceFile);
14141421
emitNoSpace("declare module '");
14151422
emitNoSpace("goog:" + name);
14161423
emitNoSpace("' {");

src/test/java/com/google/javascript/clutz/testdata/abstract_class.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ declare namespace ಠ_ಠ.clutz {
66
abstract myStaticAbstractMethod ( ) : string ;
77
}
88
}
9+
// Generated from src/test/java/com/google/javascript/clutz/testdata/abstract_class.js
910
declare module 'goog:foo.AbstractClass' {
1011
import AbstractClass = ಠ_ಠ.clutz.module$exports$foo$AbstractClass;
1112
export default AbstractClass;

src/test/java/com/google/javascript/clutz/testdata/abstract_method.d.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ declare namespace ಠ_ಠ.clutz.abstract_method {
55
bar (a : number ) : string ;
66
}
77
}
8+
// Generated from src/test/java/com/google/javascript/clutz/testdata/abstract_method.js
89
declare module 'goog:abstract_method.Child' {
910
import Child = ಠ_ಠ.clutz.abstract_method.Child;
1011
export default Child;
@@ -17,6 +18,7 @@ declare namespace ಠ_ಠ.clutz.abstract_method {
1718
foo ( ) : string ;
1819
}
1920
}
21+
// Generated from src/test/java/com/google/javascript/clutz/testdata/abstract_method.js
2022
declare module 'goog:abstract_method.Clazz' {
2123
import Clazz = ಠ_ಠ.clutz.abstract_method.Clazz;
2224
export default Clazz;
@@ -28,6 +30,7 @@ declare namespace ಠ_ಠ.clutz.abstract_method {
2830
foo ( ) : string ;
2931
}
3032
}
33+
// Generated from src/test/java/com/google/javascript/clutz/testdata/abstract_method.js
3134
declare module 'goog:abstract_method.Interface' {
3235
import Interface = ಠ_ಠ.clutz.abstract_method.Interface;
3336
export default Interface;

src/test/java/com/google/javascript/clutz/testdata/aliasedInterface/aliasedInterface.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
declare namespace ಠ_ಠ.clutz {
33
export import module$exports$alias_for_interface = ಠ_ಠ.clutz.module$exports$aliased_interface ;
44
}
5+
// Generated from src/test/java/com/google/javascript/clutz/testdata/aliasedInterface/alias_for_interface.js
56
declare module 'goog:alias_for_interface' {
67
import alias_for_interface = ಠ_ಠ.clutz.module$exports$alias_for_interface;
78
export default alias_for_interface;
@@ -15,6 +16,7 @@ declare namespace ಠ_ಠ.clutz {
1516
x : string ;
1617
}
1718
}
19+
// Generated from src/test/java/com/google/javascript/clutz/testdata/aliasedInterface/aliased_interface_with_static.js
1820
declare module 'goog:aliased_interface' {
1921
import aliased_interface = ಠ_ಠ.clutz.module$exports$aliased_interface;
2022
export default aliased_interface;

src/test/java/com/google/javascript/clutz/testdata/aliased_enums.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
declare namespace ಠ_ಠ.clutz.nested.bar {
33
export import HahaEnum = nested.baz.Enum ;
44
}
5+
// Generated from src/test/java/com/google/javascript/clutz/testdata/aliased_enums.js
56
declare module 'goog:nested.bar.HahaEnum' {
67
import HahaEnum = ಠ_ಠ.clutz.nested.bar.HahaEnum;
78
export default HahaEnum;
@@ -12,6 +13,7 @@ declare namespace ಠ_ಠ.clutz.nested.baz {
1213
A = 5.0 ,
1314
}
1415
}
16+
// Generated from src/test/java/com/google/javascript/clutz/testdata/aliased_enums.js
1517
declare module 'goog:nested.baz.Enum' {
1618
import Enum = ಠ_ಠ.clutz.nested.baz.Enum;
1719
export default Enum;

src/test/java/com/google/javascript/clutz/testdata/all_optional_type.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ declare namespace ಠ_ಠ.clutz.module$exports$collapsed$union {
33
function fn (arg : { opt_some ? : string } | Function | null ) : void ;
44
function fn2 (arg : { opt_some ? : string } | { other : string } ) : void ;
55
}
6+
// Generated from src/test/java/com/google/javascript/clutz/testdata/all_optional_type.js
67
declare module 'goog:collapsed.union' {
78
import union = ಠ_ಠ.clutz.module$exports$collapsed$union;
89
export = union;

src/test/java/com/google/javascript/clutz/testdata/async_await_with_platform.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ declare namespace ಠ_ಠ.clutz {
66
foo ( ) : Promise < undefined > ;
77
}
88
}
9+
// Generated from src/test/java/com/google/javascript/clutz/testdata/async_await_with_platform.js
910
declare module 'goog:asyncawait' {
1011
import asyncawait = ಠ_ಠ.clutz.module$exports$asyncawait;
1112
export default asyncawait;

src/test/java/com/google/javascript/clutz/testdata/base.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ declare namespace ಠ_ಠ.clutz.goog {
3131
private noStructuralTyping_goog_Uri : any;
3232
}
3333
}
34+
// Generated from src/test/java/com/google/javascript/clutz/testdata/base.js
3435
declare module 'goog:goog.Uri' {
3536
import Uri = ಠ_ಠ.clutz.goog.Uri;
3637
export default Uri;

src/test/java/com/google/javascript/clutz/testdata/circular_prototype.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ declare namespace ಠ_ಠ.clutz.module$exports$circular$obj {
55
let obj : { a : number , //!! Unsupported circular reference for prop name: constructor
66
z : number } ;
77
}
8+
// Generated from src/test/java/com/google/javascript/clutz/testdata/circular_prototype.js
89
declare module 'goog:circular.obj' {
910
import obj = ಠ_ಠ.clutz.module$exports$circular$obj;
1011
export = obj;

src/test/java/com/google/javascript/clutz/testdata/class_alias.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
declare namespace ಠ_ಠ.clutz.alias {
33
export import A = ಠ_ಠ.clutz.original.A ;
44
}
5+
// Generated from src/test/java/com/google/javascript/clutz/testdata/class_alias.js
56
declare module 'goog:alias.A' {
67
import A = ಠ_ಠ.clutz.alias.A;
78
export default A;
@@ -18,6 +19,7 @@ declare namespace ಠ_ಠ.clutz.original.A {
1819
private noStructuralTyping_original_A_InnerC : any;
1920
}
2021
}
22+
// Generated from src/test/java/com/google/javascript/clutz/testdata/class_alias.js
2123
declare module 'goog:original.A' {
2224
import A = ಠ_ಠ.clutz.original.A;
2325
export default A;

0 commit comments

Comments
 (0)