Skip to content

Commit

Permalink
Resolve functions references without call expressions as Dynamic type…
Browse files Browse the repository at this point in the history
… to avoid confusions

var a:String->String, now a gets resolved as Dynamic.
#32
  • Loading branch information
as3boyan committed Oct 12, 2014
1 parent faad48d commit 858ef3a
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/com/intellij/plugins/haxe/lang/psi/impl/HaxeReferenceImpl.java
Original file line number Diff line number Diff line change
Expand Up @@ -264,9 +264,20 @@ else if (implementOrExtendSameClass) {
resolveResult.getSpecialization());
}
}
PsiElement parent = resolve().getParent();
if (parent instanceof HaxeFunctionDeclarationWithAttributes || parent instanceof HaxeExternFunctionDeclaration) {
return HaxeClassResolveResult.create(HaxeResolveUtil.findClassByQName("Dynamic", this));
PsiElement resolve = resolve();
if (resolve != null) {
PsiElement parent = resolve.getParent();
if (parent instanceof HaxeFunctionDeclarationWithAttributes || parent instanceof HaxeExternFunctionDeclaration) {
return HaxeClassResolveResult.create(HaxeResolveUtil.findClassByQName("Dynamic", this));
}
HaxeTypeTag typeTag = PsiTreeUtil.getChildOfType(parent, HaxeTypeTag.class);

if (typeTag != null) {
HaxeFunctionType functionType = PsiTreeUtil.getChildOfType(typeTag, HaxeFunctionType.class);
if (functionType != null) {
return HaxeClassResolveResult.create(HaxeResolveUtil.findClassByQName("Dynamic", this));
}
}
}

HaxeClassResolveResult result = HaxeResolveUtil.getHaxeClassResolveResult(resolve(), tryGetLeftResolveResult(this).getSpecialization());
Expand Down

0 comments on commit 858ef3a

Please sign in to comment.