Bugs

Jan Lahoda jan.lahoda at oracle.com
Mon Mar 16 12:16:06 UTC 2015


On 15.3.2015 20:29, Robert Field wrote:
> That seems fine.

Thanks, completion for imports should work better now.

Jan

> It also suggests there might be ways for us to optimize the number of
> compiler tasks used.
>
> Thanks,
> Robert
>
>
>
> On March 15, 2015 11:22:13 AM Jan Lahoda <jan.lahoda at oracle.com> wrote:
>
>> On 13.3.2015 19:06, Robert Field wrote:
>> >
>> > On 03/13/15 08:22, andrei.eremeev wrote:
>> >> Hi REPL team,
>> >>
>> >> Found bugs:
>> >>
>> >> 1. In completion analysis possible packages are not suggested. "import
>> >> java.ut|".
>> >
>> > Jan?
>>
>> Two problems here (thanks for report!):
>> -the completion did not complete packages in any context. Should be
>> fixed now (is a little bit tricky, as it is not easy to get the list of
>> packages, so completion is listing classes using the JavaFileManager).
>> -completion misbehaving for imports in some cases (in particular for
>> import static). To fix this, I'd like to change the way AnalyzeTask sets
>> AnalyzeTask.cut like this:
>> diff -r c9b090dded9b repl/src/impl/TaskFactory.java
>> --- a/repl/src/impl/TaskFactory.java    Sun Mar 15 17:10:33 2015 +0100
>> +++ b/repl/src/impl/TaskFactory.java    Sun Mar 15 19:16:09 2015 +0100
>> @@ -130,11 +130,9 @@
>>
>>           AnalyzeTask(OuterWrap wrap, String... extraOptions) {
>>               super(wrap, extraOptions);
>> -            Iterator<? extends Element> eit = analyze().iterator();
>> -            if (eit.hasNext()) {
>> -                Element e = eit.next();
>> -                TreePath cutp = trees().getPath(e);
>> -                this.cut = cutp.getCompilationUnit();
>> +            Iterator<? extends CompilationUnitTree> cuts =
>> analyze().iterator();
>> +            if (cuts.hasNext()) {
>> +                this.cut = cuts.next();
>>                   //proc.debug("AnalyzeTask element=%s  cutp=%s
>> cut=%s\n", e, cutp, cut);
>>               } else {
>>                   this.cut = null;
>> @@ -142,9 +140,11 @@
>>               }
>>           }
>>
>> -        private Iterable<? extends Element> analyze() {
>> +        private Iterable<? extends CompilationUnitTree> analyze() {
>>               try {
>> -                return task.analyze();
>> +                Iterable<? extends CompilationUnitTree> cuts =
>> task.parse();
>> +                task.analyze();
>> +                return cuts;
>>               } catch (Exception ex) {
>>                   throw new InternalError("Exception during analyze - "
>> + ex.getMessage(), ex);
>>               }
>>
>> Does this seem OK?
>>
>> Thanks,
>>      Jan
>>
>> >
>> >> 2. A user defined method/variable cannot hide a method/field which has
>> >> been imported. (Maybe, a duplicate)
>> >> See ReplaceTest#testForwardSingleImportFieldToMethod, ReplaceTest#
>> >> testForwardSingleImportMethodToMethod
>> >
>> > That is a duplicate, but I figured out a way to fix it.  So far fixed
>> > for star imports.  Still need to fix for named imports.
>> >
>> > Tests reenabled.
>> >
>> >>
>> >> 3. This may not be a bug. Anyway, eval() returns string in quotes for
>> >> String type.
>> >
>> > I sent a query about desired proper behavior here.  Got no responses.
>> > So, I'm leaving it, for now.
>> >
>> > -Robert
>> >
>> >>
>> >> Andrei Eremeev
>> >
>
>


More information about the kulla-dev mailing list