diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/normalization/GrammarFlatteningTest.xtend b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/normalization/GrammarFlatteningTest.xtend
index 5ddff3e0b..b1be48188 100644
--- a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/normalization/GrammarFlatteningTest.xtend
+++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/generator/normalization/GrammarFlatteningTest.xtend
@@ -25,9 +25,14 @@ class GrammarFlatteningTest extends AbstractXtextTests {
}
override Grammar getModel(String model) throws Exception {
+ return getModel(model, false)
+ }
+
+ def Grammar getModel(String model, boolean dropUnreachable) throws Exception {
var Grammar grammar = super.getModel(model) as Grammar
var RuleNames ruleNames = RuleNames.getRuleNames(grammar, false)
var RuleFilter filter = new RuleFilter()
+ filter.discardUnreachableRules = dropUnreachable
var Grammar result = FlattenedGrammarProvider.flatten(grammar, ruleNames, filter)
var XtextResource resource = get(XtextResource)
resource.getContents().add(result)
@@ -272,5 +277,41 @@ class GrammarFlatteningTest extends AbstractXtextTests {
terminal RULE_ANY_OTHER:
.;'''.toString, serialized)
}
+
+ @Test def void test_07() throws Exception {
+ var Grammar flattened = getModel(
+ '''
+ grammar com.foo.bar with org.eclipse.xtext.common.Terminals
+ generate myPack 'http://myURI'
+ Rule: name=ID (child=Rule)?;
+ ''', true)
+ var String serialized = getSerializer().serialize(flattened)
+ assertEquals('''
+ grammar com.foo.bar hidden(RULE_WS, RULE_ML_COMMENT, RULE_SL_COMMENT)
+
+ norm0_Rule:
+ name=RULE_ID;
+
+ terminal RULE_ID:
+ "^"? ("a".."z" | "A".."Z" | "_") ("a".."z" | "A".."Z" | "_" | "0".."9")*;
+
+ terminal RULE_INT:
+ "0".."9"+;
+
+ terminal RULE_STRING:
+ "\"" ("\\" . | !("\\" | "\""))* "\"" | "\'" ("\\" . | !("\\" | "\'"))* "\'";
+
+ terminal RULE_ML_COMMENT:
+ "/*"->"*/";
+
+ terminal RULE_SL_COMMENT:
+ "//" !("\n" | "\r")* ("\r"? "\n")?;
+
+ terminal RULE_WS:
+ " " | "\t" | "\r" | "\n"+;
+
+ terminal RULE_ANY_OTHER:
+ .;'''.toString, serialized)
+ }
}
diff --git a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentsEagerLinkingTest.xtend b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentsEagerLinkingTest.xtend
index b6b768e7a..fdd583e3f 100644
--- a/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentsEagerLinkingTest.xtend
+++ b/tests/org.eclipse.xtext.tests/src/org/eclipse/xtext/parser/fragments/FragmentsEagerLinkingTest.xtend
@@ -16,5 +16,5 @@ import org.junit.runner.RunWith
*/
@RunWith(XtextRunner)
@InjectWith(FragmentsEagerLinkingInjectorProvider)
-class FragmentEagerLinkingTest extends AbstractFragmentsTest {
+class FragmentsEagerLinkingTest extends AbstractFragmentsTest {
}
\ No newline at end of file
diff --git a/tests/org.eclipse.xtext.tests/suites/org/eclipse/xtext/parser/fragments/FragmentsSuite.java b/tests/org.eclipse.xtext.tests/suites/org/eclipse/xtext/parser/fragments/FragmentsSuite.java
index 1e1f49c9a..bb758c7a4 100644
--- a/tests/org.eclipse.xtext.tests/suites/org/eclipse/xtext/parser/fragments/FragmentsSuite.java
+++ b/tests/org.eclipse.xtext.tests/suites/org/eclipse/xtext/parser/fragments/FragmentsSuite.java
@@ -17,7 +17,7 @@ import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({
FragmentsTest.class,
- FragmentEagerLinkingTest.class,
+ FragmentsEagerLinkingTest.class,
FragmentsExTest.class,
FragmentsPlainParsingTest.class,
FragmentExsPlainParsingTest.class,