⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 infer.java

📁 java编译器gjc源码 java编译环境
💻 JAVA
字号:
/**
 * @(#)Infer.java	1.24 03/01/23
 *
 * Copyright 2003 Sun Microsystems, Inc. All rights reserved.
 * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 */
package com.sun.tools.javac.v8.comp;
import com.sun.tools.javac.v8.util.*;

import com.sun.tools.javac.v8.code.*;

import com.sun.tools.javac.v8.tree.*;

import com.sun.tools.javac.v8.tree.Tree.*;

import com.sun.tools.javac.v8.code.Type.*;

import com.sun.tools.javac.v8.code.Symbol.*;


/**
 * Helper class for type parameter inference, used by the attribution phase.
 */
public class Infer implements Kinds, Flags, TypeTags {
    private static final Context.Key inferKey = new Context.Key();

    /**
     * A value for prototypes that admit any type, including polymorphic ones.
     */
    public static final Type anyPoly = new Type(NONE, null);
    private Symtab syms;

    public static Infer instance(Context context) {
        Infer instance = (Infer) context.get(inferKey);
        if (instance == null)
            instance = new Infer(context);
        return instance;
    }

    private Infer(Context context) {
        super();
        context.put(inferKey, this);
        syms = Symtab.instance(context);
    }

    public static class NoInstanceException extends RuntimeException {
        boolean isAmbiguous;

        NoInstanceException(boolean isAmbiguous) {
            super();
            this.isAmbiguous = isAmbiguous;
        }
    }
    private static final NoInstanceException ambiguousNoInstanceException =
            new NoInstanceException(true);
    private static final NoInstanceException unambiguousNoInstanceException =
            new NoInstanceException(false);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -