// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

package fuchsia.developer.plugin.fidl.psi;

import com.intellij.psi.tree.IElementType;
import fuchsia.developer.plugin.fidl.Language;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;

public class ElementType extends IElementType {
  public ElementType(@NotNull @NonNls String debugName) {
    super(debugName, Language.INSTANCE);
  }
}
