Hi Carlos, On builds.a.o build pass without the problem on develop [1]
[1] https://builds.apache.org/job/royale-compiler/274/ Thanks, Piotr 2018-03-30 10:17 GMT+02:00 Carlos Rovira <[email protected]>: > Hi Alex, > > the problem is only with the latest (caching) . The other one works ok. > thanks > > 2018-03-30 10:06 GMT+02:00 Carlos Rovira <[email protected]>: > > > 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/a > >> pache/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/a > >> pache/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 > > > > > > > -- > Carlos Rovira > http://about.me/carlosrovira > -- Piotr Zarzycki Patreon: *https://www.patreon.com/piotrzarzycki <https://www.patreon.com/piotrzarzycki>*
