JS backend: minor refactoring in AliasingContext.
This commit is contained in:
@@ -27,25 +27,8 @@ import java.util.Collections;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public class AliasingContext {
|
public class AliasingContext {
|
||||||
private static final AliasingContext ROOT = new AliasingContext(null) {
|
|
||||||
@Override
|
|
||||||
protected JsExpression getAliasForDescriptor(@NotNull DeclarationDescriptor descriptor, boolean fromChild) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public JsExpression getAliasForExpression(@NotNull JetExpression element) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void registerAlias(@NotNull DeclarationDescriptor descriptor, @NotNull JsExpression alias) {
|
|
||||||
throw new IllegalStateException();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
public static AliasingContext getCleanContext() {
|
public static AliasingContext getCleanContext() {
|
||||||
return new AliasingContext(ROOT);
|
return new AliasingContext(null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@@ -57,10 +40,6 @@ public class AliasingContext {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private final AliasingContext parent;
|
private final AliasingContext parent;
|
||||||
|
|
||||||
/*package*/ AliasingContext(@Nullable AliasingContext parent) {
|
|
||||||
this(parent, null, null);
|
|
||||||
}
|
|
||||||
|
|
||||||
private AliasingContext(
|
private AliasingContext(
|
||||||
@Nullable AliasingContext parent,
|
@Nullable AliasingContext parent,
|
||||||
@Nullable Map<DeclarationDescriptor, JsExpression> aliasesForDescriptors,
|
@Nullable Map<DeclarationDescriptor, JsExpression> aliasesForDescriptors,
|
||||||
@@ -72,22 +51,13 @@ public class AliasingContext {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public AliasingContext inner(@NotNull DeclarationDescriptor descriptor, @NotNull JsExpression alias) {
|
public AliasingContext inner() {
|
||||||
return new AliasingContext(this, Collections.singletonMap(descriptor, alias), null);
|
return new AliasingContext(this, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public AliasingContext notShareableThisAliased(@NotNull final DeclarationDescriptor thisDescriptor, @NotNull final JsExpression alias) {
|
public AliasingContext inner(@NotNull DeclarationDescriptor descriptor, @NotNull JsExpression alias) {
|
||||||
return new AliasingContext(this) {
|
return new AliasingContext(this, Collections.singletonMap(descriptor, alias), null);
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
protected JsExpression getAliasForDescriptor(@NotNull DeclarationDescriptor descriptor, boolean fromChild) {
|
|
||||||
if (!fromChild && thisDescriptor == descriptor) {
|
|
||||||
return alias;
|
|
||||||
}
|
|
||||||
return super.getAliasForDescriptor(descriptor, fromChild);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@@ -102,7 +72,7 @@ public class AliasingContext {
|
|||||||
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public JsExpression getAliasForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
final public JsExpression getAliasForDescriptor(@NotNull DeclarationDescriptor descriptor) {
|
||||||
// these aliases cannot be shared and applicable only in current context
|
// these aliases cannot be shared and applicable only in current context
|
||||||
return getAliasForDescriptor(descriptor, false);
|
return getAliasForDescriptor(descriptor, false);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user