package org.erlide.scoping; import com.google.inject.Inject; import com.google.inject.Provider; import java.util.List; import org.eclipse.emf.ecore.EObject; import org.eclipse.xtend2.lib.StringConcatenation; import org.eclipse.xtext.junit4.AbstractXtextTests; import org.eclipse.xtext.junit4.InjectWith; import org.eclipse.xtext.junit4.XtextRunner; import org.eclipse.xtext.resource.XtextResourceSet; import org.eclipse.xtext.xbase.lib.Extension; import org.eclipse.xtext.xbase.lib.Pair; import org.erlide.ErlangInjectorProvider; import org.erlide.erlang.Atom; import org.erlide.erlang.AtomRefTarget; import org.erlide.erlang.ErlangTestExtensions; import org.erlide.erlang.ModelExtensions; import org.erlide.erlang.Module; import org.erlide.erlang.util.ErlangTestingHelper; import org.erlide.scoping.ErlangLinkingHelper; import org.hamcrest.Matcher; import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; @RunWith(XtextRunner.class) @InjectWith(ErlangInjectorProvider.class) @SuppressWarnings("all") public class ErlangLinkingTest extends AbstractXtextTests { @Inject private ErlangTestingHelper parser; @Inject @Extension private ModelExtensions _modelExtensions; @Inject @Extension private ErlangLinkingHelper _erlangLinkingHelper; @Inject @Extension private ErlangTestExtensions _erlangTestExtensions; @Inject private Provider<XtextResourceSet> resourceSetProvider; @Test public void resolve_noLink() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("[�ok, 0]."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_localCall() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_localCall_spec() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_remoteCall() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_remoteCall_2() { final XtextResourceSet rset = this.resourceSetProvider.get(); StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("w:�g(3),"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString(), "m.erl", rset); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("-module(w)."); _builder_1.newLine(); _builder_1.append("-export([g/1])."); _builder_1.newLine(); _builder_1.append("�g(X) -> ok."); _builder_1.newLine(); final Pair<Module, List<Integer>> module2 = this.parser.parse(_builder_1.toString(), "w.erl", rset); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); final EObject tgt = this._erlangTestExtensions.getObjectAtMarker(module2); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<? super EObject> _is = Matchers.<EObject>is(tgt); Assert.<EObject>assertThat(_atomReference, _is); } @Test public void resolve_remoteCall_bad_1() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("m:�g(3),"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); _builder.append("g(X) -> ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_remoteCall_moduleMacro() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_remoteCall_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("W:�g(3),"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_remoteCall_moduleMacro_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("?MODULE:�g(3),"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); _builder.append("�g(X) -> X."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_moduleCall() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_moduleCall_1() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_moduleRef() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("fun �w:g/3,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_functionRef_local() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_functionRef_remote() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_functionRef_remote_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("fun m:�g/2,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); _builder.append("�g(X,Y) -> ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_functionRef_remote_2() { final XtextResourceSet rset = this.resourceSetProvider.get(); StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("fun w:�g/2,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString(), "m.erl", rset); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("-module(w)."); _builder_1.newLine(); _builder_1.append("-export([g/2])."); _builder_1.newLine(); _builder_1.append("�g(X,Y) -> ok."); _builder_1.newLine(); final Pair<Module, List<Integer>> module2 = this.parser.parse(_builder_1.toString(), "w.erl", rset); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); final EObject tgt = this._erlangTestExtensions.getObjectAtMarker(module2); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<? super EObject> _is = Matchers.<EObject>is(tgt); Assert.<EObject>assertThat(_atomReference, _is); } @Test public void resolve_functionRef_remote_2_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("fun w:�g/2,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); StringConcatenation _builder_1 = new StringConcatenation(); _builder_1.append("-module(m)."); _builder_1.newLine(); _builder_1.append("�g(X,Y) -> ok."); _builder_1.newLine(); final Pair<Module, List<Integer>> module2 = this.parser.parse(_builder_1.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_functionRef_moduleMacro() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_functionRef_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("fun W:�g/2,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_record() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_record_bad() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_record_1() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_recordField() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_recordField_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("#Myrec.�ff,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_recordField_bad_1() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("-record(myrec, {gg})."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("#myrec.�ff,"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_recordField_1() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_recordField_1_bad() { StringConcatenation _builder = new StringConcatenation(); _builder.append("-module(m)."); _builder.newLine(); _builder.append("-record(myrec, {gg})."); _builder.newLine(); _builder.append("f() ->"); _builder.newLine(); _builder.append("\t"); _builder.append("#Myrec{�ff=2},"); _builder.newLine(); _builder.append("\t"); _builder.append("ok."); _builder.newLine(); final Pair<Module, List<Integer>> module = this.parser.parse(_builder.toString()); EObject _objectAtMarker = this._erlangTestExtensions.getObjectAtMarker(module); final Atom atom = ((Atom) _objectAtMarker); AtomRefTarget _atomReference = this._erlangLinkingHelper.getAtomReference(atom); Matcher<AtomRefTarget> _nullValue = Matchers.<AtomRefTarget>nullValue(); Matcher<AtomRefTarget> _is = Matchers.<AtomRefTarget>is(_nullValue); Assert.<AtomRefTarget>assertThat(_atomReference, _is); } @Test public void resolve_macro() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_macro_atom() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_macro_1() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } @Test public void resolve_macro_1_atom() { throw new Error("Unresolved compilation problems:" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>" + "\nType mismatch: cannot convert from Pair<Module, List<Integer>> to Pair<Module, List<Integer>>"); } }