diff --git a/src/javarepl/expressions/Patterns.java b/src/javarepl/expressions/Patterns.java index 4766d99..0e7f7ef 100644 --- a/src/javarepl/expressions/Patterns.java +++ b/src/javarepl/expressions/Patterns.java @@ -23,7 +23,7 @@ public class Patterns { public static final Regex typeExtensibilityModifiersPattern = oneOf("final +", "abstract +"); public static final Regex typePrefixPattern = oneOf(regexPermutations(typeExtensibilityModifiersPattern, staticModifierPattern, visibilityModifiersPattern), " *"); public static final Regex typeKindPattern = oneOf("class +", "interface +", "enum +"); - public static final Regex typePattern = join(oneOf(packagePattern, ""), ".*", typePrefixPattern, typeKindPattern, identifierPattern, ".*\\{.*"); + public static final Regex typePattern = join(oneOf(packagePattern, ""), ".*?", typePrefixPattern, typeKindPattern, identifierPattern, ".*\\{.*"); public static final Regex methodExtensibilityModifiersPattern = oneOf("final +"); public static final Regex methodPrefixPattern = oneOf(regexPermutations(methodExtensibilityModifiersPattern, staticModifierPattern, visibilityModifiersPattern), " *"); diff --git a/test/javarepl/expressions/PatternsTest.java b/test/javarepl/expressions/PatternsTest.java index 36a0553..cf20c4c 100644 --- a/test/javarepl/expressions/PatternsTest.java +++ b/test/javarepl/expressions/PatternsTest.java @@ -83,6 +83,9 @@ public void shouldMatchClass() { MatchResult result = typePattern.match("package some.pack; public static final class SomeClass extends BaseClass{"); assertThat(result.group(1), is("some.pack")); assertThat(result.group(2), is("SomeClass")); + + result = typePattern.match("public class SomeClass {\n// comment with class word {\n}"); + assertThat(result.group(2), is("SomeClass")); } @Test