private CppResolver(ICompilation compilation, Conversions conversions, CppTypeResolveContext context, bool checkForOverflow, bool isWithinLambdaExpression, TypeDefinitionCache currentTypeDefinitionCache, ImmutableStack<IVariable> localVariableStack, ObjectInitializerContext objectInitializerStack) { this.compilation = compilation; this.conversions = conversions; this.context = context; this.checkForOverflow = checkForOverflow; this.isWithinLambdaExpression = isWithinLambdaExpression; this.currentTypeDefinitionCache = currentTypeDefinitionCache; this.localVariableStack = localVariableStack; this.objectInitializerStack = objectInitializerStack; }
/// <summary> /// Pushes the type of the object that is currently being initialized. /// </summary> public void PushInitializerType(IType type) { if (type == null) throw new ArgumentNullException("type"); objectInitializerStack = new ObjectInitializerContext(type, objectInitializerStack); }
public void PopInitializerType() { if (objectInitializerStack == null) throw new InvalidOperationException(); objectInitializerStack = objectInitializerStack.prev; }
public ObjectInitializerContext(IType type, CSharpResolver.ObjectInitializerContext prev) { this.type = type; this.prev = prev; }
CppResolver WithObjectInitializerStack(ObjectInitializerContext stack) { return new CppResolver(compilation, conversions, context, checkForOverflow, isWithinLambdaExpression, currentTypeDefinitionCache, localVariableStack, stack); }
public ObjectInitializerContext(ResolveResult initializedObject, CSharpResolver.ObjectInitializerContext prev) { this.initializedObject = initializedObject; this.prev = prev; }
public ObjectInitializerContext(ResolveResult initializedObject, TypeScriptResolver.ObjectInitializerContext prev) { this.initializedObject = initializedObject; this.prev = prev; }