Bugs

Robert Field robert.field at oracle.com
Sun Mar 15 19:29:28 UTC 2015


That seems fine.
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