public override Evaluation Analyze(T node, Analyzer analyzer, ExInfoFromParent info) { access = info.Access; TypeRefHelper.Analyze(node.TypeRef, analyzer); this.type = TypeRefHelper.ResolvedTypeOrUnknown(node.TypeRef); analyzer.AnalyzeConstructedType(type); return(new Evaluation(node)); }
internal override void ResolveName(T node, Analyzer analyzer) { var typeRef = node.TypeRef; TypeRefHelper.Analyze(typeRef, analyzer); this.type = TypeRefHelper.ResolvedTypeOrUnknown(typeRef); // analyze constructed type (we are in the full analysis): analyzer.AnalyzeConstructedType(type); constant = analyzer.ResolveClassConstantName(type, node.Name, node.Span, analyzer.CurrentType, analyzer.CurrentRoutine, out runtimeVisibilityCheck); }
public void Analyze(CatchItem /*!*/ node, Analyzer /*!*/ analyzer) { ExInfoFromParent info = new ExInfoFromParent(node); info.Access = AccessType.Write; TypeRefHelper.Analyze(node.TypeRef, analyzer); resolvedType = TypeRefHelper.ResolvedTypeOrUnknown(node.TypeRef); //resolvedType = analyzer.ResolveTypeName(node.ClassName, analyzer.CurrentType, analyzer.CurrentRoutine, node.Span, false); node.Variable.Analyze(analyzer, info); analyzer.EnterConditionalCode(); node.Statements.Analyze(analyzer); analyzer.LeaveConditionalCode(); }