本文整理汇总了Java中com.google.javascript.jscomp.TypedVar.getName方法的典型用法代码示例。如果您正苦于以下问题:Java TypedVar.getName方法的具体用法?Java TypedVar.getName怎么用?Java TypedVar.getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类com.google.javascript.jscomp.TypedVar
的用法示例。
在下文中一共展示了TypedVar.getName方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: processUnprovidedTypes
import com.google.javascript.jscomp.TypedVar; //导入方法依赖的package包/类
/**
* Closure does not require all types to be explicitly provided, if they are only used in type
* positions. However, our emit phases only emits goog.provided symbols and namespaces, so this
* extra pass is required, in order to have valid output.
*/
private void processUnprovidedTypes(Set<String> provides, Set<String> transitiveProvides) {
/**
* A new set of types can be discovered while visiting unprovided types. To prevent an infinite
* loop in a pathological case, limit to a number of passes.
*
* <p>TODO(rado): investigate https://github.com/angular/clutz/pull/246 and removing this pass
* altogether.
*/
int maxTypeUsedDepth = 5;
Set<String> typesEmitted = new LinkedHashSet<>();
while (maxTypeUsedDepth > 0) {
int typesUsedCount = typesUsed.size();
// AFAICT, there is no api for going from type to symbol, so iterate all symbols first.
for (TypedVar symbol : compiler.getTopScope().getAllSymbols()) {
String name = symbol.getName();
String namespace = getNamespace(name);
// skip unused symbols, symbols already emitted or symbols whose namespace is emitted
// (unless the symbols have their own provide).
if (!typesUsed.contains(name)
|| typesEmitted.contains(name)
|| (!transitiveProvides.contains(name) && typesEmitted.contains(namespace))) {
continue;
}
// skip provided symbols (as default or in an namespace).
if (provides.contains(name)
|| (!transitiveProvides.contains(name) && provides.contains(namespace))) {
continue;
}
// skip extern symbols (they have a separate pass).
CompilerInput symbolInput = this.compiler.getInput(new InputId(symbol.getInputName()));
if (symbolInput != null && symbolInput.isExtern()) continue;
if (shouldSkipVar(symbol)) {
continue;
}
// Symbols in partial_goog_base.js are just stand ins for the real symbols, so don't emit
if (symbol.getInputName().endsWith("partial_goog_base.js")) {
continue;
}
declareNamespace(
namespace,
symbol,
name,
/* isDefault */ true,
Collections.<String>emptySet(),
/* isExtern */ false);
typesEmitted.add(name);
}
// if no new types seen, safely break out.
if (typesUsed.size() == typesUsedCount) break;
maxTypeUsedDepth--;
}
}