externc: hasTemplate() and containsTemplate() in FunctionUtils updated to grab templates from the parent class too
Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/2b5fb56f Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/2b5fb56f Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/2b5fb56f Branch: refs/heads/develop Commit: 2b5fb56f147f927c638e3643d954ce4586a35b79 Parents: 36b65ef Author: Josh Tynjala <joshtynj...@apache.org> Authored: Tue Apr 19 16:29:57 2016 -0700 Committer: Josh Tynjala <joshtynj...@apache.org> Committed: Tue Apr 19 16:29:57 2016 -0700 ---------------------------------------------------------------------- .../codegen/externals/utils/FunctionUtils.java | 38 +++++++++++++++----- 1 file changed, 30 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/2b5fb56f/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java ---------------------------------------------------------------------- diff --git a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java index f384689..5a9b658 100644 --- a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java +++ b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/externals/utils/FunctionUtils.java @@ -21,6 +21,7 @@ package org.apache.flex.compiler.internal.codegen.externals.utils; import org.apache.flex.compiler.internal.codegen.externals.reference.BaseReference; import org.apache.flex.compiler.internal.codegen.externals.reference.ClassReference; +import org.apache.flex.compiler.internal.codegen.externals.reference.MemberReference; import org.apache.flex.compiler.internal.codegen.externals.reference.ReferenceModel; import com.google.common.base.Strings; @@ -214,19 +215,40 @@ public class FunctionUtils public static boolean hasTemplate(BaseReference reference) { + if(reference instanceof MemberReference) + { + MemberReference memberRef = (MemberReference) reference; + if(memberRef.getClassReference().getComment().getTemplateTypeNames().size() > 0) + { + return true; + } + } return reference.getComment().getTemplateTypeNames().size() > 0; } public static boolean containsTemplate(BaseReference reference, String name) { - for (String template : reference.getComment().getTemplateTypeNames()) - { - if (name.contains("<" + template + ">")) - return true; - if (name.equals(template)) - return true; - } - return false; + if(reference instanceof MemberReference) + { + MemberReference memberRef = (MemberReference) reference; + if(commentContainsTemplate(memberRef.getClassReference().getComment(), name)) + { + return true; + } + } + return commentContainsTemplate(reference.getComment(), name); + } + + private static boolean commentContainsTemplate(JSDocInfo comment, String name) + { + for (String template : comment.getTemplateTypeNames()) + { + if (name.contains("<" + template + ">")) + return true; + if (name.equals(template)) + return true; + } + return false; } }