diff --git a/CSharpTranslator/antlr3/src/cs2j/CSharp/NetMaker.g b/CSharpTranslator/antlr3/src/cs2j/CSharp/NetMaker.g index 1b69101..34a6cc4 100644 --- a/CSharpTranslator/antlr3/src/cs2j/CSharp/NetMaker.g +++ b/CSharpTranslator/antlr3/src/cs2j/CSharp/NetMaker.g @@ -366,6 +366,7 @@ scope { ^(INDEX ie=expression expression_list?) { if ($ie.dotNetType != null) { + $dotNetType = new UnknownRepTemplate($ie.dotNetType.TypeName+".INDEXER"); ResolveResult indexerResult = $ie.dotNetType.ResolveIndexer($expression_list.expTypes ?? new List(), AppEnv); if (indexerResult != null) { IndexerRepTemplate indexerRep = indexerResult.Result as IndexerRepTemplate; @@ -390,6 +391,7 @@ scope { ^(APPLY (^('.' e2=expression {expType = $e2.dotNetType; implicitThis = false;} i2=identifier)|i2=identifier) argument_list?) { if (expType != null) { + $dotNetType = new UnknownRepTemplate(expType.TypeName+".APPLY"); ResolveResult methodResult = expType.Resolve($i2.thetext, $argument_list.argTypes ?? new List(), AppEnv); if (methodResult != null) { Debug($i2.tree.Token.Line + ": Found '" + $i2.thetext + "'"); @@ -428,6 +430,8 @@ scope { Debug($d1.token.Line + ": '" + $i1.thetext + "' might be a property"); + $dotNetType = new UnknownRepTemplate(expType.TypeName+".DOTACCESS"); + ResolveResult fieldResult = expType.Resolve($i1.thetext, AppEnv); if (fieldResult != null) { Debug($d1.token.Line + ": Found '" + $i1.thetext + "'"); @@ -510,6 +514,7 @@ scope { | ^(n=NEW type argument_list? object_or_collection_initializer?) { ClassRepTemplate conType = $type.dotNetType as ClassRepTemplate; + $dotNetType = $type.dotNetType; ResolveResult conResult = conType.Resolve($argument_list.argTypes, AppEnv); if (conResult != null) { ConstructorRepTemplate conRep = conResult.Result as ConstructorRepTemplate;