// Path: instrumenter/src/main/java/com/offbynull/coroutines/instrumenter/asm/VariableTable.java
// public final class Variable {
//     private Type type;
//     private int index;
//     private boolean used;
// 
//     private Variable(Type type, int index, boolean used) {
//         this.type = type;
//         this.index = index;
//         this.used = used;
//     }
// 
//     /**
//      * Get the type of this local variable table entry.
//      * @return type of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public Type getType() {
//         Validate.isTrue(used);
//         return type;
//     }
// 
//     /**
//      * Get the index of this entry within the local variable table.
//      * @return index of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public int getIndex() {
//         Validate.isTrue(used);
//         return index;
//     }
// 
//     /**
//      * Returns {@code true} if this object hasn't been released.
//      * @see VariableTable#releaseExtra(com.offbynull.coroutines.instrumenter.asm.VariableTable.Variable) 
//     
//      * @return index of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public boolean isUsed() {
//         return used;
//     }
//         
//     private VariableTable getParent() {
//         return VariableTable.this;
//     }
// }


import com.offbynull.coroutines.instrumenter.asm.VariableTable.Variable;
import org.apache.commons.lang3.Validate;
import org.objectweb.asm.Type;
/*
 * Copyright (c) 2016, Kasra Faghihi, All rights reserved.
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3.0 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.
 */
package com.offbynull.coroutines.instrumenter;


final class CacheVariables {
    private final Variable intReturnCacheVar;
// Path: instrumenter/src/main/java/com/offbynull/coroutines/instrumenter/asm/VariableTable.java
// public final class Variable {
//     private Type type;
//     private int index;
//     private boolean used;
// 
//     private Variable(Type type, int index, boolean used) {
//         this.type = type;
//         this.index = index;
//         this.used = used;
//     }
// 
//     /**
//      * Get the type of this local variable table entry.
//      * @return type of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public Type getType() {
//         Validate.isTrue(used);
//         return type;
//     }
// 
//     /**
//      * Get the index of this entry within the local variable table.
//      * @return index of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public int getIndex() {
//         Validate.isTrue(used);
//         return index;
//     }
// 
//     /**
//      * Returns {@code true} if this object hasn't been released.
//      * @see VariableTable#releaseExtra(com.offbynull.coroutines.instrumenter.asm.VariableTable.Variable) 
//     
//      * @return index of this entry
//      * @throws IllegalArgumentException if this {@link Variable} has been released
//      */
//     public boolean isUsed() {
//         return used;
//     }
//         
//     private VariableTable getParent() {
//         return VariableTable.this;
//     }
// }


// Path: instrumenter/src/main/java/com/offbynull/coroutines/instrumenter/CacheVariables.java
import com.offbynull.coroutines.instrumenter.asm.VariableTable.Variable;
import org.apache.commons.lang3.Validate;
import org.objectweb.asm.Type;

/*
 * Copyright (c) 2016, Kasra Faghihi, All rights reserved.
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3.0 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library.
 */
package com.offbynull.coroutines.instrumenter;


final class CacheVariables {
    private final Variable intReturnCacheVar;
    private final Variable longReturnCacheVar;