Hi Alex,

the two latest commits in compiler is making projects not compile (at least
in Jewel branch). I'll reset my index below this two commits until you get
that solved

thanks



2018-03-30 9:08 GMT+02:00 <[email protected]>:

> This is an automated email from the ASF dual-hosted git repository.
>
> aharui pushed a commit to branch develop
> in repository https://gitbox.apache.org/repos/asf/royale-compiler.git
>
> commit 52509ab663ffda8808eca6598eef59275e6ee37c
> Author: Alex Harui <[email protected]>
> AuthorDate: Fri Mar 30 00:01:44 2018 -0700
>
>     try caching some other things to speed up the compiler
> ---
>  .../internal/definitions/ClassDefinitionBase.java  | 56
> ++++++++++++----------
>  .../internal/definitions/DefinitionBase.java       |  8 +++-
>  2 files changed, 39 insertions(+), 25 deletions(-)
>
> diff --git a/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/ClassDefinitionBase.java
> b/compiler/src/main/java/org/apache/royale/compiler/internal/definitions/
> ClassDefinitionBase.java
> index de73e9b..de8cfe1 100644
> --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/ClassDefinitionBase.java
> +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/ClassDefinitionBase.java
> @@ -414,6 +414,8 @@ public abstract class ClassDefinitionBase extends
> TypeDefinitionBase implements
>          return new InterfaceDefinition.InterfaceIterator(this, project,
> null);
>      }
>
> +    private ArrayList<IDefinition> baseDefinitions = null;
> +
>      @Override
>      public boolean isInstanceOf(final ITypeDefinition type,
> ICompilerProject project)
>      {
> @@ -423,35 +425,41 @@ public abstract class ClassDefinitionBase extends
> TypeDefinitionBase implements
>
>          if (type instanceof IClassDefinition)
>          {
> -            // We're trying to determine whether this class
> -            // is derived from a specified class ('type').
> -            // Iterate the superclass chain looking for 'type'.
> -            Iterator<IClassDefinition> iter = classIterator(project,
> false);
> -            while (iter.hasNext())
> -            {
> -                IClassDefinition cls = iter.next();
> -                if (cls == type)
> -                    return true;
> -            }
> -            return false;
> +               if (baseDefinitions == null)
> +               {
> +                       baseDefinitions = new ArrayList<IDefinition>();
> +
> +                   // We're trying to determine whether this class
> +                   // is derived from a specified class ('type').
> +                   // Iterate the superclass chain looking for 'type'.
> +                   Iterator<IClassDefinition> iter =
> classIterator(project, false);
> +                   while (iter.hasNext())
> +                   {
> +                       IClassDefinition cls = iter.next();
> +                       baseDefinitions.add(cls);
> +                   }
> +               }
>          }
>          else if (type instanceof IInterfaceDefinition)
>          {
> -            // We're trying to determine whether this class
> -            // implements a specified interface ('type').
> -            // Iterate all of the interfaces that this class implements,
> -            // looking for 'type'.
> -            Iterator<IInterfaceDefinition> iter =
> interfaceIterator(project);
> -            while (iter.hasNext())
> -            {
> -                IInterfaceDefinition intf = iter.next();
> -                if (intf == type)
> -                    return true;
> -            }
> -            return false;
> +               if (baseDefinitions == null)
> +               {
> +                       baseDefinitions = new ArrayList<IDefinition>();
> +
> +                   // We're trying to determine whether this class
> +                   // implements a specified interface ('type').
> +                   // Iterate all of the interfaces that this class
> implements,
> +                   // looking for 'type'.
> +                   Iterator<IInterfaceDefinition> iter =
> interfaceIterator(project);
> +                   while (iter.hasNext())
> +                   {
> +                       IInterfaceDefinition intf = iter.next();
> +                       baseDefinitions.add(intf);
> +                   }
> +               }
>          }
>
> -        return false;
> +       return baseDefinitions.contains(type);
>      }
>
>      @Override
> diff --git a/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/DefinitionBase.java b/compiler/src/main/java/org/
> apache/royale/compiler/internal/definitions/DefinitionBase.java
> index 61fb92a..0626789 100644
> --- a/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/DefinitionBase.java
> +++ b/compiler/src/main/java/org/apache/royale/compiler/
> internal/definitions/DefinitionBase.java
> @@ -166,6 +166,8 @@ public abstract class DefinitionBase implements
> IDocumentableDefinition, IDefini
>
>      private int absoluteNameStart = 0;
>      private int absoluteNameEnd = 0;
> +
> +    private IDefinition parentDef = null;
>
>      /**
>       * Called by {@code MXMLScopeBuilder} when building definitions from
> @@ -240,6 +242,9 @@ public abstract class DefinitionBase implements
> IDocumentableDefinition, IDefini
>      @Override
>      public IDefinition getParent()
>      {
> +       if (parentDef != null)
> +               return parentDef;
> +
>          IASScope scope = getContainingScope();
>
>          // Walk up the scope chain until we find a scope that has
> @@ -251,7 +256,8 @@ public abstract class DefinitionBase implements
> IDocumentableDefinition, IDefini
>          while ((scope != null) && (scope.getDefinition() == null))
>              scope = scope.getContainingScope();
>
> -        return scope != null ? scope.getDefinition() : null;
> +        parentDef = scope != null ? scope.getDefinition() : null;
> +        return parentDef;
>      }
>
>      @Override
>
> --
> To stop receiving notification emails like this one, please contact
> [email protected].
>



-- 
Carlos Rovira
http://about.me/carlosrovira

Reply via email to