Ilja Dubinin - Project Name: ANTLR grammar for Java 8 features

634 views
Skip to first unread message

Ilja Dubinin

unread,
Apr 29, 2014, 3:44:14 PM4/29/14
to checksty...@googlegroups.com
Here will be placed my weekly reports about progress of the project.

Ilja Dubinin

unread,
May 1, 2014, 9:54:37 AM5/1/14
to checksty...@googlegroups.com
Link to practice plan

вторник, 29 апреля 2014 г., 23:44:14 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
May 1, 2014, 3:31:34 PM5/1/14
to checksty...@googlegroups.com
Thursday report:
I wrote first time practice plan.
Also, I almost finished investigate of lambda in Java8 and other features.
Began write tests for java 8 features and inputs for it (soon on github).

четверг, 1 мая 2014 г., 17:54:37 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
May 1, 2014, 5:23:16 PM5/1/14
to checksty...@googlegroups.com
I need exact links to new commits to your repo, and I need links of resources that you used for investigation.

before writing report report - do "git push". I believe only in links to actual work.

Roman Ivanov

unread,
May 1, 2014, 5:23:55 PM5/1/14
to checksty...@googlegroups.com
I updated your plan, I asked in it few questions ,please resolve.

Ivan Sopov

unread,
May 2, 2014, 1:45:06 AM5/2/14
to checksty...@googlegroups.com
Why is this plan closed for everyone to access?

Ilja Dubinin

unread,
May 4, 2014, 4:18:58 AM5/4/14
to checksty...@googlegroups.com

Ilja Dubinin

unread,
May 5, 2014, 2:54:58 PM5/5/14
to checksty...@googlegroups.com

Ilja Dubinin

unread,
May 5, 2014, 4:50:04 PM5/5/14
to checksty...@googlegroups.com
Monday report:
Plan has been updated.
Basic tests and inputs have been created. (link to commit)
It enough to start, as for me.
Progress in antlr book 23%

понедельник, 5 мая 2014 г., 22:54:58 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
May 5, 2014, 6:22:22 PM5/5/14
to checksty...@googlegroups.com
> Progress in antlr book 23%

Please put a chapters numbers that your read, or smth more more concrete. 
23% is useless information, it could be 23% from the end of book or in the middle :).

Roman Ivanov

unread,
May 5, 2014, 6:37:28 PM5/5/14
to checksty...@googlegroups.com
From this day on I need report from all student till 20:00 Monday/Thursday MSK timezone. 

If you working at that time - just put in report what you have till that time, and can continue your work further and that results will be in other report.
If you think that you will not have time till 20:00 to make a report - do it the day before and post it to mail-list.

ATTENTION: Please do not squash all your commits on your remote repositories(forks).
I need to see how much progress from report to report. You will do squash just before PullRequest to us after all tasks are done.


Ivan Sopov

unread,
May 6, 2014, 6:57:28 AM5/6/14
to checksty...@googlegroups.com
Hello Ilja.

I think I will post some minor comments to right to Github and some major here.
  1. I recommend to use http://docs.oracle.com/javase/8/docs/technotes/guides/language/enhancements.html#javase8 reference as a starting point to test inputs. So some new features are not covered yet.
    1. repeating annotaions
    2. annotations on types
    3. enhanced type inference (probably no changes to grammar needed, but we need to verify that)
  2. It seems to me that some of your inputs are not compilable right now. While we have many such test inputs, it seems to me as a not very good idea. As far as I understand checkstyle is intended to be run only after java compiler and does not need to catch compiler errors. So maybe it will be convinient to check that all your inputs are valid java8 sources before trying to use them as input for parser. Maybe something really simple like trying to run "javac com/puppycrawl/.../java8/*" after modifying inputs will be enough,
Thanks,
Ivan.

Roman Ivanov

unread,
May 6, 2014, 2:37:36 PM5/6/14
to checksty...@googlegroups.com
Hi, Ilja , 

I completely agree with Ivan for all points.
Inputs have to be compileable,  it is even must have for sevntu.checkstyle. All inputs have to use only simple types from standard jdk.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
May 8, 2014, 7:02:21 AM5/8/14
to checksty...@googlegroups.com
Ohh, I totally forget about annotations.
Too much attention to lambdas in all articles.

Unfortunately, report today is small (last week before exam time).
I've extended existing tests a bit, and I'm going to do more tests tonight (I'll put link to commit here, when I finish).
Also I read about annotations:
But I caught not all.
About reading antlr - I'm still at Designing grammar chapter.

Let it be my Thursday report.

I'll write more about current progress tonight.

вторник, 6 мая 2014 г., 22:37:36 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
May 12, 2014, 9:21:15 AM5/12/14
to checksty...@googlegroups.com
Monday report:
All old tests are compilable now, and even do some unuseful things :)
Added tests for annotations (not all compilable yet).
Link to commit

Question to mentors: may I begin change grammar from implements default methods? It seems more logical for me, to go from simple to difficult.
Now I managed to make test with default method green, but some tests became red (It was expected).


четверг, 8 мая 2014 г., 15:02:21 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
May 12, 2014, 5:06:36 PM5/12/14
to Ilja Dubinin, checksty...@googlegroups.com
Question to mentors: may I begin change grammar from implements default methods?

Right decision.
Added tests ....

Please update your tests to recheck AST tree for certain structure, checking for "no errors" is not enough.
Checks will reply to certain structure of AST - it is critical point in Checkstyle

Ilja Dubinin

unread,
May 15, 2014, 11:40:22 AM5/15/14
to checksty...@googlegroups.com, Ilja Dubinin
Thursday report:
I'm fighting with non-determinism in grammar. Now I have a problem with default (we had default token in switch-case construction and in method modifiers now).
Also I'm in process of writing tests for AST.

вторник, 13 мая 2014 г., 1:06:36 UTC+4 пользователь Roman Ivanov написал:

Roman Ivanov

unread,
May 15, 2014, 11:50:51 AM5/15/14
to Ilja Dubinin, checksty...@googlegroups.com
Also I'm in process of writing tests for AST

link to pushed commit - have to be each time when you claimed that you do coding.

Ilja Dubinin

unread,
May 19, 2014, 9:50:21 AM5/19/14
to checksty...@googlegroups.com, Ilja Dubinin
I have nothing to commit yet.
Tree with default method:



четверг, 15 мая 2014 г., 19:50:51 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
May 22, 2014, 7:38:57 AM5/22/14
to checksty...@googlegroups.com, Ilja Dubinin
Report:
I spent a lot time on investigating and unsuccessful change of grammar. It's really terrible for modification. Now I understand, why Oliver Burn didn't want to update it.

In book - I read chapter 6, but I tried to read more about antlr v2 (for example).

I have nothing to commit still. I will make tree tests after successful changing grammar for default methods support (now, I think, it useless). Now I can parse default method in tree, but have problems with switch construction.

понедельник, 19 мая 2014 г., 17:50:21 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
May 24, 2014, 1:35:40 AM5/24/14
to checksty...@googlegroups.com, Ilja Dubinin
>  Now I can parse default method in tree, but have problems with switch construction.

Need to see link to github - 2 UTs for default in both cases.
Need to see link to github to branch where you had changes in grammar in even non-successful. 

Ilja Dubinin

unread,
May 24, 2014, 11:53:27 AM5/24/14
to checksty...@googlegroups.com, Ilja Dubinin

Here current changes with grammar (only one persistent change now): branch

UT inputs:

суббота, 24 мая 2014 г., 9:35:40 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
May 26, 2014, 11:42:22 AM5/26/14
to checksty...@googlegroups.com, Ilja Dubinin
Commit:

More experiments with default methods. Still problems with non-determinism

суббота, 24 мая 2014 г., 19:53:27 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
May 29, 2014, 9:44:10 AM5/29/14
to checksty...@googlegroups.com, Ilja Dubinin
Almost all time I spent on thinking about current problem and investigating grammar.
Reading status: chapter 7 Decoupling grammars from application-specific code.

Also I've passed all my exams and have more time on this issue now.

If you have any ideas about how to resolve non-determinism problem, please call me in skype.

понедельник, 26 мая 2014 г., 19:42:22 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 2, 2014, 11:45:14 AM6/2/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi.
I have done small step.
Now I can parse method references (:: operator), but without type arguments.


gui snapshot:



четверг, 29 мая 2014 г., 17:44:10 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 5, 2014, 12:01:57 PM6/5/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi.

I debug generated parser and try to find reason of problem with type argument before :: (example: Set<Person> rosterSet = transferElements(roster, HashSet<Person>::new);)

понедельник, 2 июня 2014 г., 19:45:14 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 5, 2014, 4:49:53 PM6/5/14
to checksty...@googlegroups.com, sabak...@gmail.com
Does anyone know what following tokens have in common?
tokens:
LITERAL_void
LITERAL_boolean
LITERAL_byte
LITERAL_char
LITERAL_short
LITERAL_int
LITERAL_float
LITERAL_long
LITERAL_double
IDENT
LPAREN
LITERAL_this
LITERAL_super
BNOT
LNOT
LITERAL_true
LITERAL_false
LITERAL_null
LITERAL_new
NUM_INT
CHAR_LITERAL
STRING_LITERAL
NUM_FLOAT
NUM_LONG
NUM_DOUBLE

ANTLR generates switch blocks for all of them (for example see method unaryExpression in GeneratedJavaRecognizer.java), but doesn't want include my DOUBLE_COLON in it. I try to understand what I missed.

четверг, 5 июня 2014 г., 20:01:57 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 6, 2014, 4:43:35 PM6/6/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi.

I have progress. I did method references.

It still needs more deeply testing with cases of usage < or >, that isn't part of generics. I have huge non-determinism warning during compilation, but all tests are green.
It will stay in this branch, until I'll be sure about correctness.

пятница, 6 июня 2014 г., 0:49:53 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 6, 2014, 5:25:49 PM6/6/14
to checksty...@googlegroups.com, sabak...@gmail.com
All changes with default methods moved to new branch: https://github.com/sabaka/checkstyle/commits/defMeth

суббота, 7 июня 2014 г., 0:43:35 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 9, 2014, 2:11:31 PM6/9/14
to checksty...@googlegroups.com, sabak...@gmail.com
Sorry, I got sick and couldn't work.
Report will be here tomorrow.

суббота, 7 июня 2014 г., 1:25:49 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 10, 2014, 4:49:34 PM6/10/14
to checksty...@googlegroups.com, sabak...@gmail.com
Have nothing to commit.
Now I debug GeneratedJavaRecognizer and find way to make default methods.

понедельник, 9 июня 2014 г., 22:11:31 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 12, 2014, 6:25:21 AM6/12/14
to checksty...@googlegroups.com, sabak...@gmail.com
Some strange things in grammar:

(will be edited)

среда, 11 июня 2014 г., 0:49:34 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 12, 2014, 11:08:30 AM6/12/14
to checksty...@googlegroups.com, sabak...@gmail.com
Can anybody explain me this lexer rule?
NUM_INT
      :   (ELLIPSIS)=>ELLIPSIS {$setType(ELLIPSIS);}
      |   (DOT)=>DOT {$setType(DOT);}
      |   (DOUBLE_LITERAL)=>DOUBLE_LITERAL {$setType(NUM_DOUBLE);}
      |   (FLOAT_LITERAL)=>FLOAT_LITERAL {$setType(NUM_FLOAT);}
      |   (HEX_DOUBLE_LITERAL)=>HEX_DOUBLE_LITERAL {$setType(NUM_DOUBLE);}
      |   (HEX_FLOAT_LITERAL)=>HEX_FLOAT_LITERAL {$setType(NUM_FLOAT);}
      |   (LONG_LITERAL)=>LONG_LITERAL {$setType(NUM_LONG);}
      |   (INT_LITERAL)=>INT_LITERAL {$setType(NUM_INT);}
      ;

I understand last 6, but ellipsis and dots...
(Line 1837 in grammar)

четверг, 12 июня 2014 г., 14:25:21 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Jun 14, 2014, 12:42:23 AM6/14/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja,

see my changes for your plan, if agree - turn changes to black color.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jun 16, 2014, 3:16:06 PM6/16/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi

It's ok.

Report: I have some progress with default methods (I divided MODIFIERS to METH_MODIFIERS(field modifier in future) and MODIFIERS). But I have problems too. We recognize inner classes/interfaces like a field, and them have field modifiers too.
It works, but at the same time bring problems with writing checks. I try to recognize inner classes and interfaces in other way now.
All changes you can see in defMeth branch: https://github.com/sabaka/checkstyle/tree/defMeth

суббота, 14 июня 2014 г., 8:42:23 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Jun 19, 2014, 4:26:23 PM6/19/14
to checksty...@googlegroups.com, sabak...@gmail.com
Sorry for my late.

Default methods work. (look branch in prev. message)

I'm working still. Maybe today I'll write more here.

понедельник, 16 июня 2014 г., 23:16:06 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 19, 2014, 6:34:59 PM6/19/14
to checksty...@googlegroups.com, sabak...@gmail.com
Smth done in lambdas.
https://github.com/sabaka/checkstyle/tree/lambdas

пятница, 20 июня 2014 г., 0:26:23 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 23, 2014, 4:16:12 PM6/23/14
to checksty...@googlegroups.com, sabak...@gmail.com
I've changed method references a bit (now it can support all cases from specifications). All changes in branch metRef.

Also I have progress with lambda, Now it can parse some cases, but not all. You can see branch lambda on github.

And now I do mvn sites with checkstyle for projects, which list in my plan.

A bit about annotations: it support some cases by default. Other will require not global changes in annotation rule, but some changes in places, where annotation can be placed.

пятница, 20 июня 2014 г., 2:34:59 UTC+4 пользователь Ilja Dubinin написал:
Smth done in lambdas.

Ilja Dubinin

unread,
Jun 26, 2014, 7:04:58 PM6/26/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi. I'm doing merge between branches (methRef and defMeth) and have conflicts. I'm in process of resolving it.
I'll write something here as soon as I finish (Friday evening MSK, I hope)

вторник, 24 июня 2014 г., 0:16:12 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jun 30, 2014, 4:59:24 PM6/30/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hello.

We find problems with method references (mvn verify caused it), but I want to postpone it to 11 point of my plan.

I did some new branches (you may see it on github) and try to make reports works with current checkstyle version.
It works without any fail now and I think I did smth wrong :)
I waited for errors.

пятница, 27 июня 2014 г., 3:04:58 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 1, 2014, 5:46:03 PM7/1/14
to checksty...@googlegroups.com, sabak...@gmail.com
maven site with checkstyle report:
http://sabaka.github.io/checkstyle-aggregate.html

вторник, 1 июля 2014 г., 0:59:24 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Jul 3, 2014, 12:29:24 AM7/3/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja ,

in plan:

please move link http://docs.oracle.com/javase/tutorial/java/annotations/index.html to the bottom as in this link nothing useful is described about location of annotation, only examples could be used. 

"As of the Java SE 8 release, annotations can also be applied to any type use. This means that annotations can be used anywhere you use a type."

some examples are there: http://docs.oracle.com/javase/tutorial/java/annotations/basics.html chapter "Where Annotations Can Be Used"


it has grammar(page 13) and a lot of examples.

Checker Framework looks like a inspiration of Type Annotation in Java8 - ton of examples.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jul 3, 2014, 6:19:12 PM7/3/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi,

Roman, ok, I'll do it in morning.

I did smth with lambdas, but don't have visible results. You can see changes in my branch. Seems like I should do annotations before.

Also I've tried resolve issue 165, and had some results, but now I don't like tree, that I got...


четверг, 3 июля 2014 г., 8:29:24 UTC+4 пользователь Roman Ivanov написал:

Roman Ivanov

unread,
Jul 6, 2014, 2:02:50 AM7/6/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja, 

> Also I've tried resolve issue 165, and had some results, but now I don't like tree, that I got...

Please provide example of tree or some details. find me in skype for discussion.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jul 7, 2014, 10:04:26 AM7/7/14
to checksty...@googlegroups.com, sabak...@gmail.com
Examples for 2, 3 and 4 exception types

воскресенье, 6 июля 2014 г., 10:02:50 UTC+4 пользователь Roman Ivanov написал:
catch_tree2.png
catch_tree3.png
catch_tree4.png

Ilja Dubinin

unread,
Jul 7, 2014, 10:06:47 AM7/7/14
to checksty...@googlegroups.com, sabak...@gmail.com



воскресенье, 6 июля 2014 г., 10:02:50 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Jul 7, 2014, 10:23:43 AM7/7/14
to checksty...@googlegroups.com, sabak...@gmail.com
Sorry, smth strange with service. 
I didn't do duplicate I hope.

As for me, I would like it if BOR was parent for first type too, but now it implements like formal parameters (I can't push first type into special rule for catch with few exceptions)

понедельник, 7 июля 2014 г., 18:06:47 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 11, 2014, 7:02:52 AM7/11/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi!
Now I work with lambas (try to resolve problems with nondeterminism).
Also, after discussion  with Roman I'm going to start write AST tests.

понедельник, 7 июля 2014 г., 18:23:43 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 14, 2014, 7:29:52 AM7/14/14
to checksty...@googlegroups.com, sabak...@gmail.com
Seems like lambdas works.
I still get some errors in lambda projects, but latest changes reduce error from 175 to 88
http://sabaka.github.io/checkstyle-aggregate.html

пятница, 11 июля 2014 г., 15:02:52 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 17, 2014, 5:52:38 PM7/17/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi

I work with method references errors
Nothing positive yet
Just a few experiments

понедельник, 14 июля 2014 г., 15:29:52 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 21, 2014, 4:46:12 PM7/21/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hello

I have a bit more problems with method references than I thought.

It first problem is caused by java-code usage in grammar.
I try to use semantic predicate to analyze type arguments after IDENT into a left part of the reference expression, but it skips java parts (it counts number of LT (<) and GT (>) signs). ex: List<String>::size;
Directly I have problem not with parsing references, I have it with conditional expression, for example: "first < second". It looks like IDENT LT IDENT after lexer (same with type argument beginning)

I need a bit time to think about it. I'll work with annotation and tests in that time.

Also I forget to attach pictures with trees, that I have now (lambdas, default methods and method references). I'll do it tomorrow.

пятница, 18 июля 2014 г., 1:52:38 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Jul 23, 2014, 4:49:01 AM7/23/14
to checksty...@googlegroups.com, sabak...@gmail.com
Lambdas:
I do it with code from specification (it isn't compilable, I think, but it shows all labmda cases.

вторник, 22 июля 2014 г., 0:46:12 UTC+4 пользователь Ilja Dubinin написал:
lambda1.png
lambda10.png
lambda11.png
lambda12.png
lambda2.png
lambda3.png
lambda4.png
lambda5.png
lambda6.png
lambda7.png
lambda8.png
lambda9.png

Ilja Dubinin

unread,
Jul 23, 2014, 5:05:48 AM7/23/14
to checksty...@googlegroups.com, sabak...@gmail.com
default method

среда, 23 июля 2014 г., 12:49:01 UTC+4 пользователь Ilja Dubinin написал:
default1.png

Ilja Dubinin

unread,
Jul 23, 2014, 5:36:34 AM7/23/14
to checksty...@googlegroups.com, sabak...@gmail.com
method references

среда, 23 июля 2014 г., 13:05:48 UTC+4 пользователь Ilja Dubinin написал:
methRef1.png
methRef2.png
methRef3.png
methRef4.png
methRef5.png
methRef6.png
methRef7.png
methRef8.png

Ilja Dubinin

unread,
Jul 24, 2014, 4:05:05 PM7/24/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi!

Issue 165 (picture attached)

Is it correct?

среда, 23 июля 2014 г., 13:36:34 UTC+4 пользователь Ilja Dubinin написал:
iss165.png

Roman Ivanov

unread,
Jul 25, 2014, 8:21:28 PM7/25/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja,

1) It might be reasonable to some examples of modifiers for Lambda parameters, I even doubt that "final" do any sense there as 
please provide samples and links to specification of what is possible.
Can be there any modifier ? Can modifier be other then "final" ?

2) I do not like how ";" is going out of LAMBDA children when last token is expression. Look at "return" tree , it's ";" is always its's child.

Out of context and you should NOT change anything, as we need to follow that way for now:
now I see how weird SLIST-->RCURLY structure looks, in comparison to LPAREN-->RPARENT.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jul 26, 2014, 3:27:55 AM7/26/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Roman,

1) It may be only final or annotation + final. It's here because lambdas use common formalParameters rule (same with method definition).

2) SEMI should going out lambda only after rcurly. Seems like my fail.



суббота, 26 июля 2014 г., 4:21:28 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Jul 26, 2014, 12:10:59 PM7/26/14
to checksty...@googlegroups.com, sabak...@gmail.com
Please check:


суббота, 26 июля 2014 г., 11:27:55 UTC+4 пользователь Ilja Dubinin написал:
iss130.png

Ilja Dubinin

unread,
Jul 26, 2014, 12:42:54 PM7/26/14
to checksty...@googlegroups.com, sabak...@gmail.com
lambdas and semi:

суббота, 26 июля 2014 г., 20:10:59 UTC+4 пользователь Ilja Dubinin написал:
lambda_semi.png

Roman Ivanov

unread,
Jul 27, 2014, 2:00:06 PM7/27/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja 


approved.

thanks,
Roman Ivanov

Roman Ivanov

unread,
Jul 27, 2014, 2:06:04 PM7/27/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja,

> lambdas and semi:

What is a reason of that last SEMI to be out of LAMBDA children ?
in case of "return;", SEMI still a child of LITERAL_RETURN.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jul 28, 2014, 5:01:10 PM7/28/14
to checksty...@googlegroups.com, sabak...@gmail.com
Issue 130 - pull request has been sent.

Semi after lambda with curly braces - I did it like any expression into in block. If we has semi after rcurly - we parse it like an empty expression.
Example into picture

воскресенье, 27 июля 2014 г., 22:06:04 UTC+4 пользователь Roman Ivanov написал:
lambda_semi.png

Ilja Dubinin

unread,
Jul 28, 2014, 5:14:48 PM7/28/14
to checksty...@googlegroups.com, sabak...@gmail.com
Issue 30 is not a problem after I've fixed issue 130

вторник, 29 июля 2014 г., 1:01:10 UTC+4 пользователь Ilja Dubinin написал:
iss30_1.png
iss30_2.png

Ilja Dubinin

unread,
Jul 28, 2014, 5:19:22 PM7/28/14
to checksty...@googlegroups.com, sabak...@gmail.com
Same with issue_53

I can't believe :)
Please, check or test my branch iss130
вторник, 29 июля 2014 г., 1:14:48 UTC+4 пользователь Ilja Dubinin написал:
iss_53.png

Roman Ivanov

unread,
Jul 28, 2014, 7:17:02 PM7/28/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja,

> Please, check or test my branch iss130

tested, not reproduced on latest code  - https://github.com/checkstyle/checkstyle/issues/53
issue is closed.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Jul 29, 2014, 3:18:58 AM7/29/14
to checksty...@googlegroups.com, sabak...@gmail.com
Thanks

вторник, 29 июля 2014 г., 3:17:02 UTC+4 пользователь Roman Ivanov написал:
Message has been deleted

Ilja Dubinin

unread,
Jul 31, 2014, 5:17:23 PM7/31/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi

Last problem in labmdas.
I didn't suspect it has special usage of expression in ternary.

Also all issues from github have been fixed.

вторник, 29 июля 2014 г., 11:18:58 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Aug 1, 2014, 5:40:15 AM8/1/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Roman,

I need one more conversation about ; at the end of lambdas. It's reason of last problem from report.

пятница, 1 августа 2014 г., 1:17:23 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Aug 1, 2014, 6:39:08 AM8/1/14
to checksty...@googlegroups.com, sabak...@gmail.com
http://sabaka.github.io/checkstyle-aggregate.html

пятница, 1 августа 2014 г., 13:40:15 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Aug 4, 2014, 6:42:54 PM8/4/14
to checksty...@googlegroups.com, sabak...@gmail.com
New typecast. Now with method call instead of lambda

пятница, 1 августа 2014 г., 14:39:08 UTC+4 пользователь Ilja Dubinin написал:
cast.png

Ilja Dubinin

unread,
Aug 7, 2014, 4:51:20 PM8/7/14
to checksty...@googlegroups.com, sabak...@gmail.com
Report:

I did typecast with lambdas, lambdas in parentheses, put lambdas into ternary expr and more... I resolve all errors, that we have into jdk tests.
All changes avaliable into gsoc branch in my fork of checkstyle.

Now I made reports against openjdk 7 and 8. I have some errors in both, but I have same errors in openjdk 7 when I use stable version of checkstyle.
Some of errors are caused by annotations or testinputs with wrong code. 

Also I've found bug with two semicolons after import. :)

вторник, 5 августа 2014 г., 2:42:54 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Aug 8, 2014, 1:03:41 AM8/8/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Ilja, 

Please update your maven configuration to suppress all problems from "test" folders on your test projects - they are useless.
Extend LineLenght to 15000 to avoid that long line violation http://sabaka.github.io/openjdk8/checkstyle.html .

Please send me a link to sources of your github.io site, I will need only link to openJDK 8 sources.
I need to copy them to sourceforge to be persistent when article on how GSoC behave is ready and posted to the web. That link will be  a prove that you works fine, or almost fine.

with all above done - you are ready to finish GSoC.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Aug 9, 2014, 6:33:09 AM8/9/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Roman,

1) ok

2) Should I delete other sources from site?

пятница, 8 августа 2014 г., 9:03:41 UTC+4 пользователь Roman Ivanov написал:

Roman Ivanov

unread,
Aug 9, 2014, 9:09:19 AM8/9/14
to Ilia Dubinin, checksty...@googlegroups.com

No, keep them, i need now for reporting and article at google's gsoc blog only openjdk8.

--
You received this message because you are subscribed to the Google Groups "checkstyle-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to checkstyle-dev...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Message has been deleted

Ilja Dubinin

unread,
Aug 12, 2014, 5:22:56 AM8/12/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi,

final report on openjdk 8 without test folders: http://sabaka.github.io/openjdk8/checkstyle.html
It's surprise for me, but we have only one exception caused by double semicolon after import.


суббота, 9 августа 2014 г., 17:09:19 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Sep 15, 2014, 5:04:03 PM9/15/14
to checksty...@googlegroups.com, sabak...@gmail.com
Branch rebased with master.
checker-framework added to test projects.

New report on github.io will be avaliable after we will finished with semicolons in imports.

вторник, 12 августа 2014 г., 13:22:56 UTC+4 пользователь Ilja Dubinin написал:

Ilja Dubinin

unread,
Sep 18, 2014, 5:50:26 PM9/18/14
to checksty...@googlegroups.com, sabak...@gmail.com
Worked with annotations


вторник, 16 сентября 2014 г., 1:04:03 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Sep 18, 2014, 6:14:03 PM9/18/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi Ilja,

if not, please focus on it.

thanks,
Roman Ivanov

Roman Ivanov

unread,
Sep 19, 2014, 12:47:37 AM9/19/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi Ilja,

> Worked with annotations simple file with places

please create compilable (under java8) inputs for all that cases and send me link to them.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Sep 19, 2014, 4:13:47 PM9/19/14
to checksty...@googlegroups.com, sabak...@gmail.com
I did it in August


пятница, 19 сентября 2014 г., 2:14:03 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Sep 19, 2014, 4:14:21 PM9/19/14
to checksty...@googlegroups.com, sabak...@gmail.com
Ok. Also I should do it for lambda tests too :)

пятница, 19 сентября 2014 г., 8:47:37 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Sep 22, 2014, 4:39:24 PM9/22/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi. You can see all progress with annotations by following link:

There are lots of testinput (to tell the truth it's unpacked checker framework). I will delete most of them in the end, but now I do grammar testing with it.
Still not all are compilable.


суббота, 20 сентября 2014 г., 0:14:21 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Sep 22, 2014, 6:51:55 PM9/22/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi Ilja,

no, that is not a way to work properly.
Please use that code as base to create minimalist tests(one possible location = one case) that represents possible location of annotations.

you will run against that framework code at the end of implementation, as you did with other libraries(openjdk, ............. ).

thanks,
Roman Ivanov
Message has been deleted

Ilja Dubinin

unread,
Sep 25, 2014, 6:25:40 PM9/25/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi

Annotation inputs become compilable now

Now checkstyle can parse all inputs except 8 and 9.
Also some old tests are failed. I haven't understood the reason yet.

вторник, 23 сентября 2014 г., 2:51:55 UTC+4 пользователь Roman Ivanov написал:

Roman Ivanov

unread,
Sep 25, 2014, 11:11:15 PM9/25/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi Ilja,

1) Please add examples where Type is used (with catch is below):
          try {
              return retval;
              
          } catch (@MyAnnotation1(name = "ABC", version = 1) Exception ex) {
              return "";
          }


1) 
        Map.@NotNull Entry entry; //The annotation @OuterTypeFilenameInput_2.NotNull is disallowed for this location
        MyObject myObject = new MyObject(); 
        myObject.<@NotBlank String>myMethod(); // I do not understand that code
        myObject.new @NotNull MyObject2(); //  I do not know how to compile that , event it is described here  

that code is not compilable in java8, 
grab from there all compilable cases.


private String getInput(String parameterName){
final String retval = @Tainted request.getParameter(parameterName);
  return retval;
}

it looks like special compiler is required to support that code http://types.cs.washington.edu/jsr308/ 
....

lets ask on Stackoverflow and on blog of this Author , how to make it compilable.
If we can not make it by basic java - we need to abandon that cases and keep support only for compilable cases for now. 

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Sep 27, 2014, 12:35:38 PM9/27/14
to checksty...@googlegroups.com, sabak...@gmail.com
1) Ok.

2 (or 1 again))
It's strange a bit. I did it in eclipse and it's didn't warn. 
Other cases in other inputs.


Ok, I'll investigate this.
пятница, 26 сентября 2014 г., 7:11:15 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Sep 27, 2014, 2:20:12 PM9/27/14
to checksty...@googlegroups.com, sabak...@gmail.com
Roman, few minutes ago I compiled all sources except InputAnnotationsTest7,java by javac.
7th input fixed and can be compiled too.

ls -l
total 216
-rw-rw-r-- 1 sabaka sabaka  610 Sep 27 22:08 InputAnnotationsTest1.class
-rw-rw-r-- 1 sabaka sabaka  184 Sep 27 22:07 InputAnnotationsTest1.java
-rw-rw-r-- 1 sabaka sabaka  332 Sep 27 22:08 InputAnnotationsTest1$NonNull.class
-rw-rw-r-- 1 sabaka sabaka  365 Sep 27 22:08 InputAnnotationsTest2.class
-rw-rw-r-- 1 sabaka sabaka  274 Sep 27 22:07 InputAnnotationsTest2.java
-rw-rw-r-- 1 sabaka sabaka  629 Sep 27 22:09 InputAnnotationsTest3.class
-rw-rw-r-- 1 sabaka sabaka  328 Sep 27 22:07 InputAnnotationsTest3.java
-rw-rw-r-- 1 sabaka sabaka  470 Sep 27 22:09 InputAnnotationsTest3$NonNull.class
-rw-rw-r-- 1 sabaka sabaka  596 Sep 27 22:12 InputAnnotationsTest4.class
-rw-rw-r-- 1 sabaka sabaka  296 Sep 27 22:12 InputAnnotationsTest4.java
-rw-rw-r-- 1 sabaka sabaka  470 Sep 27 22:12 InputAnnotationsTest4$NotNull.class
-rw-rw-r-- 1 sabaka sabaka  632 Sep 27 22:13 InputAnnotationsTest5.class
-rw-rw-r-- 1 sabaka sabaka  472 Sep 27 22:13 InputAnnotationsTest5$Critical.class
-rw-rw-r-- 1 sabaka sabaka  296 Sep 27 22:07 InputAnnotationsTest5.java
-rw-rw-r-- 1 sabaka sabaka  510 Sep 27 22:13 InputAnnotationsTest6.class
-rw-rw-r-- 1 sabaka sabaka  339 Sep 27 22:07 InputAnnotationsTest6.java
-rw-rw-r-- 1 sabaka sabaka  472 Sep 27 22:13 InputAnnotationsTest6$Readonly.class
-rw-rw-r-- 1 sabaka sabaka  935 Sep 27 22:13 InputAnnotationsTest6$UnmodifiableList.class
-rw-rw-r-- 1 sabaka sabaka  607 Sep 27 22:13 InputAnnotationsTest7.class
-rw-rw-r-- 1 sabaka sabaka  472 Sep 27 22:13 InputAnnotationsTest7$Interned.class
-rw-rw-r-- 1 sabaka sabaka  351 Sep 27 22:07 InputAnnotationsTest7.java
-rw-rw-r-- 1 sabaka sabaka 1288 Sep 27 22:13 InputAnnotationsTest8.class
-rw-rw-r-- 1 sabaka sabaka  579 Sep 27 22:07 InputAnnotationsTest8.java
-rw-rw-r-- 1 sabaka sabaka  736 Sep 27 22:13 InputAnnotationsTest8$MyObject.class
-rw-rw-r-- 1 sabaka sabaka  700 Sep 27 22:13 InputAnnotationsTest8$MyObject$MyObject2.class
-rw-rw-r-- 1 sabaka sabaka  472 Sep 27 22:13 InputAnnotationsTest8$NotBlank.class
-rw-rw-r-- 1 sabaka sabaka  470 Sep 27 22:13 InputAnnotationsTest8$NotNull.class
-rw-rw-r-- 1 sabaka sabaka  536 Sep 27 22:13 InputAnnotationsTest9.class
-rw-rw-r-- 1 sabaka sabaka  474 Sep 27 22:13 InputAnnotationsTest9$Immutable.class
-rw-rw-r-- 1 sabaka sabaka  365 Sep 27 22:07 InputAnnotationsTest9.java


суббота, 27 сентября 2014 г., 20:35:38 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Sep 28, 2014, 1:03:52 AM9/28/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi Ilja,

yes made compilable by javac from java8,and Eclipse 4.4.1 (Eclispe 4.3 does not support java8).
UTs are failing - I think you are aware of that.


One more item that warry me:

in master "branch" we have:
[INFO] --- antlr-maven-plugin:2.2:generate (default) @ checkstyle ---
[INFO] performing grammar generation [java.g]
ANTLR Parser Generator   Version 2.7.7 (20060906)   1989-2005
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:198: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:198:     k==1:SEMI
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:198:     k==2:EOF,"final","abstract","strictfp",SEMI,IDENT,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:198:     between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:920: warning:Syntactic predicate superfluous for single alternative

[INFO] 
[INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ checkstyle ---
[INFO] Source directory: /home/rivanov/java/git-others/git-sabaka/checkstyle/target/generated-sources/antlr added.
[INFO] 

in your "annotation" branch we have :

[INFO] performing grammar generation [java.g]
ANTLR Parser Generator Version 2.7.7 (20060906) 1989-2005
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:201: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:201: k==1:SEMI
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:201: k==2:EOF,"final","abstract","strictfp",SEMI,IDENT,"private","public","protected","static","transient","native","synchronized","volatile","class","interface","default",ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:201: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:452: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:452: k==1:AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:452: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:452: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:398: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:398: k==1:DOT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:398: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:398: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:262:11: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:262:11: k==1:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:262:11: k==2:"final","abstract","strictfp",SEMI,LBRACK,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,DOT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","extends","interface",LCURLY,RCURLY,COMMA,"implements",LPAREN,RPAREN,"this","super",ASSIGN,COLON,DOUBLE_COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT,ELLIPSIS
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:273:17: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:273:17: k==1:QUESTION
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:273:17: k==2:"final","abstract","strictfp",SEMI,LBRACK,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,DOT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","extends","interface",LCURLY,RCURLY,COMMA,"implements",LPAREN,RPAREN,"this","super",ASSIGN,COLON,DOUBLE_COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT,ELLIPSIS
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:447:25: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:447:25: k==1:LPAREN
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:447:25: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LCURLY,LPAREN,RPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:607:17: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:607:17: k==1:AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:607:17: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:754:17: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:754:17: k==1:AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:754:17: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:790:65: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:790:65: k==1:SEMI
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:790:65: k==2:"final","abstract","strictfp",SEMI,"void","boolean","byte","char","short","int","float","long","double",IDENT,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,"default",LT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:679:17: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:679:17: k==1:AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:679:17: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:926: warning:Syntactic predicate superfluous for single alternative
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:915:27: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:915:27: k==1:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:915:27: k==2:SEMI,DOT,LCURLY,COMMA
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:951:38: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:951:38: k==1:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:951:38: k==2:LBRACK
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:945: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:945: k==1:AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:945: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:945: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1006:54: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1006:54: k==1:SEMI
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1006:54: k==2:"final","abstract","strictfp",SEMI,"void","boolean","byte","char","short","int","float","long","double",IDENT,"private","public","protected","static","transient","native","synchronized","volatile","class",LCURLY,RCURLY,LPAREN,RPAREN,"this","super",COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1313: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1313: k==1:LT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1313: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1313: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1333: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1333: k==1:PLUS,MINUS
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1333: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1333: between alt 1 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1391: warning:nondeterminism upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1391: k==1:LPAREN
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1391: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LPAREN,RPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1391: between alt 5 and exit branch of block
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: warning:nondeterminism between alts 1 and 4 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==1:IDENT,"this","super",LT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==2:"final","abstract","strictfp",SEMI,LBRACK,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,DOT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,COMMA,LPAREN,RPAREN,"this","super",ASSIGN,COLON,DOUBLE_COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: warning:nondeterminism between alts 2 and 4 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==1:"class"
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==2:"final","abstract","strictfp",SEMI,LBRACK,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,DOT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,COMMA,LPAREN,RPAREN,"this","super",ASSIGN,COLON,DOUBLE_COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: warning:nondeterminism between alts 3 and 4 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==1:"new"
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1393:25: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LT,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: warning:nondeterminism between alts 1 and 3 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: k==1:INC
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: k==2:"final","abstract","strictfp",SEMI,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,COMMA,LPAREN,RPAREN,"this","super",ASSIGN,COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: warning:nondeterminism between alts 2 and 3 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: k==1:DEC
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1438:17: k==2:"final","abstract","strictfp",SEMI,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,COMMA,LPAREN,RPAREN,"this","super",ASSIGN,COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1513:47: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1513:47: k==1:LCURLY
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1513:47: k==2:"final","abstract","strictfp",SEMI,"void","boolean","byte","char","short","int","float","long","double",IDENT,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,"default",LT,ENUM,AT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1523:44: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1523:44: k==1:LCURLY
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1523:44: k==2:"void","boolean","byte","char","short","int","float","long","double",IDENT,LCURLY,RCURLY,COMMA,LPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1564: warning:nondeterminism between alts 2 and 3 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1564: k==1:LPAREN
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1564: k==2:IDENT
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1566:24: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1566:24: k==1:RPAREN
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1566:24: k==2:LAMBDA
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1570: warning:nondeterminism between alts 1 and 2 of block upon
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1570: k==1:"void","boolean","byte","char","short","int","float","long","double",IDENT,LPAREN,"this","super",PLUS,MINUS,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE
/home/rivanov/java/git-others/git-sabaka/checkstyle/src/main/resources/com/puppycrawl/tools/checkstyle/grammars/java.g:1570: k==2:"final","abstract","strictfp",SEMI,LBRACK,RBRACK,"void","boolean","byte","char","short","int","float","long","double",IDENT,DOT,STAR,"private","public","protected","static","transient","native","synchronized","volatile","class","interface",LCURLY,RCURLY,COMMA,LPAREN,RPAREN,"this","super",ASSIGN,COLON,DOUBLE_COLON,"if","while","do","break","continue","return","switch","throw","for","else","case","default","try",PLUS_ASSIGN,MINUS_ASSIGN,STAR_ASSIGN,DIV_ASSIGN,MOD_ASSIGN,SR_ASSIGN,BSR_ASSIGN,SL_ASSIGN,BAND_ASSIGN,BXOR_ASSIGN,BOR_ASSIGN,QUESTION,LOR,LAND,BOR,BXOR,BAND,NOT_EQUAL,EQUAL,LT,GT,LE,GE,"instanceof",SL,SR,BSR,PLUS,MINUS,DIV,MOD,INC,DEC,BNOT,LNOT,"true","false","null","new",NUM_INT,CHAR_LITERAL,STRING_LITERAL,NUM_FLOAT,NUM_LONG,NUM_DOUBLE,ASSERT,ENUM,AT,LAMBDA

[INFO]
[INFO] --- build-helper-maven-plugin:1.8:add-source (add-source) @ checkstyle ---
[INFO] Source directory: /home/rivanov/java/git-others/git-sabaka/checkstyle/target/generated-sources/antlr added.
[INFO] 

that is weird and need to be resolved.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Sep 28, 2014, 2:43:12 AM9/28/14
to checksty...@googlegroups.com, sabak...@gmail.com
Yes, I know about UTs.

It's last problem I guess.

воскресенье, 28 сентября 2014 г., 9:03:52 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Oct 1, 2014, 5:52:17 PM10/1/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi,

I haven't made anything works yet :(
UTs still fail

воскресенье, 28 сентября 2014 г., 10:43:12 UTC+4 пользователь Ilja Dubinin написал:

Roman Ivanov

unread,
Oct 1, 2014, 6:13:31 PM10/1/14
to Ilja Dubinin, checksty...@googlegroups.com
Hi ilja, 

please list failed Tests and link to code where your latest code.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Oct 2, 2014, 1:22:10 AM10/2/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi,

All fails caused by changing in type rule


четверг, 2 октября 2014 г., 2:13:31 UTC+4 пользователь Roman Ivanov написал:

Roman Ivanov

unread,
Oct 2, 2014, 9:01:25 AM10/2/14
to Ilja Dubinin, checksty...@googlegroups.com
HI Ilja,

I need link to exact line in grammar that caused a problem.

thanks,
Roman Ivanov

Ilja Dubinin

unread,
Oct 2, 2014, 5:28:14 PM10/2/14
to checksty...@googlegroups.com, sabak...@gmail.com
It doen't matter. I've fixed all.

Only antlr warnings left.

четверг, 2 октября 2014 г., 17:01:25 UTC+4 пользователь Roman Ivanov написал:

Ilja Dubinin

unread,
Oct 3, 2014, 6:16:45 PM10/3/14
to checksty...@googlegroups.com, sabak...@gmail.com
Hi Roman,

As I remember in master was only */java.g:920: warning:Syntactic predicate superfluous for single alternative
What is the reason of new warnings?

воскресенье, 28 сентября 2014 г., 9:03:52 UTC+4 пользователь Roman Ivanov написал:
Message has been deleted

Ilja Dubinin

unread,
Oct 3, 2014, 8:14:28 PM10/3/14
to checksty...@googlegroups.com, sabak...@gmail.com
Checker framework:
I got ~340 errors, but there are amount of code like following:

 void t9(@Odd Basic2 this) {
        @Odd Basic2 l1 = this;
    }

I think all errors are caused by wrong code.

Also I reduce number of nondeterministic warnings, but looks like it's impossible to get rid of all of them. It's ANTLR2 and our grammar problems

суббота, 4 октября 2014 г., 2:16:45 UTC+4 пользователь Ilja Dubinin написал:
It is loading more messages.
0 new messages