Skip to content

Commit

Permalink
merge MPS3.3 into master
Browse files Browse the repository at this point in the history
  • Loading branch information
mburyakov committed Feb 6, 2016
2 parents 3f1c721 + ca281ec commit 03d5b2c
Show file tree
Hide file tree
Showing 41 changed files with 5,056 additions and 41,467 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Expand Up @@ -565,12 +565,16 @@
<classNode extendsClassName="jetbrains.mps.baseLanguage.util.plugin.refactorings.AbstractIntroduceFieldRefactoring" />
</dependency>
<dependency className="jetbrains.mps.baseLanguage.util.plugin.refactorings.IntroduceLocalVariableRefactoring" file="IntroduceLocalVariableRefactoring.java">
<classNode dependClassName="java.lang.Integer" />
<classNode dependClassName="java.lang.Math" />
<classNode dependClassName="java.lang.Object" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="jetbrains.mps.core.aspects.behaviour.SMethodTrimmedId" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.IWhereFilter" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.ListSequence" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.Sequence" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SLinkOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations" />
<classNode dependClassName="jetbrains.mps.lang.smodel.generator.smodelAdapter.SPropertyOperations" />
Expand Down
@@ -1,3 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<dependencies version="2" modelHash="-7qljrjh532ag1lp8zje76o1hput6rxx" />
<dependencies version="2" modelHash="-70a2lhemz3nb8h1nx6exxjakzht3xmo" />

Expand Up @@ -8,9 +8,11 @@
import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory;
import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.IWhereFilter;
import jetbrains.mps.smodel.behaviour.BHReflection;
import jetbrains.mps.core.aspects.behaviour.SMethodTrimmedId;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.Sequence;
import org.jetbrains.mps.openapi.persistence.PersistenceFacade;
import jetbrains.mps.smodel.SModelUtil_new;
import org.jetbrains.mps.openapi.model.SNodeAccessUtil;
Expand Down Expand Up @@ -42,12 +44,25 @@ public SNode doRefactoring() {
return varDeclaration;
}
@Override
protected SNode getRootToFindDuplicates(SNode node) {
SNode result = SNodeOperations.getNodeAncestor(node, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, "jetbrains.mps.baseLanguage.structure.StatementList"), false, false);
while ((SNodeOperations.getNodeAncestor(result, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, "jetbrains.mps.baseLanguage.structure.StatementList"), false, false) != null)) {
result = SNodeOperations.getNodeAncestor(result, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, "jetbrains.mps.baseLanguage.structure.StatementList"), false, false);
public SNode getRootToFindDuplicates(final SNode node) {
List<SNode> ancestors = SNodeOperations.getNodeAncestors(node, null, false);
SNode statementListContainer = SNodeOperations.getNodeAncestor(node, MetaAdapterFactory.getInterfaceConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11750ef8265L, "jetbrains.mps.baseLanguage.structure.IStatementListContainer"), false, false);
SNode metaContainer = ListSequence.fromList(ancestors).findFirst(new IWhereFilter<SNode>() {
public boolean accept(SNode it) {
return ((int) (Integer) BHReflection.invoke(it, SMethodTrimmedId.create("getMetaLevel", null, "3t0v3yFOD1A"))) != ((int) (Integer) BHReflection.invoke(node, SMethodTrimmedId.create("getMetaLevel", null, "3t0v3yFOD1A")));
}
});
int statementListContainerIndex = ListSequence.fromList(ancestors).indexOf(statementListContainer);
int metaContainerIndex = ListSequence.fromList(ancestors).indexOf(metaContainer);
if (statementListContainerIndex >= 0 && metaContainerIndex >= 0) {
ancestors = ListSequence.fromList(ancestors).take(Math.min(statementListContainerIndex, metaContainerIndex)).toListSequence();
} else if (statementListContainerIndex < 0 && metaContainerIndex >= 0) {
ancestors = ListSequence.fromList(ancestors).take(metaContainerIndex).toListSequence();
} else if (statementListContainerIndex >= 0 && metaContainerIndex < 0) {
ancestors = ListSequence.fromList(ancestors).take(statementListContainerIndex).toListSequence();
}
return result;

return Sequence.fromIterable(SNodeOperations.ofConcept(ancestors, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b200L, "jetbrains.mps.baseLanguage.structure.StatementList"))).last();
}
@Override
public void replaceNode(SNode node, SNode declaration) {
Expand Down

0 comments on commit 03d5b2c

Please sign in to comment.