private void addImplicitCapturedSymbolParamTypes(IType owningType, List<IRType> paramTypes) { // Captured symbols // Don't attempt to get captured symbols if the type isn't valid; it'll just throw and result in // a cascading break if (owningType instanceof IGosuClassInternal && owningType.isValid()) // && ((IGosuClassInternal)type).isAnonymous() ) { Map<String, ICapturedSymbol> capturedSymbols = ((IGosuClassInternal) owningType).getCapturedSymbols(); if (capturedSymbols != null) { for (ICapturedSymbol sym : capturedSymbols.values()) { paramTypes.add(IRTypeResolver.getDescriptor(sym.getType().getArrayType())); } } } // The external symbols are always treated as captured if (AbstractElementTransformer.requiresExternalSymbolCapture(owningType)) { paramTypes.add(IRTypeResolver.getDescriptor(IExternalSymbolMap.class)); } }