<commit_before>package net.sandius.rembulan.compiler.analysis.types;

import net.sandius.rembulan.util.Check;

public class ConcreteType extends Type {

	protected final AbstractType supertype;
	protected final String name;

	protected ConcreteType(AbstractType supertype, String name) {
		this.supertype = Check.notNull(supertype);
		this.name = Check.notNull(name);
	}

	public AbstractType supertype() {
		return supertype;
	}

	@Override
	public boolean isSubtypeOf(Type that) {
		return this.equals(that) || this.supertype().isSubtypeOf(that);
	}

	@Override
	public Type restrict(Type that) {
		return that instanceof DynamicType ? that : this;<commit_msg>Adding the forgotten toString method.<commit_after>package net.sandius.rembulan.compiler.analysis.types;

import net.sandius.rembulan.util.Check;

public class ConcreteType extends Type {

	protected final AbstractType supertype;
	protected final String name;

	protected ConcreteType(AbstractType supertype, String name) {
		this.supertype = Check.notNull(supertype);
		this.name = Check.notNull(name);
	}

	@Override
	public String toString() {
		return name;
	}

	public AbstractType supertype() {
		return supertype;
	}

	@Override
	public boolean isSubtypeOf(Type that) {
		return this.equals(that) || this.supertype().isSubtypeOf(that);
	}

	@Override
	public Type restrict(Type that) {
		return that instanceof DynamicType ? that : this;
{'fraction_non_alphanumeric': 0.0945945945945946, 'fraction_numerical': 0.0, 'mean_word_length': 5.064655172413793, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3961828', 'n_tokens_mistral': 451, 'n_tokens_neox': 426, 'n_words': 109}